比例调整JFrame的大小

Lam*_*pos 6 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);
    }
  });
}
Run Code Online (Sandbox Code Playgroud)

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

也许componentResized方法不适用于这种情况?那我该怎么用?提前致谢.

Mik*_*ike 0

你可以试试

((JFrame)e.getTopLevelAncestor()).pack();
Run Code Online (Sandbox Code Playgroud)

其中 e 是您的组件。让我知道这是否有效