Greysh's Blog Greysh

Friday May 01, 2009

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);
 }
}

Comments:

Post a Comment:
  • HTML Syntax: NOT allowed