2016-07-13 8 views
1

Ich bin das Anpassen der visuellen Erscheinung meiner JTabbedPane, die drei JTables enthält.Ändern Sie die Farbe der Linie zwischen Tab und JTable

Während ich die Auswahlfarbe der Registerkarte erfolgreich einfärbte, einschließlich einer Änderung der Textfarbe, änderte ich die Tab-Rahmenfarben, indem ich eine eigene BasicTabbedPaneUI erstellte. Aber es gibt immer noch eine Linie, die so blieb, wie sie war. Diese Zeile befindet sich zwischen der Registerkarte und der Tabelle. Siehe folgendes Bild:

enter image description here

Die Linie ich rede mit drei litten roten Punkte markiert. Was ist diese Linie? Wenn es eine Grenze ist, wo gehört sie hin? Ich habe keine Möglichkeit gefunden, seine Farbe einzustellen. Ich überprüfte die JTable, er JTabbedPane, und sogar die Komponenten der JTabbedPane.

Um zu zeigen, auf was ich zugreifen kann, malte ich jede Komponente grün. enter image description here

Sie können sehen, dass diese blaue Linie noch besteht. Weiß jemand, wie man seine Farbe ändert? Es wäre eine andere akzeptable Option, es zu entfernen.

Antwort

3

Wahrscheinlich TabbedPane.contentAreaColor (oben auf der TabbedPane.contentBorderInsets):

enter image description here

import java.awt.*; 
import javax.swing.*; 
import javax.swing.plaf.basic.*; 

public final class BasicTabbedPaneColorTest { 
    private JComponent makeUI() { 
    //UIManager.put("TabbedPane.contentBorderInsets", new Insets(10, 10, 10, 10)); 
    //UIManager.put("TabbedPane.contentBorderInsets", new Insets(0, 10, 10, 10)); 

    UIManager.put("TabbedPane.contentAreaColor", Color.GREEN); 
    UIManager.put("TabbedPane.highlight",  Color.RED); 

    JTabbedPane tabs = new JTabbedPane(); 
    tabs.setUI(new BasicTabbedPaneUI()); 
    //tabs.setBackground(Color.ORANGE); 
    //tabs.setOpaque(true); 

    tabs.addTab("JTable", new JScrollPane(new JTable(20, 3))); 
    tabs.addTab("JTree", new JScrollPane(new JTree())); 
    return tabs; 
    } 
    public static void main(String... args) { 
    EventQueue.invokeLater(() -> { 
     JFrame f = new JFrame(); 
     f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
     f.getContentPane().add(new BasicTabbedPaneColorTest().makeUI()); 
     f.setSize(320, 240); 
     f.setLocationRelativeTo(null); 
     f.setVisible(true); 
    }); 
    } 
} 
+0

Fantastic! Es funktionierte mit der Einstellung 'UIManager.put (" TabbedPane.contentAreaColor ", Color.GREEN);' – KJaeg

Verwandte Themen