当前位置: 代码迷 >> J2SE >> repaint()不调用paintComponent(),该如何解决
  详细解决方案

repaint()不调用paintComponent(),该如何解决

热度:639   发布时间:2016-04-24 18:11:46.0
repaint()不调用paintComponent()
今天写东西的时候遇到了,以前也这样写过,一直是通过的,但是今天突然今天不调用paintComponent(),debug单步确实不进入paintComponent(),这是咋回事
简化了代码如下:
public class TestR extends JPanel {

public void drawMe() {
System.out.println("TestR's drawMe");
this.repaint();
}

@Override
protected void paintComponent(Graphics g) {
// TODO Auto-generated method stub
System.out.println("重新显示成功");
}

}


------解决方案--------------------
楼主还是需要贴出来代码,你这抽象出来的代码实际上是可以调用的,给你看看
下面的代码是完全有你预想的效果的
Java code
import javax.swing.*;import java.awt.*;public class TestR extends JPanel {    public void drawMe() {        System.out.println("TestR's drawMe");        this.repaint();    }    @Override    protected void paintComponent(Graphics g) {    // TODO Auto-generated method stub        System.out.println("重新显示成功");    }    public static void main(String[] args){        JFrame frame=new JFrame("demo");        TestR panel=new TestR();        frame.getContentPane().add(panel);//        panel.drawMe();        frame.pack();        frame.setVisible(true);    }}