Я пытаюсь справиться с java swing и тестировал переключатели. Мой код:java swing radio buttons - java.lang.NullPointerException
import java.awt.*;
import javax.swing.*;
import javax.swing.ButtonGroup;
public class Scafhome extends javax.swing.JFrame {
private JRadioButton bandButton;
private JRadioButton gelButton;
private JButton jbtnRun;
public Scafhome() {
JFrame jfrm = new JFrame("Scaffold search ...");
jfrm.setLayout (new GridLayout(8,2));
jfrm.setSize(320,220);
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JRadioButton bandButton = new JRadioButton();
bandButton.setText("Band-id");
bandButton.setSelected(true);
JRadioButton gelButton = new JRadioButton();
gelButton.setText("Gelc-ms");
ButtonGroup group = new ButtonGroup();
group.add(bandButton);
group.add(gelButton);
JButton jbtnRun = new JButton("RUN");
jbtnRun.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
RunActionPerformed(evt);
}
});
jfrm.add(bandButton);
jfrm.add(gelButton);
jfrm.add(jbtnRun);
jfrm.setVisible(true);
}
private void RunActionPerformed(java.awt.event.ActionEvent evt) {
String radioText="";
if (bandButton.isSelected()) {
radioText=bandButton.getText();
}
if (gelButton.isSelected()) {
radioText=gelButton.getText();
}
javax.swing.JOptionPane.showMessageDialog(Scafhome.this, radioText);
}
public static void main(String args[]) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new Scafhome();
}
});
}
}
К сожалению, я получаю следующее сообщение об ошибке:
Исключение в потоке "АВТ-EventQueue-0" java.lang.NullPointerException на Scafhome.RunActionPerformed (Scafhome.java: 50)
Это на: "если (bandButton.isSelected()) {"
Я думал, «ба ndButton 'был создан и отмечен как «выбранный» - или я что-то не понял?
Большое спасибо, Curly.
Хотя это (исключение NullPointerException) является общей проблемой, и его просят до смерти на этом сайте, ваш вопрос хорошо представлен, так как он короткий, полный, полностью описывает вашу ошибку и показывает очень маленькую компилируемую исполняемую программу, которая просто демонстрирует проблемы и ничего другого и позволяет легко воспроизвести проблему. Хороший первый вопрос. –