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