我正在尝试将一些现有的JRadioButtons
添加到此类型的数组中供以后使用。我有这个:
public static javax.swing.JRadioButton jRadioButton1;
public static javax.swing.JRadioButton jRadioButton2;
public static javax.swing.JRadioButton jRadioButton3;
public static javax.swing.JRadioButton jRadioButton4;
public static javax.swing.JRadioButton jRadioButton5;
public static javax.swing.JRadioButton jRadioButton6;
public static javax.swing.JRadioButton jRadioButton7;
public static javax.swing.JRadioButton jRadioButton8;
这些是我的按钮。然后我宣布:
public static JRadioButton[] seq = new JRadioButton[8];
然后我尝试从数组中分配每个按钮:
seq[0] = jRadioButton1;
但是当我试图像这样访问它时:
seq[0].setSelected(true);
我得到一个空指针异常。我是Java新手,这是我做这件事的第一个逻辑。有什么建议吗?
答案 0 :(得分:2)
您的静态JRadioButton
变量是空引用,直到它们被分配了新的JRadioButton
个对象:
jRadioButton1 = new JRadioButton();
seq[0] = jRadioButton1;
seq[0].setSelected(true); // Won't throw
答案 1 :(得分:0)
而不是您要执行的操作,请完全重新格式化代码:
int buttonsNeeded = 8;
JRadioButton[] seq = new JRadioButton[8];
for(int i=0; i<buttonsNeeded; i++) {
seq[i] = new JRadioButton();
}
seq[0].setSelected(true);
这将创建所需的数组和初始化每个项目,而无需所有这些声明。如果你知道我的意思,它也适用于5-10-1000个按钮。