JFrame中加载图片

为一个JFrame窗口中加载一个背景图,有两种方法
(1)生成一个JLabel标签,然后利用JLabel(Icon image)这个构造方法就可以加载图片
(2)生成一个JPanel面板,然后在面板中加载背景图

上面两种方法, 第二种具有比较好的扩展性。因为,如果利用JLabel加载背景图,那么扩展性上比较差,且在JLabel上不能干其他事情,比如:在放置一个JButton,整个布局背景图就错乱。

现在,我对通过在JPanel上加载一个图片进行叙述一下:

第一:在创建一个JPanel面板,加载背景图需要重写
public void paintComponent(Graphics g)


重写代码如下:
class ImagePanel extends JPanel {
	public ImagePanel() {
		super(new BorderLayout()); //重写面板布局方式
	}

	public void paintComponent(Graphics g) {
		super.paintComponent(g);
		ImageIcon img = new ImageIcon("C:\\http_imgload.jpg"); //调用ImageIcon加载图片
		img.paintIcon(this, g, 0, 0); //在ImagePanel进行画图,且从坐标原点开始x=0;y=0
	}
}


第二:在JFrame中加载面板
public class ImagePanelJFrame extends JFrame {
	public ImagePanelJFrame() {
		init();
	}
	
	public void init() {
		setSize(800,600);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		ImagePanel imagePanel = new ImagePanel();
		imagePanel.setOpaque(true); //设置imagePanel组件是透明的
		imagePanel.setBackground(Color.white); //设置面板的背景色
		
		this.getContentPane().add(imagePanel);
		this.setVisible(true);
	}
	
	public static void main(String[] args) {
		ImagePanelJFrame f = new ImagePanelJFrame();
	}
	
}


通过上面简单描述,我们就完成为JFrame中加载图片,整个程序运行的效果如下图
JFrame中加载图片_第1张图片

整个程序源码,可以下载附件

你可能感兴趣的:(C++,c,C#,F#)