import java.awt.*;
import javax.swing.*;
public class ImagePanel extends JPanel {
private Image img;
public ImagePanel(Image img){ //构造
this.img=img;
Dimension size=new Dimension(img.getWidth(null),img.getHeight(null)); //获取图片大小。
setSize(size);
setPreferredSize(size);
setMinimumSize(size);
setMaximumSize(size);
setLayout(null); //使用绝对布局管理器。
}
public void paintComponent(Graphics g){
g.drawImage(img, 0, 0, null);
}
}
请注意:我在上面用的是paintComponent(Graphics g)方法,而不是 paint(Graphics g)方法,否则加在这个面板中的子组件将无法绘制。
下面写个测试类:
import java.awt.*;
import javax.swing.*;
public class testPanel {
public static void main(String[] args){
Image img=new ImageIcon("images/bg.jpg").getImage();
JFrame frame=new JFrame("My hack one");
ImagePanel panel=new ImagePanel(img);
frame.getContentPane().add(panel);
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}