【问题标题】:How to find the size of a JFrame that has not yet been made visible如何找到尚未可见的 JFrame 的大小
【发布时间】:2023-01-10 12:03:19
【问题描述】:

我正在使用填满屏幕的 JFrame;使用以下内容:

this.setExtendedState(JFrame.MAXIMIZED_BOTH);

我如何找到我的 JFrame 的尺寸而不使其可见?我需要尺寸来向面板添加内容,并且在完成向面板添加内容之前无法将框架设置为可见。

我一直在寻找使用 JFrame getHeight() 和 getWidth() 方法来查找框架的尺寸,但据我所见,I would need to make the frame visible first. 有没有办法返回 JFrame 的尺寸而不使其可见?任何帮助,将不胜感激。

【问题讨论】:

  • “我需要尺寸来向面板添加内容”-- 这听起来像是潜在的麻烦 -- 您是在使用布局管理器还是绝对定位?如果是后者,我敦促您改为采用布局管理器的智能使用
  • 我需要尺寸来向面板添加内容- 即使您知道框架的尺寸仍然无济于事,因为框架包含标题栏和边框,因此您仍然不知道组件可用的空间。布局管理器可以动态调整组件的大小。
  • 将您的内容添加到框架中并调用JFrame#pack - 现在框架的大小适合内容

标签: java swing jframe


【解决方案1】:

未显示的 JFrame 没有大小。你可以用 Toolkit.getScreenSize() 来获得屏幕的大小

java.awt.Dimension dim = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
int height = dim.height;
int width = dim.width;

笔记java.awt 包被广泛认为是遗留的,默认情况下,eclipse 将不再为您提供 import

【讨论】:

  • 我不会那样做——它没有考虑多个屏幕或“其他”系统元素(比如任务栏)——我会做一些更像this的事情
猜你喜欢
  • 1970-01-01
  • 2019-09-28
  • 2019-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多