设置JPanel背景图片: 重写Container的paintComponent()方法,绘制背景 package com.work.study.swing; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Image; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JPanel; /** * test setting JPanel's background * @author Wison Xu */ public class TestJPanel extends JFrame { private Dimension frameSize = new Dimension(600, 600); public TestJPanel() { this.setLayout(new BorderLayout()); this.setSize(frameSize); JPanel panel = new JPanel() { @Override protected void paintComponent(Graphics g) { ImageIcon icon = new ImageIcon("D://test.jpg"); Image img = icon.getImage(); g.drawImage(img, 0, 0, icon.getIconWidth(), icon.getIconHeight(), icon.getImageObserver()); // 细致渲染、绘制背景,可控制截取图片,显示于指定的JPanel位置 // g.drawImage(img, 0, 0, frameSize.width, frameSize.height, // 0, 0, icon.getIconWidth(), icon.getIconHeight(), icon.getImageObserver()); } }; this.add(panel, BorderLayout.CENTER); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } public static void main(String[] args) { TestJPanel test = new TestJPanel(); } }