Как я добираюсь, который JRadioButton выбран из ButtonGroup

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

70
задан Alex Weitz 15 July 2016 в 13:02
поделиться

4 ответа

Я просто циклично выполнился бы через Ваш JRadioButtons и вызов isSelected(). Если Вы действительно хотите пойти от ButtonGroup, можно только добраться до моделей. Вы могли соответствовать моделям к кнопкам, но тогда если у Вас есть доступ к кнопкам, почему бы не использовать их непосредственно?

40
ответ дан Alex Weitz 24 November 2019 в 13:23
поделиться

Я предлагаю идти прямо для образцового подхода в Swing. После помещения компонента в панель и менеджера по расположению даже не потрудитесь сохранять определенную ссылку на него.

, Если Вы действительно хотите виджет, тогда можно протестировать каждого с isSelected или поддержать Map<ButtonModel,JRadioButton>.

4
ответ дан Tom Hawtin - tackline 24 November 2019 в 13:23
поделиться

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

0
ответ дан Daniel Rikowski 24 November 2019 в 13:23
поделиться
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());
    }
-3
ответ дан Chobicus 24 November 2019 в 13:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: