java是什么导致Jframe在调整大小时闪烁?
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会闪烁异常。有人知道这是什么原因吗
提前谢谢你
# 1 楼答案
听起来像是自动刷新/自动重新绘制的问题。拖动JPane时,它会尝试更新其所有组件的布局,导致闪烁。这个讨论应该有解决方案:How to stop the auto-repaint() when I resize the Jframe