我写了个ImagePanel类,是继承JPanel的,就是在JPanel上画出背景图,
可是在Eclipse里调用的时候,我发现有个问题:放置ImagePanel的JFrame
的Layout必须设置为null,才能正常显示图片,而且,Eclipse里设计的时候,其他的组件就显示不出来,在JBulider里还比较正常,但如果将JFrame的Layout改成null,窗口就不能缩放了。
不知道谁能解决这个问题。
可是在Eclipse里调用的时候,我发现有个问题:放置ImagePanel的JFrame
的Layout必须设置为null,才能正常显示图片,而且,Eclipse里设计的时候,其他的组件就显示不出来,在JBulider里还比较正常,但如果将JFrame的Layout改成null,窗口就不能缩放了。
不知道谁能解决这个问题。
*构造方法有:ImagePanel(ImageIcon imageIcon);
*也可以调用void setImage(ImageIcon img)
*/
import java.awt.*;
import javax.swing.*;public class ImagePanel extends JPanel { private static final long serialVersionUID = 1L;
private Image _img; /**
* This is the default constructor
*/
public ImagePanel(ImageIcon imageIcon) {
super();
setOpaque(false);
_img = imageIcon.getImage();
setPreferredSize(new Dimension(imageIcon.getIconWidth(),
imageIcon.getIconHeight()));
initialize();
} /**
* This method initializes this
* @return void
*/
private void initialize() {
this.setSize(300, 200);
this.setLayout(new GridBagLayout());
}
protected void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(_img,0,0,this);
}
public void setImage(ImageIcon img){
if(img != null){
this._img=img.getImage();
}
}
}