J帧以纵横比resize

我使用带有组件的jFrame制作了游戏。 有没有办法可以让JFrame更大,但使用方形方面,以便长度总是等于拖动时的宽度?

任何帮助表示赞赏。

干杯

您可以实现ComponentListener并具有类似的function

@Override public void componentResized(ComponentEvent arg0) { Rectangle b = arg0.getComponent().getBounds(); arg0.getComponent().setBounds(bx, by, b.width, b.width); } 

并将其用于您的JFrame。 唯一的事情是,使用JFrame,它不会引发此事件,直到鼠标被释放。 如果要在拖动鼠标时查看更改,则必须使用JPanel并使用此ComponentListener而不是JFrame,并使用面板填充框架。

你可以尝试这样的事情:

 public void componentResized(ComponentEvent e) { System.out.println("i have changed size applying aspect ratio now."); setSize(getWidth(), getWidth()); repaint(); } 

这有点不直观,因为在调整组件大小后resize。