Java:在JPanel上调用repaint()时,同一个JFrame中的组件会在左上角重绘

时间:2014-02-18 01:13:53

标签: java swing jframe repaint

我有一个扩展JPanel的Graph类。它在mouseMoved上重新绘制。当发生这种情况时,基本上添加到布局中的任何其他组件(无论是相同的JPanel还是单独的JFrame)都会在左上角受到压力。我有一个屏幕截图,可以使用以下代码。如果仔细观察左上角,会出现一个小的文本区域。任何组件都会发生这种情况。

public class GUI extends JFrame {

    private JTextArea txtPoints = new JTextArea(20, 40);

    GUI() {
        setSize(800, 1000);
        setLayout(new MigLayout());
        add(new Graph(), "wrap");
        add(txtPoints);
        setVisible(true);
   }
}

enter image description here

1 个答案:

答案 0 :(得分:3)

欢迎来到破碎油漆链的精彩世界。

如果没有进一步的证据,你已经覆盖了一些paintXxx方法而未能调用super.paintXxx,这意味着以前绘制到Graphics上下文的内容仍然存在......

请查看Performing Custom PaintingPainting in AWT and Swing了解详情