今天写东西的时候遇到了,以前也这样写过,一直是通过的,但是今天突然今天不调用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("重新显示成功");
}}

解决方案 »

  1.   

    这是个绘制方法吧!
       很久以前用过,好像你得重新调用了一那个repaint()方法,才会被调用!
    如果里面绘制的图案有变化,你因该在重复的调用repaint()方法。。你试一下看看,我很久没用搞swing了!
      

  2.   

    楼主还是需要贴出来代码,你这抽象出来的代码实际上是可以调用的,给你看看
    下面的代码是完全有你预想的效果的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);
        }}
      

  3.   

    抱歉了,丢脸了,忘记加代码frame.add(GamePanel)了,找错找了一天……
    谢谢2楼了