在Swing窗口中强制固定宽高比

时间:2013-02-22 16:04:01

标签: java swing resize window

我已经搜索过这个问题但是并没有找到一个清晰,有用的答案。我正在构建我的第一个Java UI应用程序 1 (使用Swing),我想知道一件事:如何强制调整窗口的大小?这对我即将推出的计划来说非常重要。任何人都可以帮我这个吗?谢谢!伙计们,我不是要求'只是给我一个解决方案',我知道你们讨厌那个,我只是需要有人帮助我达到它!

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

2 个答案:

答案 0 :(得分:2)

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

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

但是,你必须调整它,以避免闪烁。

答案 1 :(得分:2)

您可以调整JDigit中显示的here所示的方法,该方法重新采样大BufferedImage以填充组件;调整框架大小以查看效果。您可以通过将widthheight设置为相同的值来强制实施1:1宽高比:Math.min(width, height)。显示了一个相关示例here

image