Swing jpanel的setSize()不工作
我正在尝试设置JPanel的宽度和高度,但它不起作用。 这是密码Swing jpanel的setSize()不工作,swing,user-interface,jframe,jpanel,awt,Swing,User Interface,Jframe,Jpanel,Awt,我正在尝试设置JPanel的宽度和高度,但它不起作用。 这是密码 import java.awt.*; import javax.swing.*; public class FirstGuiApp extends JFrame { public static void main(String[] args) { JFrame frm = new JFrame("first gui app"); JPanel txtPanel = new JPanel
import java.awt.*;
import javax.swing.*;
public class FirstGuiApp extends JFrame {
public static void main(String[] args) {
JFrame frm = new JFrame("first gui app");
JPanel txtPanel = new JPanel();
txtPanel.setBackground(Color.cyan);
txtPanel.setSize(200,50);// **not working**
frm.getContentPane().add(BorderLayout.NORTH,txtPanel);
frm.setVisible(true);
frm.setSize(450, 350);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.setLocationRelativeTo(null);
}
}
无法理解错误。尝试使用
frm.getContentPane().add(txtPanel)
或frm.getContentPane().add(BorderLayout.CENTER,txtPanel)代码>
组件根据其首选尺寸和容器尺寸的限制进行布置。北部和南部组件可以水平拉伸;东西向分量可以垂直拉伸;中心构件可以水平和垂直拉伸,以填充剩余的任何空间
因此,如果不提供约束,您必须将组件添加到中心,这是默认值。很抱歉,我们无法增加位置。如何将北部部分设置为相应地增加…@Narendra我编辑了答案。很抱歉,增加它的想法是不可能的,请不要使用setSize()。每个组件都有一个首选尺寸,布局管理器将其用作调整组件尺寸的指南。根据布局管理器的规则,每个布局管理器都可以使用/忽略首选尺寸。因此,当您向配电盘添加元件时,它将自动具有首选尺寸。没有理由玩空面板的大小。因此…在当前上下文中..是否不可能增加jpanel的大小..您可以覆盖jpanel的getPreferredSize()
方法。但不要这样做!学习如何正确使用Swing。面板为空,因此无需执行此操作。问一个现实生活中的问题,然后我可以给你一个合适的解决方案。使用布局管理器的意义在于,您不必猜测面板的合适尺寸。“无法理解错误…”无法识别您的问题。你的问题是什么?