Java force面板具有一定的尺寸

Java force面板具有一定的尺寸,java,swing,jframe,jpanel,Java,Swing,Jframe,Jpanel,当我将一个JPanel(其大小应该是(300300))添加到我的主JFrame中时,整个JFrame是(300300),而不应该是。JPanel本身应该是(300300) 整个JFrame是(300300),不应该是 你为什么这么说?如果单击右下角,将看到大于300的值 也许你想要的是: //this.getContentPane().add(new Window()); JPanel panel = new Window(); this.getContentPane()

当我将一个JPanel(其大小应该是(300300))添加到我的主JFrame中时,整个JFrame是(300300),而不应该是。JPanel本身应该是(300300)

整个JFrame是(300300),不应该是

你为什么这么说?如果单击右下角,将看到大于300的值

也许你想要的是:

    //this.getContentPane().add(new Window());
    JPanel panel = new Window();
    this.getContentPane().add(panel);
    this.pack();
    //addMouseListener(new java.awt.event.MouseAdapter() {
    panel.addMouseListener(new java.awt.event.MouseAdapter() {

现在,所有鼠标点都将相对于面板。

JFrame的默认布局是
BorderLayout
,当您添加组件而不指定区域时,默认情况下,它将转到
中心区域,而中心区域不考虑其组件的首选大小


关于框架的大小,pack方法根据内部组件的首选大小进行计算。

当我放置
Dimension d=this.getSize()时;System.out.println(字符串.格式(“尺寸:%1s,%2s”,d.宽度,d.高度))
紧跟在
this.pack()之后我看到
维度:316338
作为输出..顺便说一句,对于发布MCVE,建议使用+Andrew Thompson MCVE,根据堆栈溢出规则。请删除-1。(叹气)我应该写的(被理解)是(也许)“顺便说一句:上传MCVE需要1票。”。如果我投了反对票,我可能会写“顺便说一句:1投反对票发布MCVE。”@AndrewThompson理解。非常感谢。
    //this.getContentPane().add(new Window());
    JPanel panel = new Window();
    this.getContentPane().add(panel);
    this.pack();
    //addMouseListener(new java.awt.event.MouseAdapter() {
    panel.addMouseListener(new java.awt.event.MouseAdapter() {