我正在开发的这个应用程序有三个单选按钮,但是我需要打开JFrame,其中一个选中,其他两个未选中。
在JFrame加载时,我调用以下方法:private void initJRadio() {
jRadioButton1.setSelected(false);
jRadioButton2.setSelected(true);
jRadioButton3.setSelected(false);
}
但是在加载JFrame时我得到了以下异常:
线程"AWT-EventQueue-0"异常StockJFrame.initJRadio (StockJFrame.java: 139)
其中StockJFrame是类名,139是"jRadioButton1.setSelected(false);"
在这个类的Source窗格上,Netbeans添加了这些行:
jRadioButton1 = new javax.swing.JRadioButton();
jRadioButton2 = new javax.swing.JRadioButton();
jRadioButton3 = new javax.swing.JRadioButton();
jRadioButton1.setText(/*label value*/);
jRadioButton1.setToolTipText(/*some tooltip text*/);
jRadioButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jRadioButton1ActionPerformed(evt);
}
});
jRadioButton2.setText(/*label value*/);
jRadioButton2.setToolTipText(/*some tooltiptext*/);
jRadioButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jRadioButton2ActionPerformed(evt);
}
});
jRadioButton3.setText(/*label value*/);
jRadioButton3.setToolTipText(/*some tooltip text*/);
jRadioButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jRadioButton3ActionPerformed(evt);
}
});
如何正确设置?
在代码中的某些地方,jRadioButton1
(和其他)必须(它们可能已经)通过jRadioButton1 = new javax.swing.JRadioButton()
初始化。
如果我没弄错的话,默认情况下,NetBeans生成的代码在一个名为initComponents()
的方法中进行初始化。而且,initComponents()
通常在构造函数中调用。
找出初始化发生的地方(initComponents()
或其他地方),并确保initJRadio()
只在之后被称为。
更新:
在您发布了更多代码之后,您可以将initJRadio()
调用放在您粘贴的最后一个命令的后面。(即jRadioButton3.addActionListener(new ... });
).
p。: java.lang.NullPointerException
意味着你的对象仍然是null
,也就是说,如上所述,它还没有初始化。