在使用JWindow进行绘图时生成了白板,部分代码如下:
public class MyWindow extends JWindow{
public MyWindow(){
Dimension d = Toolkit .getDefaultToolkit() .getScreenSize() ;
this.setBounds(0,0,d.width,d.height);
this.setVisible(true);
Image backgroundImage = this.creatImage(d.width,d.height);
BufferedImage image = ImageIO.read(new File("C:/测试用图片.jpg"));
background .getGraphics() .drawImage( image, 0, 0);
this.getGraphics().drawImage(backgroundImage,0,0);
}
}
在查了一些资料后发现,如果在继承了JWindow类的自定义类中添加 paint(Graphic g)方法,自定义类即可以正常使用getGraphics().drawImage()等方法进行绘图。
修改如下:
public class MyWindow extends JWindow{
public MyWindow(){
Dimension d = Toolkit .getDefaultToolkit() .getScreenSize() ;
this.setBounds(0,0,d.width,d.height);
this.setVisible(true);
Image backgroundImage = this.creatImage(d.width,d.height);
BufferedImage image = ImageIO.read(new File("C:/测试用图片.jpg"));
background .getGraphics() .drawImage( image, 0, 0);
this.getGraphics().drawImage(backgroundImage,0,0);
}
public void paint(Graphics g){
//方法内部为空即可
}
}