为什么生成失败,JRadioButton[]数组中的值为null



当我忘记包含时,以下代码最初无法构建

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);
    }
}

你的代码可能会工作(但我仍然不会使用这样的代码,因为它会带来麻烦)。

相关内容

  • 没有找到相关文章

最新更新