【问题标题】:Swing components re sizing according to resolution摆动组件根据分辨率调整大小
【发布时间】:2015-12-12 02:44:21
【问题描述】:

我使用 Netbeans GUI builder 创建了一个复杂的 GUI。我的工作 PC 具有更高的分辨率,并且在那台机器上它会根据需要显示。但是,当我在另一台分辨率较低的计算机上检查程序时,一切都正确放置,但已经变大,因此看不到某些组件(我不想使用滚动条)。

那么我怎样才能使 GUI 在所有分辨率下看起来都一样(至少对于全高清和 1366x768)?

【问题讨论】:

  • 使用布局管理器并手动创建您的 GUI。
  • 您无法控制人们在计算机上使用的分辨率,因此您需要在设计应用程序时将这一点考虑在内 1) 不要试图在较大的分辨率下容纳太多组件,(这意味着您必须针对较小的分辨率进行设计,或者 2) 当组件不适合较小的分辨率时,使用滚动窗格允许用户查看所有组件。
  • 确保您在顶级组件上调用.pack(),这应该将它们布置好,以便一切都适合。不要尝试手动设置任何东西的大小。如果.pack() 不起作用,请尝试创建一个SSCCE 来演示问题并在此处发布。

标签: java swing netbeans layout-manager


【解决方案1】:

以下代码将获取不同分辨率的屏幕尺寸。

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
double width = screenSize.getWidth();
double height = screenSize.getHeight();

如果您想要有效的屏幕尺寸,即没有任务栏的屏幕尺寸。

Rectangle rectangle = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds();

【讨论】:

  • 虽然这可能(但可能不会)对最终策略的一部分有用,但它并不试图回答问题的核心。
  • Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 另请注意,screenSize 不会考虑任务栏的大小,因此与 可用 屏幕大小不同..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-23
  • 2014-02-02
  • 2011-02-17
  • 2014-09-21
相关资源
最近更新 更多