Developer'sWorks
Tips

動的にフォーカス順番を変更できないか?

Tab,Shift+Tabによるフォーカス移動順番はCAMCのオーダータブにて指定が可能ですが、画面状態によりオーダー先を 動的に切り替えたい場合にはビジネスルールにて設定を行います。

FocusEventInterface にキャストしてコンポーネントに対し、
  1. setNextFocus(JComponent nextComponent)
  2. setPreviousFocus(JComponent previousComponent)
のメソッドより次の(前の)コンポーネントを設定します。
実装例としては以下になります。
・・・(省略)・・・

import jp.ne.mki.wedge.run.client.data.Item;
import jp.ne.mki.wedge.run.client.event.FocusEventInterface;

・・・(省略)・・・

JComponent out1 = ((Item)getOutRecord(0)).getComponent();
JComponent out2 = ((Item)getOutRecord(1)).getComponent();
if ( out1 instanceof FocusEventInterface ) {
  ((FocusEventInterface)out1).setNextFocus(out2);
}

・・・(省略)・・・
設定が変更されるとまた変更されるまでその状態が保持されるのに注意して下さい。