JavaFX Tab-content-area Rahmen

sharkattack

Mitglied
Ich bin gerade beim Styling meines Programms mit CSS. Ich möchte gerne einen Rahmen um den Inhalt des aktiven Tabs machen. Dies klappt mit folgendem Code auch:
Code:
.tab-content-area {
    -fx-border-radius: 0 15 15 15;
    -fx-border-width: 1 1 1 1;
    -fx-border-color: #87b644;
}
Leider wird die Linie vom Rahmen auch über den Header des aktiven Tabs gezeichnet. Kann man dies irgendwie vermeiden?
So sieht es im Moment aus:
https://www.dropbox.com/s/paln1d4rxqa1orl/rahmen1.jpg?dl=0
So sollte es aussehen:
https://www.dropbox.com/s/4isuy9p5u82fiwq/rahmen2.jpg?dl=0

LG
 

dzim

Top Contributor
CSS kann mitunter recht schwierig sein. Ich empfehle dir, dir mal die modena.css (das Default-CSS von JavaFX) anzuschauen. Alles, was du nicht überschreibst, wird von dort geladen.
Bsp: https://gist.github.com/maxd/63691840fc372f22f470 (leicht veraltete Version)

Ich glaube, was du machen müsstes, wäre dem Tab selbst unten einen Border zu geben, der die Hintergrundfarbe hat, und dann irgendwie seinen Border *über* den Ramen vom Content zu schieben (mit negativ-padding könnte das vielleicht gelingen). Andere Ideen habe ich auch nicht.

#edit: oder background oder border insets, anstelle vom padding...

#edit2: hab noch etwas herumgespielt und keine sinnvolle Lösung gefunden. Wenn ich den ausgewählten Tab per "-fx-translate-y" verschiebe, landet er hinter dem Content - nicht sinnvoll. Bin mir also nicht sicher, ob das machbar ist...
 
Zuletzt bearbeitet:

dzim

Top Contributor
Hab noch etwas probiert: Auch im Code wird es schwierig (via Reflection). Das Problem ist, dass TabPane stark auf StackPanes setzt und das Header-Pane scheint nicht im Vordergrund zu sein (obwohl ich es versucht habe, hochzuholen). Dadurch kann man translaten wie man will... Sorry, aber weiter komme ich damit im Moment nicht.
 

sharkattack

Mitglied
Hallo dzim

Besten Dank für deine Antwort und dass du dir die Mühe gemacht hast rumzuprobieren. Ich habe gestern noch einige Stunden alles mögliche getestet und bin dann durch herumprobieren mit den Zeilen aus der modena.css zu einer für mich zufriedenstellenden Lösung gekommen. Uns zwar habe ich vom content den Rahmen oben entfernt und stattdessen die CSS um die folgenden Zeilen ergänzt:
Code:
.tab-pane > .tab-header-area > .tab-header-background {
    -fx-background-color: #87b644, #3c3c3c;
    -fx-background-insets: 0, 0 0 2 0;
}

Eigentlich wollte ich abgerundete Ecken haben, das scheint aber für das rechte obere Eck nicht möglich zu sein. Wenn man nämlich dort einen Radius setzt, zeigt die Rundung nach oben, statt nach unten, was ja eigentlich auch logisch ist. Ich habe noch versucht mit Minus-Werten zu arbeiten, allerdings war er darüber nicht sehr erfreut. :)

LG
 

dzim

Top Contributor
Am Ende zählt: Hauptsache, es gefällt dir! ;)
Kannst du vielleicht noch einmal einen Screenshot posten, damit man es sich besser vorstellen kann?
Und wenn du einverstanden bist, poste doch mal das gesamte CSS für ".tab-pane" - denn um ehrlich zu sein, bin ich mit meiner im Moment verwendeten Lösung auch noch nicht zu 100% zufrieden. :D
 

sharkattack

Mitglied
Ich habe im Moment leider nur den Teil fürs tab-pane. Ich bin jetzt wieder an meinem Arbeitsplatz und habe mir vorher nur kurz den tab-pane Teil als E-Mail zugesendet:
Code:
.tab-pane .tab-header-border {
    -fx-border-width: 2 2 2 2;
    -fx-border-color: #87b644;
}

.tab-pane {
    -fx-tab-min-width: 250px;
    -fx-tab-max-width: 250px;
    -fx-tab-min-height: 50px;
    -fx-tab-max-height: 50px;
}

.tab {
    -fx-border-radius: 15 15 0 0;
    -fx-background-radius: 15 15 0 0;
    -fx-background-insets: 0 1 0 1,0,0;
}

.tab-content-area {
    -fx-border-radius: 0 0 15 15;
    -fx-border-width: 0 2 2 2;
    -fx-border-color: #87b644;
}

.tab-pane .tab {
    -fx-background-color: #87b644;
    -fx-border-width: 0 0 2 0;
    -fx-border-color: white white #87b644 white;
}

.tab-pane:top *.tab-header-area {
    -fx-background-insets: 0, 0 0 1 0;
/* -fx-padding: 0.416667em 0.166667em 0.0em 0.833em; /* 5 2 0 10 */
    -fx-padding: 0.416667em 0.166667em 0.0em 0.0em; /* overridden as 5 2 0 0 */
}

.tab-pane .tab:selected {
    -fx-border-width: 2 2 0 2;
    -fx-border-color: #87b644;
    -fx-background-color: #3c3c3c;
}

.tab-pane > .tab-header-area > .tab-header-background {
    -fx-background-color: #87b644, #3c3c3c;
    -fx-background-insets: 0, 0 0 2 0;
}

.tab .tab-label {
    -fx-alignment: CENTER;
    -fx-text-fill: #3c3c3c;
    -fx-font-size: 24pt;
    -fx-font-weight: 200;
}

.tab:selected .focus-indicator {
    -fx-border-width: 0;
}

.tab:selected .tab-label {
    -fx-alignment: CENTER;
    -fx-text-fill: #87b644;
}

Den Rest kann ich falls gewünscht noch später reinstellen.

LG
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Yonnig JavaFX Größe von WebView an Content anpassen AWT, Swing, JavaFX & SWT 3
W JavaFX Etwas Tabellenartiges + Cell-Content-Changed-Event (o.ä.) AWT, Swing, JavaFX & SWT 30
L JavaFX TableView kein content text ändern AWT, Swing, JavaFX & SWT 2
M JavaFX JRXML Content wechseln AWT, Swing, JavaFX & SWT 3
M Swing "Frame.setResizable(false);" verschiebt Content? AWT, Swing, JavaFX & SWT 9
Kenan89 Java FX ScrollPane Content mittig setzen AWT, Swing, JavaFX & SWT 5
L Swing JTextField Content-Listener AWT, Swing, JavaFX & SWT 4
L JFrame/Content Pane height Problem AWT, Swing, JavaFX & SWT 4
T ransparenter JFrame + nicht transparanter Content AWT, Swing, JavaFX & SWT 8
N Performanceprobleme mit JLabel und HTML content AWT, Swing, JavaFX & SWT 5
G inahlt von content pane austauschen AWT, Swing, JavaFX & SWT 2
G Probleme mit Content bei Null-Layout verändern AWT, Swing, JavaFX & SWT 7
T JEditorPane-content drucken AWT, Swing, JavaFX & SWT 2
X JavaFX AreaChart area höhe wird nicht richtig dargestellt AWT, Swing, JavaFX & SWT 2
F JavaFX 8 Area Chart AWT, Swing, JavaFX & SWT 1
A Radio Buttons sollen den Text der text Area bestimmen AWT, Swing, JavaFX & SWT 9
M Text Area 1. Zeile oben AWT, Swing, JavaFX & SWT 4
E JFreeChart: Timeseries-Chart und Area-Chart "überlappen" lassen AWT, Swing, JavaFX & SWT 6
S AWT Skalieren von Polygon über Area klappt nicht AWT, Swing, JavaFX & SWT 4
D Area rendern AWT, Swing, JavaFX & SWT 4
L Problem mit der aktualisierung von JTree und Text Area AWT, Swing, JavaFX & SWT 22
S frame - area- button-HILFE AWT, Swing, JavaFX & SWT 5
HoT Einzelne Zelle in JTable Rahmen unten setzen AWT, Swing, JavaFX & SWT 24
B JButton -> Rahmen wegbekommen AWT, Swing, JavaFX & SWT 7
C Jframe ohne Rahmen AWT, Swing, JavaFX & SWT 3
O JTable ohne Rahmen printen AWT, Swing, JavaFX & SWT 3
M JavaFX Ein Bild ohne Rahmen fällt runter? AWT, Swing, JavaFX & SWT 2
F JTextArea hat keinen Rahmen AWT, Swing, JavaFX & SWT 10
S JLabel mit ImageIcon, komischer Rahmen? AWT, Swing, JavaFX & SWT 2
S Swing Automatisch 2px Rahmen in Windows 8 AWT, Swing, JavaFX & SWT 0
R Rahmen von/für DrawRoundRect AWT, Swing, JavaFX & SWT 3
D 2D-Grafik Rechteck befindet sich unter dem Rahmen des JFrame. AWT, Swing, JavaFX & SWT 1
J Rahmen um mehrere GUI Einzelteile AWT, Swing, JavaFX & SWT 2
H Button hat nur farbiger Rahmen AWT, Swing, JavaFX & SWT 3
E Netbeans: Buttons mit Label bzw. Rahmen unterlegen AWT, Swing, JavaFX & SWT 8
R Bewglichen Rahmen über einem Bild AWT, Swing, JavaFX & SWT 3
R paintComponent malt bei repaint() Rahmen um Panel AWT, Swing, JavaFX & SWT 7
P Swing Componente über Rahmen hinaus zeichnen AWT, Swing, JavaFX & SWT 2
B JButton Rahmen ausblenden AWT, Swing, JavaFX & SWT 3
T GUI ohne Rahmen auf Desktop AWT, Swing, JavaFX & SWT 3
M Swing Rahmen innerhalb des JButton entfernen AWT, Swing, JavaFX & SWT 2
F Individueller Frame-Rahmen AWT, Swing, JavaFX & SWT 27
H JFrame Rahmen entfernen AWT, Swing, JavaFX & SWT 1
0 Transparentes Panel ohne Rahmen AWT, Swing, JavaFX & SWT 5
K Swing JDialog ohne Titlebar mit Rahmen AWT, Swing, JavaFX & SWT 5
D Swing JButton will Rahmen nich verlieren AWT, Swing, JavaFX & SWT 14
J JDialog nicht aus JFrame Rahmen ziehen AWT, Swing, JavaFX & SWT 4
S Rahmen um Panel passt sich nicht ans Layout an AWT, Swing, JavaFX & SWT 3
M AWT Component/Canvas erzeugt unerwünschten Rahmen bei paint AWT, Swing, JavaFX & SWT 3
N Fenster ohne Rahmen AWT, Swing, JavaFX & SWT 10
S GridBagLayout mit Rahmen AWT, Swing, JavaFX & SWT 2
J "Halbe" Rahmen und Trennlinien! AWT, Swing, JavaFX & SWT 4
F Rahmen mit gestrichelter Linie zeichnen AWT, Swing, JavaFX & SWT 4
D freier Text / Frame ohne Rahmen AWT, Swing, JavaFX & SWT 5
B Fenster ohne Rahmen AWT, Swing, JavaFX & SWT 2
N Abstand des Textes vom Rahmen bei JLabel AWT, Swing, JavaFX & SWT 2
K JButton - Rahmen AWT, Swing, JavaFX & SWT 2
V JCheckBoxMenuItem "Rahmen" entfernen AWT, Swing, JavaFX & SWT 25
P Frame - falsche Fenstergröße durch Rahmen? AWT, Swing, JavaFX & SWT 5
M Rahmen von Combobox AWT, Swing, JavaFX & SWT 2
M JWindow mit Rahmen(border) ausstatten AWT, Swing, JavaFX & SWT 4
X JTextField ohne Rahmen AWT, Swing, JavaFX & SWT 3
J Rahmen um Layout ziehen AWT, Swing, JavaFX & SWT 2
I Bild ohne "Rahmen" am JFrame AWT, Swing, JavaFX & SWT 2
G JTable Rahmen ausblenden AWT, Swing, JavaFX & SWT 2
D Seltsamer Rahmen bei JCheckBox AWT, Swing, JavaFX & SWT 7
D JSplittPane - unsichtbarer Rahmen? hilfe ;) AWT, Swing, JavaFX & SWT 2
F JFrame Rahmen Verstecken AWT, Swing, JavaFX & SWT 5
E etwas anderer rahmen. AWT, Swing, JavaFX & SWT 2
W Maus Rahmen zeichnen AWT, Swing, JavaFX & SWT 10
C JScrollPanel ohne Rahmen AWT, Swing, JavaFX & SWT 6
R MDI: Rahmen des JInternalFrames . AWT, Swing, JavaFX & SWT 5
A JLabel – Standard Rahmen soll unterdruckt werden AWT, Swing, JavaFX & SWT 2
F Frame ohne Rahmen AWT, Swing, JavaFX & SWT 12
S jTabbedPane - Tab-Rahmen ändern AWT, Swing, JavaFX & SWT 2
N Rahmen zum editieren der Größe eines JComponents? AWT, Swing, JavaFX & SWT 2
L rahmen um jTextArea AWT, Swing, JavaFX & SWT 8
D Rahmen zur Unterteilung ins Swing? AWT, Swing, JavaFX & SWT 6
J Rahmen vom Bild transparent machen AWT, Swing, JavaFX & SWT 4
G JTable: Rahmen bei Focus um Zelle AWT, Swing, JavaFX & SWT 2
S Rahmen mit "Namen" AWT, Swing, JavaFX & SWT 8
D JComboBox rahmen ändern AWT, Swing, JavaFX & SWT 2
F JFrame mit Rahmen versehen AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben