当我忘记包含时,以下代码最初无法构建
teams[2]=新的JRadioButton("RSS 1.30");
我认为数组是以null作为默认指针/地址创建的。它是一个简单的GUI,可以不使用null创建GUI吗?或者在java中,让一个数组位置为空,然后填充下面的一个,这实际上是不可能的/错误的吗?
import javax.swing.*;
public class FormatFrame extends JFrame {
JRadioButton[] teams = new JRadioButton[4];
public FormatFrame() {
super("Choose an Output Format");
setSize(320, 120);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
teams[0] = new JRadioButton("Atom");
teams[1] = new JRadioButton("RSS 0.92");
teams[2] = new JRadioButton("RSS 1.0");
teams[3] = new JRadioButton("RSS 2.0");
JPanel panel = new JPanel();
JLabel chooseLabel = new JLabel("choose an output format for syndicated news items");
panel.add(chooseLabel);
ButtonGroup group = new ButtonGroup();
for (JRadioButton team : teams) {
group.add(team);
panel.add(team);
}
add(panel);
setVisible(true);
}
private static void setLookAndFeel(){
try{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
} catch (Exception exc) {
System.out.println(exc.getMessage());
}
}
public static void main(String[] arguments) {
FormatFrame.setLookAndFeel();
FormatFrame ff = new FormatFrame();
}
}
GUI不能用null创建吗?
当你不小心尝试时,你刚刚自己回答了这个问题。不,你不能向容器或ButtonGroup添加null组件。
或者在java中,让一个数组位置为空,然后填充下面的一个,这实际上是不可能的/错误的吗?
这是很可能的,但重要的是发生这种情况时对数组的处理。
例如,如果你有这样的东西:
for (JRadioButton team : teams) {
if (team != null) {
group.add(team);
panel.add(team);
}
}
你的代码可能会工作(但我仍然不会使用这样的代码,因为它会带来麻烦)。