繁体   English   中英

repaint() 在我拖动 window 之前不会重新绘制

[英]repaint() doesn't repaint until I drag the window around

我的 repaint() function 不会重新绘制面板,直到我将 window 拖到我的第二台显示器上,有人知道如何让它立即重新绘制吗?

这是我的代码:

@Override
public void paintComponent(Graphics g) {
    super.paintComponent(g);
    doDrawing(g);
}

private void doDrawing(Graphics g) {

    g.setColor(Color.black);
    g.fillRect(0, 0, 927, 900);

    g.setColor(Color.white);

    //things that aren't getting redrawn
    maze.drawEntities(g);
}

@Override
public void run() {
    while(true) {
        repaint();
        try {
            Thread.sleep(100);
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
}

您几乎可以肯定还没有验证布局。 如果您添加或删除了组件,则需要这样做。 revalidate将在您处理完当前事件后进行验证,并且无论您调用多少次(在单个事件期间)都可以轻松地执行一次。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM