是否可以在 Java Swing 中锁定 JFrame 的纵横比?
例如,如果我的窗口是 200px x 200px,用户想要调整它的大小,我希望宽度和高度之间的比例为 1:1,这样如果新的宽度是 400px,那么新的高度是强制为 400px。
我知道 ComponentListener
和 componentResized
,但我很难不让它进入调整大小的无限循环,因为我正在调整调整大小监听器中的窗口。
谢谢!
最佳答案
我对你的问题没有具体的答案,但我经常发现避免你所说的“调整大小的无限循环”的方法是推迟调整窗口大小的调用:
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);
}
});
}
关于Java - 锁定 JFrame 的纵横比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2496761/