【问题标题】:Java Swing - Scaling UI to fit window resolutionJava Swing - 缩放 UI 以适应窗口分辨率
【发布时间】:2014-01-17 08:17:13
【问题描述】:

我制作了一个程序,它使用 null、边框、卡片和一些我的自定义布局。程序的窗口设置为 resizable:false。现在我不想为我的程序设置全屏模式,但问题是如果屏幕大小不是我设置的,那么 GUI 看起来很难看。我可以为所有组件实现某种比例因子,但问题是我在 50 多个类中有超过 2000 个组件。

是否可以根据定义的因素调整整个摇摆 UI 的大小?这意味着呈现为 UI 的图像和所有鼠标事件都将被调整大小。

【问题讨论】:

  • 1.是否可以选择为定义的因素调整整个摇摆 UI 的大小?是的,这是 LayoutManager 存在的基本原因,然后 2. 您必须测试屏幕分辨率以更改/设置字体大小
  • 我该如何调整它的大小?有没有 JComponent 的方法或者我该怎么做?
  • 1.我认为这是一个笑话,因为调整大小是所有 LayoutManager 的标准属性,不包括。 NullLayout, 2. 问题仅在于字体大小,对于 5-7 diff,必须有 5-7 种不同的字体大小。屏幕尺寸(讨论从上网本到 FHD 的标准)
  • Resize 是 Component 的标准属性,而不是 LayoutManager 的...至少文档是这样说的。但问题是我有很多组件,我没有时间将调整大小应用于所有组件。我已经尝试覆盖paintComponent 并调整它的大小,并且我设法调整了窗口的大小,但是组件的大小没有正确调整,而且我遇到了鼠标事件的问题
  • 1.嗯,然后我们跳到 extra_terestrial 讨论,2. 覆盖所有持有paintComponent的东西(组件???)的getPreferredSize,getHeight/Weight总是返回从零到无穷大的Dimension的正确坐标

标签: java swing components scale


【解决方案1】:

您可能应该尝试依赖您的布局管理器。尝试具体找出哪些布局没有按照您想要的方式调整大小,并专注于纠正它们的行为,而不是尝试从上到下管理所有内容。

或者,当窗口处于全屏模式时,您可以通过在窗口的顶部和底部或左侧和右侧添加黑条来保持大小比例。不过,您可能仍然需要使用一些布局才能使它们完美。

拥有 2000 个不同的组件听起来像是一场可用性噩梦,但这是一个不同的问题。

【讨论】:

  • 我喜欢你的第二个想法。我将把当前的主要内容面板放在另一个面板中,并将当前的大小设置为固定数字。第二个面板将有一些图片作为壁纸。
猜你喜欢
  • 1970-01-01
  • 2020-04-03
  • 2015-08-26
  • 2016-02-10
  • 1970-01-01
  • 1970-01-01
  • 2010-09-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多