Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
Я просто циклично выполнился бы через Ваш JRadioButtons
и вызов isSelected()
. Если Вы действительно хотите пойти от ButtonGroup
, можно только добраться до моделей. Вы могли соответствовать моделям к кнопкам, но тогда если у Вас есть доступ к кнопкам, почему бы не использовать их непосредственно?
Я предлагаю идти прямо для образцового подхода в Swing. После помещения компонента в панель и менеджера по расположению даже не потрудитесь сохранять определенную ссылку на него.
, Если Вы действительно хотите виджет, тогда можно протестировать каждого с isSelected
или поддержать Map<ButtonModel,JRadioButton>
.
Вы могли использовать getSelectedObjects () ItemSelectable (суперинтерфейс ButtonModel), который возвращает список выбранных пунктов. В случае группы переключателей это может только быть один или ни один вообще.
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());
}