You can easily add a background image to swing’s JTable. The following code shows you how:
Note that the image scrolls with the table.
public class BackgroundTable { public static void main(String[] args) JFrame frame = new JFrame("Table Example"); frame.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { Window w = e.getWindow(); w.setVisible(false); w.dispose(); System.exit(0); } } ); JTable imTable = new JTable( 35, 3 ) { public Component prepareRenderer (TableCellRenderer renderer, int row, int column) { Component c = super.prepareRenderer( renderer, row, column); // We want renderer component to be //transparent so background image is visible if( c instanceof JComponent ) ((JComponent)c).setOpaque(false); return c; } ImageIcon image = new ImageIcon( "FIREFALL.gif" ); public void paint( Graphics g ) { // tile the background image 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 ); // Now let the paint do its usual work super.paint(g); } }; //make the table transparent imTable.setOpaque(false); JScrollPane jsp = new JScrollPane(imTable); frame.getContentPane().add(jsp); frame.pack(); frame.show(); } }