Hi, I'm fairly new with Swing stuff. I'm in the midst of extending a JButton. The behaviour and look&feel works except that his face value/text cannot be seen. Below is the code. Anyone care to check it out please? import java.awt.*; import java.awt.event.*; import java.net.*; import java.util.*; import javax.swing.*; import javax.swing.border.*; import javax.swing.event.*; /** * This button is meant to assist configuration of Rules or Conditions. */ public class InvisibleButton extends JButton implements ActionListener { protected Border activeBorder; protected Border inactiveBorder; protected String text; protected String sUrl; protected URL url; // to store a lightwieght Condition or Rule protected Object anObject; public InvisibleButton( String atext, String sUrl) { setText(atext); sUrl = sUrl; try { url = new URL(sUrl); } catch(Exception ex) { url = null; } setOpaque(false); activeBorder = new MatteBorder(1, 1, 1, 1, Color.yellow); activeBorder = new MatteBorder(1, 1, 1, 1, Color.yellow); inactiveBorder = new EmptyBorder(1, 1, 1, 1); setBorder(inactiveBorder); addActionListener(this); } public void setText(String atext) { text = atext; super.setText(""+atext+""); setToolTipText(atext); } public String getText() { return text; } protected void processMouseEvent(MouseEvent evt) { switch (evt.getID()) { case MouseEvent.MOUSE_ENTERED: setBorder(activeBorder); setCursor(Cursor.getPredefinedCursor( Cursor.HAND_CURSOR)); break; case MouseEvent.MOUSE_EXITED: setBorder(inactiveBorder); setCursor(Cursor.getPredefinedCursor( Cursor.DEFAULT_CURSOR)); break; } super.processMouseEvent(evt); } public void actionPerformed(ActionEvent e) { if (url != null) { // Do lotsa stuff } } public void paintComponent(Graphics g) { paintBorder(g); } }