2016-07-27 28 views
1

Ausgabe: Kann nicht Rand um Inhaltsbereich Farbe Hintergrundtafel oder Registerkarten Registerkarten ändernändern Hintergrundfarbe für Tabbed Panel

Versuchte: Rahmen Platten undurchsichtig, UIManager Standardwerte ändern, und ein paar andere zufällige Dinge .

enter image description here

Code: https://gist.github.com/DarkGuardsman/b86c542cc168d1c792a01a4d44dba229

Anmerkung: Ich habe nicht alle diesen Code schreiben, wie ich ein vorhandenes Projekt mit Änderungen in der Benutzeroberfläche bin zu aktualisieren. Behalte also Bemerkungen zur Lösung und nicht zum Codierungsstil bei.

+0

Verwenden tabbedPane.setBackgroundAt(). Für mehr Details, beziehen Sie sich darauf. http: //stackoverflow.com/questions/8752037/how-to-change-background-color-of-jtabbedpane ... Dies könnte Ihnen helfen. –

+0

Wenn Sie auf die Quelle schauen, ich versuche das bereits, aber ich werde auf den Link schauen :) ty – DarkGuardsman

Antwort

0

Ich habe eine Lösung gefunden, obwohl ich mir ziemlich sicher bin, dass es nicht die beste Lösung ist. Ich war ursprünglich auf dieses Thema vor dem Posten. Nach dem Lesen des UI-Codes habe ich festgestellt, dass ein Rahmen um das Inhaltsfeld herum gezeichnet wird. Das Überschreiben der Methode paintTabBackground, die den größten Teil der Grenze löste, löste das Problem.

private class TabUI extends BasicTabbedPaneUI 
{ 
    @Override 
    protected void paintTabBackground(Graphics g, int tabPlacement, int tabIndex, int x, int y, int w, int h, boolean isSelected) { 
     g.setColor(LauncherFrame.secondaryColor); 
     switch(tabPlacement) { 
      case LEFT: 
       g.fillRect(x+1, y+1, w-1, h-3); 
       break; 
      case RIGHT: 
       g.fillRect(x, y+1, w-2, h-3); 
       break; 
      case BOTTOM: 
       g.fillRect(x+1, y, w-3, h-1); 
       break; 
      case TOP: 
      default: 
       g.fillRect(x+1, y+1, w-3, h-1); 
     } 
    } 
} 

enter image description here