repaint和paintComponent的问题,急~~~

hn1232 2009-05-28 10:42:29

package com.test;

import java.awt.Graphics;
import javax.swing.JPanel;


public class GamePanel extends JPanel{

private static final long serialVersionUID = 1L;


public void display(){
System.out.println("display");
this.repaint();
System.out.println("repaint()");
}

@Override
protected void paintComponent(Graphics g) {
System.out.println("paintComponent");
}


public static void main(String[] args){
GamePanel gamePanel = new GamePanel();
gamePanel.display();
}
}


repaint()方法不是会自动调用paintComponent方法吗?为什么我的上面一段程序,不调用paintComponent()方法呢?
请高手指教,先谢谢了~
...全文
485 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hn1232 2009-05-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xiaop0817 的回复:]
看源码就知道了嘛~~
[/Quote]
嗯……没看明白呢……
xiaop0817 2009-05-28
  • 打赏
  • 举报
回复
看源码就知道了嘛~~
hn1232 2009-05-28
  • 打赏
  • 举报
回复
额……这个……没分就没人答吗?^
hn1232 2009-05-28
  • 打赏
  • 举报
回复
没人回吗?自己顶下!
hn1232 2009-05-28
  • 打赏
  • 举报
回复
javax.swing.JComponent类
repaint()调用update()
update()调用paint()
paint()调用paintComponent(),paintBorder(),及paintChildren()

自己搞定了,因为上面的代码,根本就没有开始显示JPanel,既然没有显示,怎么会调用paintComponent()呢?
可以试试,调试下面一段代码用于理解~

package com.test;
import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class GamePanel extends JPanel{

private static final long serialVersionUID = 1L;
public GamePanel(){

}

public void display(){
System.out.println("GmaePanel - display");

this.repaint();
}

@Override
protected void paintComponent(Graphics g) {

System.out.println("GamePanel - ------------paintComponent");

g.setColor(new Color(0xcfcfcf));
}

@Override
public void paint(Graphics g) {
System.out.println("GamePanel - ------------paint");
super.paint(g);
}

@Override
public void update(Graphics g) {
System.out.println("GamePanel - ------------update");
super.update(g);
}

public static void main(String[] args){
JFrame frame = new JFrame();
frame.setSize(300,300);
GamePanel gp = new GamePanel();
frame.add(gp);
frame.setVisible(true);
gp.display();
}
}

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧