JavaFX Mysteriöser Dropshadow hinter Tablabelschrift - Schatten kann nicht entfernt werden (FXML + CSS)

Dopa0002

Mitglied
Hey Community ;)


Ich habe vor kurzem angefangen mich in JavaFX einzuarbeiten. Nun wollte ich mit Hilfe des TabPane ein Navigation erstellen.
Die Oberfläche wird via FMXL erstellt und sollte mit CSS durchgestylt werden. Wie auf dem nachfolgenden Bild zu sehen, sollte das Ganze aussehen:
Tabs.png


Und so sieht es aus:
tabsfail.png


Leider bekomme ich den Schatten in den Tab-Labels nicht in den Griff. Damit der Schatten um den Content, sowie die markierten Tabs gelegt wird, bekommt das AnchorPane die StyleClass "shadow" zugewiesen.
Komischerweise lässt sich dieser Schatten in den Kindelementen nicht wieder via fx-effect: null; überschreiben.
Ich habe nun schon diverse Sachen ausprobiert, leider bisher ohne Erfolge erzielen zu können.
Der Schatten bleibt hartnäckig!
Vielleicht kennt jemand von euch dieses "Problem" und kann mir sogar einen Lösungsvorschlag dazu geben ;)
Freue mich über jeden Tipp.

Nachfolgen noch die FXML- und die CSS-Datei.


[XML]
<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import java.net.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<AnchorPane id="pane" fx:id="anchorpane" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" minHeight="-Infinity" minWidth="-Infinity" prefHeight="589.0" prefWidth="1000.0" styleClass="shadow" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8" fx:controller="viewController.TabModulController">
<stylesheets>
<URL value="@../css/tabs.css" />
</stylesheets>
<children><TabPane prefHeight="496.0" prefWidth="827.0" style="-fx-effect: null;" tabClosingPolicy="UNAVAILABLE">
<tabs>
<Tab text="Untitled Tab 1">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
</content>
</Tab>
<Tab text="Untitled Tab 2">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0" />
</content>
</Tab>
</tabs>
</TabPane>
</children>
</AnchorPane>
[/XML]

Code:
@CHARSET "UTF-8";
 
.shadow 
{
	-fx-effect: dropshadow(two-pass-box, rgba(0, 0, 0, 0.6), 5, 0.0, 0, -1);
}
 
.noshadow
{
	-fx-effect: null;
}
 
.tab-pane 
{
	-fx-border-radius: 0 0 0 0;
  	-fx-background-radius: 0 0 0 0;
	
}
 
.tab-header-background 
{
	-fx-background-color: transparent;
}
 
.tab 
{
	-fx-background-color: transparent;
}
 
.tab-label
{
	-fx-effect: null;
}

.tab:selected 
{
	-fx-background-color: #fff;
	-fx-border-radius: 0 0 0 0;
  	-fx-background-radius: 0 0 0 0;
}
 
 
.headers-region 
{
    -fx-effect: null !important;
}
 
.tab-close-button 
{ 
    -fx-background-color: transparent;
    -fx-effect: null
}

Vielen Dank für eure Hilfe ;)
 
Zuletzt bearbeitet:

dzim

Top Contributor
also wenn ich mir die caspian.css anschaue (weiss jetzt aber auch nicht, ob es zu modena.css in JavaFX8 anders ist), dann sehe ich dort, dass es nicht nur ".tab-label" heisst, sondern ".tab .tab-label" - vielleicht ist das schon der Grund. Mich hat was ähnliches auch mal eine weile geplagt, dabei war es nur eine Kleinigkeit, wie ein fehlendes ".tab " vorneweg... Probier's mal aus.
 

dzim

Top Contributor
Und anstelle des bisherigen Ansatzes mal eine ID setzen und diese im CSS anpassen? Also dort den Effekt auf Null setzen?
Wie du siehst: Ich stocher auch eher im Dunkeln...
 

dogmi

Mitglied
Schliesse mich DZIM an, am besten mit einem Entwicklertool schauen, welche Klasse dir das Teil verhunzt und überschreiben.
 

dzim

Top Contributor
Wird's bestimmt auch nicht. Ich hätte eher Vererbung von Eigenschaften im Blick.
Ist das oben dein vollständiges CSS? Wenn nicht, vielleicht mal Anfang nächster Woche per PN schicken und ich versuche es mal in einer Beispiel-Anwendung aus... Ansonsten bleibt es eher ein reines Rätselraten. Sorry!
 

Ähnliche Java Themen

Neue Themen


Oben