2013-04-01 1 views
3

Я создал небольшой набор инструментов, который состоит из 10 кнопок. Эти кнопки добавляются к JToolBar. В настоящее время по умолчанию помещается квадрат вокруг первой кнопки; однако, я хотел бы, чтобы другая кнопка была по умолчанию. Как я могу это сделать? Ниже приведен пример того, как я добавляю кнопки. Я пробовал select.setSelected и несколько других методов, но мне не повезло.Как сделать кнопку, выбранную по умолчанию в JToolbar

JToolBar sideBar = new JToolBar(); 

    JButton select = new JButton(new ImageIcon("Media/select.png")); 
    select.setBorderPainted(false); 
    select.setContentAreaFilled(false); 

    sideBar.add(select); 

Вот изображение текущего результата:

current result - notice square on top left button

+1

В будущем экран печати будет полезен, поэтому мы поймем, что означает «квадрат», который, как я полагаю, является квадратом «фокуса», который присваивает Swing) – CodeGuy

ответ

2

Если вы знаете, какую кнопку вы хотите, чтобы быть активным, вы можете использовать

button.requestFocusInWindow(); 

Вы также можете попробовать установите кнопку по умолчанию в корневую панель, в зависимости от настройки ваших элементов Swing.

rootPane.setDefaultButton(button); 

И, наконец, есть удобный метод, называемый setFocusedPainted(false);

+0

Я пробовал это, но я не вижу разницы. Синий квадрат фокусировки по-прежнему остается вокруг первой кнопки. – Pedrom

+0

См. Обновление для дополнительных опций – CodeGuy

+1

-1, не используйте requestFocus() (см. API для этого метода), используйте requestFocusInWindow(). – camickr

2

Вы можете установить одну кнопку в качестве кнопки по умолчанию на панели инструментов таким образом:

yourToolBar.getRootPane().setDefaultButton(okButton); 

Я часто использую setDefaultButton в диалоговом окне, чтобы пользователь мог выбрать кнопку по умолчанию, нажав [Enter].

+0

Спасибо, Thorn, это будет полезно для диалоговых окон, которые у меня есть. – Pedrom

Смежные вопросы