EarthWeb
Developer.com
Site
windows 2000
visual c++
java
visual basic
javascripts
recommend it
 
Book
thinking in java
 
Interact
forum
guest book
jobs
jokes
what's new

share code
 
Resource
add resource
modify resource
new resource
 

[Internet Jobs]
-----
Java by E-mail:

Get the weekly e-mail highlights on Java!
-----

-

Add a background image


Author: Zafir Anjum

Add a background image. You can use this to display your company logo or in a trialware. Note that the image also scrolls when you scroll the table.

table1 table2

The code given below is short enough to understand quickly. You should probably subclass JTable rather than create an anonymous class as shown below.


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;

public class Table
{
	public static void main(String[] args)
	{
		JFrame frame = new JFrame("Table");
		frame.addWindowListener( new WindowAdapter() {
			public void windowClosing(WindowEvent e)
			{
				Window win = e.getWindow();
				win.setVisible(false);
				win.dispose();
				System.exit(0);
			}
		} );
		
		
		// Create your own sub-class of JTable rather than using anonymous class
		JTable table = new JTable( 15, 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;
				}
		
				// Hard coded value. In your sub-class add a function for this.
				ImageIcon image = new ImageIcon( "codeguruwm.gif" );

				public void paint( Graphics g )
				{
					// First draw the background image - tiled 
					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 regular paint code do it's work
					super.paint(g);
				}
				
			};
		// Set the table transparent
		table.setOpaque(false);
		
		JScrollPane sp = new JScrollPane( table );
		frame.getContentPane().add( sp );
		
		frame.pack();
		frame.show();
	}
}


Improvement: In the paint code, you might want to get the clipRect and use that when tiling the image on the background.

Posted On: 16-Jan-1999

internet.commerce
Partner With Us
Condos For Sale
Build a Server Rack
Web Hosting Directory
Calling Cards
Prepaid Phone Card
KVM Switches
Corporate Gifts
Rackmount LCD Monitor
Promos and Premiums
Laptops
Hurricane Shutters
Boat Donations
Corporate Awards
Data Center Solutions



Acceptable Use Policy

JupiterOnlineMedia

internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info


Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

Web Hosting | Newsletters | Tech Jobs | Shopping | E-mail Offers