public class AspectRatio extends JFrame implements ComponentListener{
public AspectRatio() {
setSize(100, 100);
setVisible(true);
addComponentListener(this);
}
public static void main(String[] args){
new AspectRatio();
}
@Override
public void componentHidden(ComponentEvent e) {
// TODO Auto-generated method stub
}
@Override
public void componentMoved(ComponentEvent e) {
// TODO Auto-generated method stub
}
@Override
public void componentResized(ComponentEvent e) {
int i = Math.max(getWidth(), getHeight());
setSize(i, i);
}
@Override
public void componentShown(ComponentEvent e) {
// TODO Auto-generated method stub
}
}
以下是您可以复制粘贴的示例。我不能说除了我自己以外的任何人,但是当我调整大小时,JFrame会疯狂地闪烁。有人知道造成这种情况的原因吗?
先谢谢你。
答案 0 :(得分:1)
听起来像是自动刷新/自动重绘问题。拖动JPane时,它会尝试更新其所有组件的布局,从而导致闪烁。这个讨论应该有解决方案:How to stop the auto-repaint() when I resize the Jframe