При нажатии Tab фокус перемещается на следующую ячейку. Я хотел бы изменить это поведение, чтобы определенные столбцы были исключены из навигации по табуляции. Допустим, таблица состоит из 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;
}
});
}
}