2

我已经搜索了这个问题,但并没有真正找到一个明确、有用的答案。我正在构建我的第一个 Java UI 应用程序1(使用 Swing),我想知道一件事:如何强制调整窗口大小以进行缩放?这对我即将到来的项目在美学上很重要。谁能帮我解决这个问题?谢谢!伙计们,我不是在要求“给我一个解决方案”,我知道你们讨厌这样,我只需要有人帮助我实现它!

  1. 这是一个小博格游戏。我有一个带有JButton实例的网格来模拟 Boggle 的骰子(需要单击这些骰子来形成单词),当我调整窗口大小时,我希望骰子保持方形,它们变成矩形,这并不是它应该的样子。
4

2 回答 2

2

您也许可以调整 中所示的方法,在这里JDigit看到,它重新采样一个大的以填充组件;调整框架大小以查看效果。您可以通过将和设置为相同的值来强制执行 1:1 纵横比: 。此处显示了一个相关示例。BufferedImagewidthheightMath.min(width, height)

图片

于 2013-02-22T16:44:39.220 回答
2

您可以在窗口上侦听组件调整大小的事件,并在宽度更改时设置所需的缩放高度。

addComponentListener(new ComponentAdapter() {
  public void componentResized(ComponentEvent e) {
    SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        // TODO: calculate new size and set it
      }
    });
  }
});

但是,您必须对此进行调整,以避免闪烁。

于 2013-02-22T16:09:08.657 回答