0

私はJavaアプレットを国際化しようとしています。それにより、右から左に書かれたスクリプトをサポートします。ビューに自動的に追加されたすべてのJavaコンポーネントのコンポーネントの向きを設定したいと思います。

これまでの私の解決策は、Windowsマスクを使用してすべてのAWTEventをリッスンする必要があります。

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

...次に、追加された各ウィンドウにc / oを設定し、コンポーネントリスナーを追加して、後でウィンドウに追加されたコンポーネントにc/oを設定します。

私の問題は、JInternalFramesがこのソリューションで処理されないことです。ウィンドウの場合と同じように、これらのイベントに別のリスナーを追加できるようにしたいと考えています。何か案は?

または、アプレット内のすべてのコンポーネントのスクリプトの方向を処理するためのより良いアプローチはありますか?

4

3 に答える 3

0

AWTEventListener現在でToolkitは、ツールキットからのイベントのみが表示されます。通常、軽量コンポーネントによって生成されるイベントは、マウスまたはキーイベントによって発生します。

プロセス内のすべてのものを要求することは、通常、非常に悪い兆候です。低レベルのコードは、プログラム全体のポリシーを作成しています。より良いアプローチは、コンポーネントが「実現」される前に、コンポーネントを作成する場所の近くにリスナーを追加することです。これは繰り返されるコードですが、おそらくすでにコードを繰り返しています。したがって、メソッドを考慮に入れます。それが適用されない場合を除いて、更新する場所は1つだけであり、グローバルなアプローチを破ることになります。

于 2009-10-19T15:32:15.323 に答える
0

これらすべてのJInternalFrameのハンドルはありますか?その場合は、内部フレームリスナーを試してください。

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

これは、AWTWindowListenerに類似していることに注意してください。

于 2009-10-19T15:12:16.623 に答える
0

ContainerListenerをJDesktopPaneに追加します。コンポーネントがデスクトップに追加されると、その向きを変更できます。

于 2009-10-19T16:45:44.703 に答える