esuslogo
 [To advertise Java(tm) Events here, contact us!]
banner

Java™
by example!






New @ Esus.com


  gb  In-house search engine for better results!

  gb  Get updates with the esus.com
newsletter!









  Home 
 Browse Categories 
 Ask a Java Question 
 Help 
  For Java Tips & Tricks, subscribe to the esus.com newsletter!
Search Java Q&A, Links, API's:   adv 

How do I make the cells of my JTable transparent so that my background image shows through?
Author: Zafir Anjum

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




Further Information
Author of answer: Rangel Preis

Comments to this answer are only viewable by members. Login or become a member!





Terms of Service | Privacy Policy | Contact

Copyright © 2000-2003 Esus.com - All Rights Reserved 
Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. Esus.com is independent of Sun Microsystems, Inc. All other trademarks are the sole property of their respective owners.