タブを押すと、フォーカスが次のセルに移動します。この動作を変更して、特定の列がタブキーナビゲーションから除外されるようにします。テーブルが5つの列で構成されているとすると、ナビゲーションでは列1と3のみを考慮する必要があります。私が読んだものからFocusTraversalPolicy
、この目的のために使用されます。ただし、列と行の指標が提供されていないため、この動作の実装はかなり複雑に見えます。では、正しいコンポーネントを返すにはどうすればよいですか?
public class Table extends JTable{
int columnCount = 5;
int[] tab = { 1, 3 };
public Table(){
...
this.setFocusTraversalPolicy(new FocusTraversalPolicy() {
@Override
public Component getLastComponent(Container arg0) {
return null;
}
@Override
public Component getFirstComponent(Container arg0) {
return null;
}
@Override
public Component getDefaultComponent(Container arg0) {
return null;
}
@Override
public Component getComponentBefore(Container arg0, Component arg1) {
return null;
}
@Override
public Component getComponentAfter(Container arg0, Component arg1) {
return null;
}
});
}
}