什么原因导致Jframe在调整大小时闪烁?

时间:2015-03-30 18:26:07

标签: 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 个答案:

答案 0 :(得分:1)

听起来像是自动刷新/自动重绘问题。拖动JPane时,它会尝试更新其所有组件的布局,从而导致闪烁。这个讨论应该有解决方案:How to stop the auto-repaint() when I resize the Jframe

相关问题