今天写东西的时候遇到了,以前也这样写过,一直是通过的,但是今天突然今天不调用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("重新显示成功");
}}
简化了代码如下:
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("重新显示成功");
}}
很久以前用过,好像你得重新调用了一那个repaint()方法,才会被调用!
如果里面绘制的图案有变化,你因该在重复的调用repaint()方法。。你试一下看看,我很久没用搞swing了!
下面的代码是完全有你预想的效果的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);
}}
谢谢2楼了