Java - 看不到JRadioButtons

时间:2018-04-04 17:44:50

标签: java swing jradiobutton

我是初学者,我正在练习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();
}

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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