设置JPanel的大小不依赖于JFrame的大小

时间:2013-11-10 08:35:41

标签: java swing jframe jpanel layout-manager

我的项目有一个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);
}
}

1 个答案:

答案 0 :(得分:1)

您将面板直接添加到默认为 BorderLayout 的框架,它会调整面板的大小。尝试使用 this.getContentPane()。add(panel_im); 而不是 this.add(panel_im); ,因为contentPane默认使用flowLayout。另请阅读有关 LayoutManager tutorial的更多信息。

也可以使用 setPreferedSize()代替 setSize()difference here