Фильтровать следующие компоненты фокуса - PullRequest
1 голос
/ 20 мая 2010

Я хочу отфильтровать следующий фокус компонент используя клавишу табуляции

например, я не хочу фокусироваться JLabel, JScrollPane, JScrollBar кнопка, JPanel, и т. Д ...

Как я могу сделать это динамически без программиста, чтобы справиться с фокусом?

Вот что я сделал:

JFrame frame = new JFrame("");
frame.setFocusTraversalPolicy(new JTPCFocusTraversalPolicy());

public class JTPCFocusTraversalPolicy extends LayoutFocusTraversalPolicy {
  protected boolean accept(Component aComponent) {
    return !JTPCGUIUtils.getInstance().filterCompoenent(aComponent);
  }
}

У меня был случай JList и JButton, но мне нужно нажать клавишу 4 раза для перемещения между этими компонентами.

В моем случае, как я могу сделать только 2 вкладки для перемещения между списком и кнопкой?

Ответы [ 2 ]

1 голос
/ 20 мая 2010

Начиная с Java 1.4, вы можете определить FocusTraversalPolicy: http://java.sun.com/j2se/1.4.2/docs/api/java/awt/FocusTraversalPolicy.html

1 голос
/ 20 мая 2010

Посмотрите на примеры на http://java.sun.com/docs/books/tutorial/uiswing/misc/focus.html

Флажок был удален из цикла фокусировки с этой строкой кода:

togglePolicy.setFocusable(false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...