求大神帮忙啊,我这样画了一个圆,然后把这个圆放进了一个Thread,让他每次都执行都重新画一个圆,
实际上我是想写一个Ping功能,然后这个小圆点的颜色会根据延迟时时改变。
部分代码如下:
pp=new Panel(){
public void paint(Graphics gs) {
super.paint(gs);
gss=gs;
gss.setColor(new Color(r,g,b));
gss.fillOval(0,0,10,10);
}
};
pp.setBounds(235, 75, 10, 10);
jp.add(pp); //jp为一个JPanel
问题是:运行的时候鼠标不再窗口内没问题,可是鼠标一移到窗口,这个小圆点就会消失,或者闪烁。
之前百度过缓冲,可是都不是我这样的写法,其他写法我试过,连图都画不出来,更别说解决闪烁了。
求大神指导啊
------解决方案--------------------
在你的类中定义一个全局的图像:
Image offScreenImage = null;
添加一个update方法:
- Java code
public void update(Graphics g) { if(offScreenImage == null){ offScreenImage = this.createImage(GAME_WIDTH,GAME_HEIGHT); } Graphics gOffScreen = offScreenImage.getGraphics(); Color c = gOffScreen.getColor(); gOffScreen.setColor(Color.BLACK); gOffScreen.fillRect(0, 0, GAME_WIDTH, GAME_HEIGHT); gOffScreen.setColor(c); paint(gOffScreen); g.drawImage(offScreenImage,0,0,null); }