swing是自动支持双缓冲的,你的绘图代码应该加在public void paintComponent(Graphics g) {
super.paintCumponent(g); // add your code here.
g.drawImage(...);
}否则在重绘的时候就有可能被覆盖掉。这点和AWT不同。
super.paintCumponent(g); // add your code here.
g.drawImage(...);
}否则在重绘的时候就有可能被覆盖掉。这点和AWT不同。
{
private Image mainMapImage; //主地图
private Image eagleMapImage; //鹰眼地图 public ImagePanel(){
}/*
public void paint(Graphics g){
this.loadPic();
}
*/
public void paintComponent(Graphics g) {
System.out.println("paintComponent");
super.paintComponent(g);
loadPic(); }
public void loadPic() {
MediaTracker tracker = new MediaTracker(this);
tracker.addImage(mainMapImage, 0);
tracker.addImage(eagleMapImage, 1);
try {
tracker.waitForID(0);
tracker.waitForID(1);
} catch (InterruptedException ex) { }
this.getGraphics().drawImage(mainMapImage,1,1,300,200,this);
this.getGraphics().drawImage(eagleMapImage,1,200,100,80,this);
} public void setMainMapImage(Image mainMapImage) {
this.mainMapImage = mainMapImage;
}
public void setEagleMapImage(Image eagleMapImage) {
this.eagleMapImage = eagleMapImage;
}
}
this.mainMapImage = mainMapImage;
}
public void setEagleMapImage(Image eagleMapImage) {
this.eagleMapImage = eagleMapImage;
}这是别的函数里调用的么?应该不会有问题才对,