0

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

1 回答 1

1

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

也使用setPreferedSize()而不是setSize()这里的区别

于 2013-11-10T19:33:48.493 回答