Java setBounds不使用JPanel
我正在用java做一个小Gui。我正在使用setBounds方法设置JFrame上按钮等的位置,但问题是,当我使用它时,JFrame上的JPanel按钮不可见,没有JPanel也没关系,请查看代码并帮助我,因为我是初学者,面临这些愚蠢的问题 这个很好用Java setBounds不使用JPanel,java,swing,jpanel,layout-manager,Java,Swing,Jpanel,Layout Manager,我正在用java做一个小Gui。我正在使用setBounds方法设置JFrame上按钮等的位置,但问题是,当我使用它时,JFrame上的JPanel按钮不可见,没有JPanel也没关系,请查看代码并帮助我,因为我是初学者,面临这些愚蠢的问题 这个很好用 JFrame jframe = new JFrame("Working Fine"); jframe.setLayout(null); JButton jbutton = new JButton("Position Test"
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);
相同的代码,当我添加按钮到Jpanel,然后它不工作,所以有什么问题,请指导我
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);
请帮我解决这个小问题问题是,当您使用绝对定位时,
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);
从
虽然可以不使用布局管理器,但如果可能的话,应该使用布局管理器。布局管理器可以更轻松地调整依赖于外观的组件外观、不同的字体大小、容器不断变化的大小以及不同的区域设置
布局管理器的选择将取决于您希望如何布局组件
请参阅。为了设置绝对位置,您必须摆脱JPanel的布局: p、 setLayout(空)
setLayout(null)
、setBounds(0,0,100,100)
和setSize(300300)
都是非常糟糕的做法。您永远不应该使用null布局。阅读这个布局管理器教程:我正在学习Java,还没有学过布局管理器,我们的指导老师要求我们在学习布局管理器之前使用null,所以没有使用它们。你能告诉我哪里错了吗?“我们的讲师要求我们使用null,直到我们通过布局经理”你的讲师不应该指导任何人,直到他们在该科目中获得“最低能力”。任何有过的人都不会告诉你使用null
layouts。如果你知道自己在做什么,那么null布局是非常好的,伙计们。我的意思是,这只是图形用户界面,而标准布局经理真的很差劲。如果您想要盒式布局,可以使用html,但在使用编程语言时,您可能还需要了解如何编写gui。我的意思是,看看一个简单的表单元素看起来有多完美,并将其与swingi进行比较,我是一名学生,还没有学会它,好的,请指导我作为初学者应该使用哪一个,你的答案是可以接受的。。ThanksI试图用百分比做一个绝对布局,直到我尝试了这个,它才起作用。它解决了为什么挫折不起作用的问题,而不是质疑它。