关于paint背景的问题
侠雨飞飞 2006-12-11 11:13:03 public class Frame1 extends JFrame implements ActionListener {
。。。。。。
JPanel jPanel3 = new JPanel(){
//绘制背景
public void paintComponent(Graphics g) {
if(image!=null){
g.drawImage(image,0,0,this.getWidth(),this.getHeight(),null);
}else{
g.setColor(new Color(100, 155, 100));
g.fillRect(0, 0, this.getWidth(), this.getHeight());
g.setColor(new Color(80, 135, 80));
g.setFont(new Font("黑体", 1, 25));
g.drawString("无背景图片", this.getWidth()/2, 30);
}
}
};
。。。。。。。
/**
*加载背景图
* @return boolean
*/
public boolean loadBgPic(){
imageIcon=new ImageIcon(this.bgPicname);
image=imageIcon.getImage();
image = image.getScaledInstance(jPanel3.getWidth(), jPanel3.getHeight(), Image.SCALE_SMOOTH);
jPanel3.validate();
jPanel3.repaint();
return true;
}
。。。。。。。。。
}
上面的程序中,我在jPanel3里加了一幅背景图片,然后,在jFram1里定义loadBgPic用来生成image
现在的问题是,调用后,jPanel3显示的是jframe1的背景色,这时如果jPanel3被遮挡重绘时,就会显示部分背景图片,但为何第一次 jPanel3.validate();
jPanel3.repaint();不显示呢?