我的项目有一个 JPanel 和 JFrame(JPanel in JFrame)。 我设置 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);
}
}
最佳答案
您将面板直接添加到默认具有 BorderLayout 的框架,它会调整面板的大小。尝试使用 this.getContentPane().add(panel_im); 而不是 this.add(panel_im); ,因为 contentPane 默认具有 flowLayout 。另请阅读有关 LayoutManager 的更多信息。 tutorial 。
还可以使用 setPreferedSize() 代替 setSize() ( difference here )
关于java - 设置 JPanel 的大小不依赖于 JFrame 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19887747/