Java 如何在运行时获取JFrame的当前维度

Java 如何在运行时获取JFrame的当前维度,java,swing,resize,jframe,Java,Swing,Resize,Jframe,每当我点击按钮1时,我都想得到Jframe的当前大小。这是我在button1clickevent中编写的代码,最初当我单击按钮时,我得到了宽度和高度,但当我更改Jframe的大小,然后再次单击button1时,我得到的宽度和高度与我之前得到的相同。值在任何时候都不会更改 AppDisplay ap=new AppDisplay(); //class which has got the JFrame int f12; f12=ap.getContentPane().getSize(

每当我点击按钮1时,我都想得到Jframe的当前大小。这是我在button1clickevent中编写的代码,最初当我单击按钮时,我得到了宽度和高度,但当我更改Jframe的大小,然后再次单击button1时,我得到的宽度和高度与我之前得到的相同。值在任何时候都不会更改

  AppDisplay ap=new AppDisplay(); //class which has got the JFrame
    int f12;
  f12=ap.getContentPane().getSize().width;
  System.out.println(f12+"\n");
  f12=ap.getContentPane().getSize().height;
  System.out.println(f12);

我认为您引用了错误的
对象
。什么是AppDisplay&为什么需要新实例


还有,
Frame.getSize()有什么问题

您正在打印JFrame内内容窗格的大小。使用JFrame的
getSize()
方法获取帧的大小

 final Dimension size = ap.getSize();
 System.out.println(size);
此外,MadProgrammer还指出,您显示的代码创建了
AppDisplay
的新实例。您可以创建任意数量的实例,即使不显示它们。您将始终仔细考虑对象的生命周期和引用它们的变量名的范围,以便每次都可以引用预期的对象。

< P>一个想法,我发现。 将一个jButton(“jbutton1”)放在jFrame上。 并编写buton执行的非活动代码

System.out.println(this.getSize())

然后运行帧。 将框架调整至所需尺寸。 然后单击按钮。。 我们会得到最新的尺码。。
然后我们可以根据jframe的属性将其设置为帧的实际大小…

在帧的
窗口
上的
pack()
之后,此结果有效。