ImagePanel extends JPanel
package com.greysh;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
public class JImagePanel extends JPanel {
private static final long serialVersionUID = 1L;
BorderLayout borderLayout = new BorderLayout();
private ImageIcon image = null;
public JImagePanel(ImageIcon image) throws Exception {
this.image = image;
JImagePanelInit();
}
private void JImagePanelInit() throws Exception {
this.setLayout(borderLayout);
}
protected void paintComponent(Graphics g) {
setOpaque(true);
super.paintComponent(g);
Dimension d = getSize();
for (int x = 0; x < d.width; x += image.getIconWidth())
for (int y = 0; y < d.height; y += image.getIconHeight())
g.drawImage(image.getImage(), x, y, null, null);
}
}
Test JPanel
package com.greysh;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class JTestFrame extends JFrame {
private static final long serialVersionUID = 1L;
public static void main(String[] args) throws Exception {
JTestFrame jtestframe = new JTestFrame();
JPanel jpanel = (JPanel) jtestframe.getContentPane();
jpanel.setLayout(new BorderLayout());
ImageIcon image = new ImageIcon(JTestFrame.class.getResource("logo.jpg"));
JImagePanel jimagepanel = new JImagePanel(image);
jpanel.add(jimagepanel);
jtestframe.setSize(new Dimension(400, 300));
jtestframe.setTitle("JImagePanel");
jtestframe.setDefaultCloseOperation(EXIT_ON_CLOSE);
jtestframe.setVisible(true);
}
}