Sik*_*waz 4 java swing jpanel layout-manager
我在java做一个小Gui.我使用的setBounds方法设置在我的JFrame按钮等的位置,但问题是,当我的JPanel按钮使用它是不是在JFrame中可见,如果没有的JPanel其相当确定,,看到代码和两个请帮我我是初学者,面对这些愚蠢的问题.
这个工作正常
JFrame jframe = new JFrame("Working Fine");
jframe.setLayout(null);
JButton jbutton = new JButton("Position Test");
jbutton.setBounds(0, 0, 100, 100);
jframe.add(jbutton);
jframe.setSize(300,300);
jframe.setVisible(true);
Run Code Online (Sandbox Code Playgroud)
当我向Jpanel添加Button时相同的代码然后它不起作用所以什么错了,请指导我
JFrame jframe = new JFrame("causing problem ");
jframe.setSize(300,300);
JPanel p = new JPanel();
jframe.setLayout(null);
JButton jbutton = new JButton("Position Test");
jbutton.setBounds(0, 0, 100, 100);
jframe.add(p);
p.add(jbutton);
p.setVisible(true);
//jframe.add(jbutton);
jframe.setVisible(true);
Run Code Online (Sandbox Code Playgroud)
请帮我解决这个小问题
问题是当您使用绝对定位时,JPanel组件没有默认大小,因此不会出现.为了让它出现,你可以做到
JFrame frame = new JFrame("No Problem");
JPanel panel = new JPanel() {
@Override
public Dimension getPreferredSize() {
return new Dimension(300, 300);
};
};
panel.setLayout(new FlowLayout(FlowLayout.CENTER));
JButton button = new JButton("Position Test");
panel.add(button);
frame.add(panel);
frame.pack();
frame.setVisible(true);
Run Code Online (Sandbox Code Playgroud)
虽然可以不使用布局管理器,但是如果可能的话,应该使用布局管理器.布局管理器可以更轻松地调整依赖于外观的组件外观,不同的字体大小,容器的大小变化以及不同的区域设置.
布局管理器的选择取决于您希望如何布置组件.
请参阅布局管理器的可视指南.
| 归档时间: |
|
| 查看次数: |
29092 次 |
| 最近记录: |