views:

847

answers:

3

Hi,

whats the most simple way to make a JButton only show the background color? I don't need any other effects like borders, 3D-look or hover-highlighting.

Thanks in advance.

+1  A: 

How about

yourButton.setBorder(null);

?

Joonas Pulakka
+3  A: 

Just set the colours and the border:

private static JButton createSimpleButton(String text) {
  JButton button = new JButton(text);
  button.setForeground(Color.BLACK);
  button.setBackground(Color.WHITE);
  Border line = new LineBorder(Color.BLACK);
  Border margin = new EmptyBorder(5, 15, 5, 15);
  Border compound = new CompoundBorder(line, margin);
  button.setBorder(compound);
  return button;
}

Use setOpaque(false); to make the background transparent.

McDowell
A: 

You may want to use a JLabel with a MouseListener instead... unless you're tied to using a JButton or ActionListener in some way.

Nate
That'll work, but has implications for keyboard focus/accessibility.
McDowell