设置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();
}
}