【发布时间】:2022-01-17 14:58:01
【问题描述】:
我想更改JPanel 的大小。我试过setSize(本论坛提出的解决方案),但它对我不起作用。
JFrame代码:
JFrame f =new JFrame();
f.setTitle("test");
f.setSize(300,400);
f.setLocationRelativeTo(null);
f.setResizable(false);
f.setLayout(null);
JPanel代码:
JPanel display= new JPanel();
display.setLayout(null);
JTextField txt = new JTextField(30);
display.add(txt,BorderLayout.NORTH);
display.setBackground(Color.gray);
display.setSize(30,17);
【问题讨论】:
-
您可以使用
setPreferredSize()和这样的方法,但如果框架的布局或您添加面板的任何内容由布局管理器管理,则最终将负责大小。理想情况下不要调用display.setLayout(null);,即保留原始布局管理器或将其替换为合理的东西,让它从面板的内容中找出面板的首选尺寸。 -
正如@Thomas 所说,您应该使用正确的布局。不过,问题不在于这段代码,因此您在创建 Frame 时可能做错了其他事情。
-
请不要通过 cmets 或答案添加信息,而是 edit 您的问题。你也可以阅读How to Ask。
-
所以你的框架也没有布局管理器?如果您添加了面板,请查看设置位置和大小的
setBounds()方法。 -
我试了一下,还是不行