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

时间:2012-07-29 19:15:26

标签: java swing resize jframe

每当我点击button1时,我想得到我的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);

3 个答案:

答案 0 :(得分:2)

我认为您引用了错误的Object。什么是AppDisplay&为什么你需要一个新实例?

另外,Frame.getSize();出了什么问题?

答案 1 :(得分:1)

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

 final Dimension size = ap.getSize();
 System.out.println(size);

此外,MadProgrammer明确指出,您展示的代码会创建AppDisplay的新实例。您可以根据需要创建任意数量的实例,甚至不显示它们。您将始终要仔细考虑对象的生命周期以及引用它们的变量名称的范围,以便每次都可以引用目标对象。

答案 2 :(得分:0)

我找到了一个想法。 将jButton(“jbutton1”)放在jFrame中。 并写下执行buton的代码不作为。

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

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