Вопрос

Я пытаюсь интернационализировать Java-апплет и с его помощью поддерживать скрипты, которые пишутся справа налево.Я хочу настроить ориентацию компонентов для всех компонентов Java, добавленных в представление автоматически.

Мое решение до сих пор должно прослушивать все AWTEvent, используя маску Windows:

c.getToolkit().addAWTEventListener(listener, AWTEvent.WINDOW_EVENT_MASK);

...а затем установите c / o для каждого добавленного окна, а также добавьте прослушиватели компонентов, чтобы установить c / o для любых компонентов, добавленных в окно на более позднем этапе.

Моя проблема в том, что JInternalFrames не обрабатываются этим решением, я хочу иметь возможность добавить другого прослушивателя для этих событий, так же, как я сделал для Windows.Есть какие-нибудь идеи?

Или, в качестве альтернативы, существуют ли какие-либо лучшие подходы к обработке направления скрипта для всех компонентов апплета?

Это было полезно?

Решение

Добавьте ContainerListener в JDesktopPane.Когда компонент добавляется на рабочий стол, вы можете изменить его ориентацию.

Другие советы

Вы разбираетесь во всех этих внутренних фреймах?Если это так, попробуйте использовать внутренний прослушиватель фреймов.

http://java.sun.com/javase/6/docs/api/javax/swing/event/InternalFrameListener.html

В нем отмечается, что это аналог AWT WindowListener.

AWTEventListener на текущем Toolkit будет выдавать вам только события, поступающие из инструментария.Как правило, события, генерируемые легковесными компонентами, будут вызваны событиями мыши или клавиш.

Просить всего о чем-то в процессе обычно является очень плохим знаком.Низкоуровневый фрагмент кода определяет политику для всей программы.Гораздо лучший подход заключается в добавлении слушателей рядом с тем местом, где вы создаете компонент, до того, как он будет "реализован".Это повторяющийся код, но тогда у вас, вероятно, уже есть повторяющийся код.Итак, разложите все по полочкам в методе.Тогда у вас есть только одно место для обновления, если только у вас нет каких-либо случаев, когда это неприменимо, что нарушило бы глобальный подход.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top