比例调整JFrame的大小

时间:2011-10-24 13:15:44

标签: java swing resize jframe

我试图以一种不寻常的方式使JFrame重新调整大小:框架的宽度与高度之比必须是恒定的。我写了这个简单的代码;在这种情况下,比率是1/2:

public class Panel extends JFrame {
  public Panel() {
    addComponentListener(new ComponentAdapter() {
      @Override
      public void componentResized(ComponentEvent e) {
      System.out.println("Reseized");
      setSize(getSize().width, getSize().width * 2);
    }
  });
}

但是这个框架在重新绘制方面存在问题,并且仅在用户拖动鼠标时才有效。拖动完成后,框架的右下角位于用户释放鼠标的位置。

在这种情况下,componentResized方法可能不适用?那我该怎么用? 提前谢谢。

2 个答案:

答案 0 :(得分:4)

窗口大小调整由OS处理;你事后才得到更新。因此,虽然您可以在调整大小后更正大小,但在调整大小时无法限制比率。

答案 1 :(得分:0)

你可以尝试

((JFrame)e.getTopLevelAncestor()).pack();

其中e是你的组成部分。如果那项工作让我知道