【问题标题】:How to auto adjust window size in Swing如何在 Swing 中自动调整窗口大小
【发布时间】:2012-08-07 15:57:41
【问题描述】:

我需要在 JFrame 中显示图像。如何使窗口大小根据图像大小自动调整。

【问题讨论】:

    标签: java image swing jframe


    【解决方案1】:

    1.如果您将图像作为Icon / ImageIcon 放到JLabel 然后

    • 必须为JFrame 测试MaximumSize,返回Toolkit 用于混凝土监视器

    • 如果PreferedSize 小于MaximumSize 大小,则调用JFrame#pack()

    • 否则必须致电setSize()

    2.在将图像设置为Icon / ImageIcon 的情况下,通过使用Custom PaintingJComponentJPanelJLabel e.i.那么

    • 那么这个JComponent 必须返回PreferredSize

      a) 如果PreferedSize 低于MaximumSize,则调用JFrame#pack()

      b) 否则必须致电JFrame#setSize()

      c) 假设您不使用Image#getScalledInstance

    3.我将在JLabel 中使用Icon,只有一个问题是图像可以小于屏幕上的预期尺寸,但没有问题,很可能将图像居中JLabel.CENTERJLabel

    【讨论】:

    • 还要考虑JScrollPane,显示为here
    • 使用自定义绘画Point 2示例显示here
    • 不太了解整体逻辑:a) 通常,max 非常大(因此在第一次近似中简单地忽略它是足够安全的)并且远大于 pref b) JLabel 返回一个合理的大小对于 pref,只需要 pack c) 否则 将是 pref > max,这将是一个必须修复的非法状态(而不是强制实际大小变大(不确定框架是否需要) 1. 和 2. 看起来非常相似(除了手动绘制和自定义覆盖 getPref)
    猜你喜欢
    • 1970-01-01
    • 2017-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    • 2017-04-29
    • 1970-01-01
    • 2011-12-21
    相关资源
    最近更新 更多