3

It's the first time i'm using a JTabbedPane. It seems that default look and feel display an blue border border over the tab and around the component itself. How can i disable that effect?

Heisenbug
  • 38,762
  • 28
  • 132
  • 190

2 Answers2

4

Well, one easy and fast way you can remove this "effect" by setting the LookAndFeel to the SystemLookAndFeel (or any other lookandfeel):

    UIManager.setLookAndFeel(
        UIManager.getSystemLookAndFeelClassName());

Please, read this article so you can understand more about that subject: http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

bluefoot
  • 10,220
  • 11
  • 43
  • 56
0

Change Look And Feel with "UIManager"

            UIManager.getLookAndFeelDefaults().put("TabbedPane:TabbedPaneTab[Enabled].backgroundPainter", new BackgroundPainter(Color.white));
            UIManager.getLookAndFeelDefaults().put("TabbedPane:TabbedPaneTab[Enabled+MouseOver].backgroundPainter", new BackgroundPainter(Color.white));
            UIManager.getLookAndFeelDefaults().put("TabbedPane:TabbedPaneTab[Enabled+Pressed].backgroundPainter", new BackgroundPainter(Color.white));
            UIManager.getLookAndFeelDefaults().put("TabbedPane:TabbedPaneTab[Focused+MouseOver+Selected].backgroundPainter", new BackgroundPainter(Color.white));
            UIManager.getLookAndFeelDefaults().put("TabbedPane:TabbedPaneTab[Focused+Pressed+Selected].backgroundPainter", new BackgroundPainter(Color.white));
            UIManager.getLookAndFeelDefaults().put("TabbedPane:TabbedPaneTab[Focused+Selected].backgroundPainter", new BackgroundPainter(Color.GRAY));
            UIManager.getLookAndFeelDefaults().put("TabbedPane:TabbedPaneTab[MouseOver+Selected].backgroundPainter", new BackgroundPainter(Color.white));
            UIManager.getLookAndFeelDefaults().put("TabbedPane:TabbedPaneTab[Pressed+Selected].backgroundPainter", new BackgroundPainter(Color.white));
            UIManager.getLookAndFeelDefaults().put("TabbedPane:TabbedPaneTab[Selected].backgroundPainter", new BackgroundPainter(Color.white));

BackgroundPainter class

public class BackgroundPainter implements Painter<JComponent> {

private Color color = null;

BackgroundPainter(Color c) {
    color = c;
}

@Override
public void paint(Graphics2D g, JComponent object, int width, int height) {
    if (color != null) {
        g.setColor(color);
        g.fillRect(0, 0, width - 1, height - 1);
    }
}

}

Harsha Basnayake
  • 4,565
  • 3
  • 17
  • 23