Как узнать, какой JRadioButton выбран из ButtonGroup - PullRequest
67 голосов
/ 14 октября 2008

У меня есть приложение Swing, которое включает в себя переключатели на форме. У меня есть ButtonGroup, однако, глядя на доступные методы, я не могу получить название выбранного JRadioButton. Вот что я могу сказать до сих пор:

  • Из ButtonGroup я могу выполнить getSelection(), чтобы вернуть ButtonModel. Оттуда я могу выполнить getActionCommand, но это не всегда работает. Я пробовал разные тесты и получил непредсказуемые результаты.

  • Также из ButtonGroup я могу получить Перечисление от getElements(). Тем не менее, тогда мне придется пройтись по каждой кнопке, чтобы проверить, не выбрана ли она.

Есть ли более простой способ узнать, какая кнопка была выбрана? Я программирую это в Java 1.3.1 и Swing.

Ответы [ 12 ]

0 голосов
/ 14 октября 2008
jRadioOne = new javax.swing.JRadioButton();
jRadioTwo = new javax.swing.JRadioButton();
jRadioThree = new javax.swing.JRadioButton();

... затем для каждой кнопки:

buttonGroup1.add(jRadioOne);
jRadioOne.setText("One");
jRadioOne.setActionCommand(ONE);
jRadioOne.addActionListener(radioButtonActionListener);

... Слушатель

ActionListener radioButtonActionListener = new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                radioButtonActionPerformed(evt);
            }
        };

... делайте все что нужно в ответ на событие

protected void radioButtonActionPerformed(ActionEvent evt) {            
       System.out.println(evt.getActionCommand());
    }
0 голосов
/ 14 октября 2008

Вы можете использовать getSelectedObjects () для ItemSelectable (суперинтерфейс ButtonModel), который возвращает список выбранных элементов. В случае группы переключателей это может быть только один или ни одного.

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