为什么构建在JRadioButton []数组中以null值失败

时间:2015-11-06 03:24:37

标签: java arrays swing netbeans jradiobutton

当我忘记包含

时,以下代码最初无法构建
  

球队[2] =新的JRadioButton(“RSS 1.30”);

我认为创建一个数组时使用null作为默认指针/地址。它是一个简单的GUI,GUI不能用null创建吗?或者,在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();
    }
}

1 个答案:

答案 0 :(得分:3)

  

是否可以使用null创建GUI?

当你不小心尝试时,你自己刚回答了这个问题。不,您无法将空组件添加到容器或ButtonGroup。

  

或者在java中实际上不可能将一个数组位置留空而填充下一个数组?

这很有可能,但是当这种情况发生时,你对数组做了什么。

例如,如果你有类似的东西:

for (JRadioButton team : teams) {
    if (team != null) {
       group.add(team);
       panel.add(team);
    }
}

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