是否可以在Java Swing中锁定JFrame的宽高比?
例如,如果我的窗口是200px乘200px,并且用户想要调整它的大小,我希望宽度和高度之间的比例为1:1,这样如果新宽度为400px,则新高度为被迫400px。
我知道ComponentListener
和componentResized
,但是我很难让它进入无限循环的大小调整,因为我正在调整大小调整大小的窗口大小。
谢谢!
答案 0 :(得分:2)
我对你的问题没有具体的答案,但我经常发现避免你所说的“无限循环调整大小”的方法是推迟你调整窗口的大小:
boolean correctAspectRatio = ...; // check to see if new size meets aspect ratio requirements
if (!correctAspectRatio) {
final Frame _frame = this;
final int _width = ...; // calculated width
final int _height = ...; // calculated height
SwingUtilities.invokeLater(new Runnable(){
public void run() {
_frame.setSize(_width, _height);
}
});
}