我的项目有一个JPanel和JFrame,(JFrame中的JPanel)。 我设置JFrame的大小是(400,400)。 JPanel的大小是(150,150)。我将JPanel添加到JFrame并运行它,当它显示时,JPanel的大小不是150,它的大小与JFrame的大小相同。我不知道如何解决它:(
如何设置JPanel的大小不依赖于JFrame的大小?
这是我的代码:
public class Draw_JPanel extends JFrame{
Load_image panel_im = new Load_image();
public Draw_JPanel()
{
this.setSize(400,400);
this.add(panel_im);
}
public static void main(String[] args){
Draw_JPanel abc = new Draw_JPanel();
abc.setVisible(true);
}
}
和我的Load_image类:
public class Load_image extends JPanel{
public Load_image()
{
setSize(30,30);
this.setBackground(Color.RED);
}
}
答案 0 :(得分:1)
您将面板直接添加到默认为 BorderLayout 的框架,它会调整面板的大小。尝试使用 this.getContentPane()。add(panel_im); 而不是 this.add(panel_im); ,因为contentPane默认使用flowLayout。另请阅读有关 LayoutManager 。tutorial的更多信息。
也可以使用 setPreferedSize()代替 setSize()(difference here)