Image Background in JPanel

Hi there, does any one know a really simple method to make a background image. I have a basic JPanel code posted below, how can I easily get a background for it?

Also, I was wondering how could you go about stretching the background when the user changes the size of the window? so there isn't any white blocks on the left, right, top or bottom areas of the JPanel?

Thanks

[code]package components;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.*;
import java.io.IOException;
import javax.swing.*;
import javax.swing.border.LineBorder;


public class TestJMenuBar extends javax.swing.JFrame
{




public TestJMenuBar()
{

super("WSHS - SPA");


JMenuBar sbar = new JMenuBar();
JMenu menuFile = new JMenu("File");
JMenu menuAbout = new JMenu("About");
JMenu menuExit = new JMenu("Exit");
JMenuItem item = new JMenuItem("item");
JMenuItem item2 = new JMenuItem("item2");
JMenuItem item3 = new JMenuItem("item3");
JMenuItem item4 = new JMenuItem("item4");
JMenuItem item5 = new JMenuItem("item5");
JMenuItem item6 = new JMenuItem("item6");
menuFile.add(item);
menuFile.add(item2);
menuAbout.add(item3);
menuAbout.add(item4);
menuExit.add(item5);
menuExit.add(item6);
sbar.add(menuFile);
sbar.add(menuAbout);
sbar.add(menuExit);



JPanel panel = new JPanel();
panel.setLayout(new java.awt.GridLayout(10,10));
panel.add(new JLabel("Welshville Senior High School", JLabel.CENTER),BorderLayout.NORTH);
panel.add(new JLabel("Student Project Administration", JLabel.CENTER),BorderLayout.NORTH);
panel.add(new JLabel(" "),BorderLayout.NORTH);
panel.add(new JLabel(" "),BorderLayout.NORTH);

//panel.add(new JButton("Womjkljkljbat"),BorderLayout.CENTER);
JButton button1 = new JButton(new ImageIcon("one.jpg") );
button1.setText("Student");
button1.setHorizontalTextPosition(JButton.CENTER);
button1.setVerticalTextPosition(JButton.CENTER);

JButton button2 = new JButton(new ImageIcon("one.jpg") );
button2.setText("Teacher");
button2.setHorizontalTextPosition(JButton.CENTER);
button2.setVerticalTextPosition(JButton.CENTER);

JButton button3 = new JButton(new ImageIcon("one.jpg") );
button3.setText("Admin");
button3.setHorizontalTextPosition(JButton.CENTER);
button3.setVerticalTextPosition(JButton.CENTER);

panel.add(button1);
panel.add(button2);
panel.add(button3);
panel.add(new JLabel(" "),BorderLayout.SOUTH);
panel.add(new JLabel(" "),BorderLayout.SOUTH);
JLabel heading = new JLabel("Copyright 2009", JLabel.CENTER);


panel.add(heading, BorderLayout.SOUTH);
panel.setBorder(new LineBorder(Color.BLACK));

Container pane = getContentPane();
pane.setLayout(new BorderLayout());
java.awt.BorderLayout.NORTH);


pane.add(panel, BorderLayout.CENTER);
pane.add(sbar, BorderLayout.NORTH);
}


public static void main(String[] args)
{
ImagePanel panel = new ImagePanel(new ImageIcon("one.jpg").getImage());

JFrame frame = new JFrame();



TestJMenuBar app = new TestJMenuBar();
app.setSize(300, 400);

app.setDefaultCloseOperation(EXIT_ON_CLOSE);
app.setVisible(true);
//app.getContentPane().add(panel);
//app.pack();
}
}




class ImagePanel extends JPanel {

private Image img;

public ImagePanel(String img) {
this(new ImageIcon(img).getImage());
}

public ImagePanel(Image img) {
this.img = img;
Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));
setPreferredSize(size);
setMinimumSize(size);
setMaximumSize(size);
setSize(size);
setLayout(null);
}

public void paintComponent(Graphics g) {
g.drawImage(img, 0, 0, null);
}




}
[/code]
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories