Javaフォームのフォーム拡張機能
パネルのフォーカス制御を無効にした場合に、Java標準のフォーカス移動順と異なる動作をしていました。また、過去のバージョンで提供していたJDK1.3の動作と異なっていました。このため、JDK1.4のフォーカス制御を無効にした場合の動作を変更しました。この現象は、以下の条件で発生します。
JDK1.4である。かつ
フレーム、ダイアログ、アプレットを使用したJavaアプリケーションである。かつ
上記画面にパネル(CDPanelまたはCDJPanelを継承した)を追加している。かつ
パネルのフォーカス制御を無効にしている。
上記画面に、この他のBeanやパネルを追加している。
修正前の動作は、パネル(CDPanel、CDJPanel)のフォーカス移動順を無効にした場合に、設定したフォーカス順番は無効になります。しかし、パネル配下のBeanにフォーカス移動ができますが、他のパネルにあるBeanや親のコンテナにあるBeanにフォーカス移動ができません。例えば、アプレットに2つのパネルを貼り付けている場合に、1つのパネル上のBeanでTabキーによるフォーカスを移動しても、もう1つのパネルにあるBeanにフォーカスが移動しません。
修正後の動作は、フォーカスがパネル外のBeanに移動できるようになります。基本的に上から下にフォーカスが移動します。
修正後の動作に問題がある場合は、Javaのシステムプロパティを設定して、修正の動作を無効化できます。このJavaのシステムプロパティを以下に示します。
キー: com.fujitsu.apworks.compod.ui.panelEnableFocusRoot
値: true
Javaのシステムプロパティで修正を無効化する場合は、javaの起動オプションで指定するか、プログラムで指定します。
javaの起動オプションは-Dを指定します。
java -Dcom.fujitsu.apworks.compod.ui.panelEnableFocusRoot=true
プログラムで指定する場合は、以下のコードを記述します。
java.lang.System.setProperty("com.fujitsu.apworks.compod.ui.panelEnableFocusRoot", "true");