Java - 看不到 JRadioButtons

Java - Can't see JRadioButtons

我是初学者,正在练习JRadioButtons。我意识到 如果我不将布局设置为 'FlowLayout()',我将看不到我的 JRadioButtons。我想自己设置按钮的位置。

我在下面发布了我的代码,谁能帮我我做错了什么

谢谢!

private JFrame frame;
private JPanel panel;
private JRadioButton btn1, btn2;


public JBButtons() {

    form();
    radioButtons();

    frame.add(panel);
    frame.setVisible(true);
}

public void form(){

    frame = new JFrame("Frame");
    frame.setSize(400, 200);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    panel = new JPanel();
    panel.setLayout(null);
    //panel.setLayout(new FlowLayout());
}


public void radioButtons() {

    ButtonGroup group = new ButtonGroup();

    btn1 = new JRadioButton("btn1");
    btn1.setSelected(true);
    btn1.setLocation(50, 50);

    btn2 = new JRadioButton("btn2");
    btn2.setLocation(50, 70);

    group.add(btn1);
    group.add(btn2);

    panel.add(btn1);
    panel.add(btn2);

}

public static void main(String[] args) {

    new JBButtons();
}

绝对定位或空布局的问题是 - 它需要您设置所有组件的大小,否则它们将保持默认值 zero-size 而不会显示。最好使用布局管理器 - https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

将RadioButton添加到面板时添加这部分代码,使用属性 .setBounds(x, y, width, heigth).

panel.add(btn1);
btn1.setBounds(90, 59, 93, 23);
panel.add(btn2);
btn2.setBounds(180, 60, 93, 23);