【问题标题】:Java: JFrame resolution?Java:JFrame 分辨率?
【发布时间】:2012-04-29 21:51:20
【问题描述】:

我在 Mac 上使用多个 JFrame 制作了一个程序,分辨率还可以,一切都适合屏幕。但是当我在我的 PC 上运行该程序时,JFrames 太大了,直接从屏幕上消失了。

我的问题是:是否可以在 JFrame 上设置通用分辨率,以便将所有组件绘制得更小一点?我宁愿这样做,然后遍历整个程序并手动调整每个组件的大小。

【问题讨论】:

  • "我用几个 JFrame 做了一个程序.."The Use of Multiple JFrames, Good/Bad Practice? "是否可以在一个 JFrame 上设置通用分辨率,以便所有组件画得小一点吗?” 我希望不会!在我的屏幕上显示文本“太小”(读作“小于标准”)的 GUI 对我来说毫无用处。使用布局来制作紧凑(例如CardLayout)和可调整大小的 GUI。如果所有其他方法都失败了,请将内容窗格放入滚动窗格(但情况必须很糟糕才能证明这一点)。

标签: java swing jframe resolution layout-manager


【解决方案1】:

我用几个 JFrame 做了一个程序

错误地使用 CardLayout,仅当有真正的理由使用 JDialog 或 JOptionPane 与父级和 (JDialog) 可能与 setModal(true) 到单个 JFrame 时

但是当我在我的 PC 上运行该程序时,JFrame 太大而直接离开屏幕

是否可以在 JFrame 上设置通用分辨率,以便将所有组件绘制得更小一些?

使用合适的 LayoutManager,确实不容易,需要真正的努力

我宁愿这样做,然后遍历整个程序并手动调整每个组件的大小。

使用适当的 LayoutManager,

  • 如需更好的帮助,请尽快编辑您的问题,SSCCE 展示了您在 PC 或平台之间的屏幕尺寸不同时遇到的问题

【讨论】:

  • 谢谢!我认为您误解了我所说的“多个 JFrame”的意思。我的意思是整个程序涉及多个,但它们不会同时显示:P 我使用的是绝对布局,所以我会摆弄推荐的布局,看看我能做些什么来修复我的问题。
【解决方案2】:

据我所知,您无法更改 Swing 组件的分辨率。但是您可以从系统中获取当前的屏幕尺寸(here 的示例)。使用此屏幕尺寸,您可以调整组件。

如果您明智地编写 GUI 代码,则不必手动调整 GUI 的所有组件的大小。相反,顶级 JPanel(或 JFrame 或其他任何东西)将根据其包含的组件(例如,使用类似 pack() 的东西)调整其大小。因此,只有少数组件具有硬编码大小。这个大小也可以外化为易于编辑的类或文件。

【讨论】:

    【解决方案3】:

    我遇到了像你这样的问题,我用 JScrollbar 解决了它! Here 是如何让你的 JFrame 可滚动的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-24
      • 2018-07-12
      • 1970-01-01
      • 1970-01-01
      • 2011-04-07
      • 2013-08-20
      • 1970-01-01
      相关资源
      最近更新 更多