我试图以一种不寻常的方式使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
方法可能不适用?那我该怎么用?
提前谢谢。
答案 0 :(得分:4)
窗口大小调整由OS处理;你事后才得到更新。因此,虽然您可以在调整大小后更正大小,但在调整大小时无法限制比率。
答案 1 :(得分:0)
你可以尝试
((JFrame)e.getTopLevelAncestor()).pack();
其中e是你的组成部分。如果那项工作让我知道