Как отменить выбор JButton - PullRequest
       9

Как отменить выбор JButton

1 голос
/ 08 ноября 2011

У меня есть одна кнопка, которая устанавливает время на таймере. Так что теперь я нажимаю. Время смены кнопки на таймере, и оно все еще выбрано. В этом кадре у меня есть keyListener, поэтому, когда я нажимаю пробел Timer при запуске, но теперь, когда я нажимаю пробел, он снова нажимает эту кнопку, потому что он все еще выбран. Как я могу улучшить эту кнопку, когда я нажимаю ее, она не будет выделена?

Ответы [ 2 ]

5 голосов
/ 08 ноября 2011

Я не уверен, что полностью понял ваш вопрос. Если вы хотите отключить, нажмите на JButton:

JButton b = new JButton();
b.setEnabled(false);

Если вы хотите отменить выбор:

b.setSelected(false);

Вы также можете найти полезную кнопку предотвращения фокусировки:

b.setFocusable(false);
0 голосов
/ 08 ноября 2011

Вы можете изменить фокус, вызвав правильный метод в KeyboardFocusManager

KeyboardFocusManager kfm = KeyboardFocusManger.getCurrentKeyboardFocusManager();
kfm.focusNextComponent();

Это заставляет фокус перейти к следующему компоненту, что бы это ни было. Преимущество этого состоит в том, что он не зависит от того, что представляет собой компонент, поэтому, если пользовательский интерфейс изменяется, он все равно перемещается к «следующему» компоненту, а не к конкретному компоненту, который вы указываете для получения фокуса.

Если ваша проблема в том, что вы не хотите, чтобы пользователь нажимал кнопку, когда происходят другие события, вам следует рассмотреть возможность отключения кнопки (как объяснено в предыдущем ответе), чтобы ее нельзя было активировать каким-либо образом. Конечно, вам нужно включить его снова, как только законно будет использовать его снова.

гс

...