Hallo,
seit gestern schon versuche ich verzweifelt die Titelfarbe meiner Anwendung bzw. eines Dialog-Fensters zu ändern. Ich hab mir caspian.css und modena.css schon angeschaut, aber ich finde nichts, was eine Auswirkung auf die Farbe des Titeltextes hätte.
Mein Dialog sieht so aus:
Die FXML:
Dialog.css ist leer, hatte aber sowas versucht:
Es gibt genug Screenshots bei google Bildersuche, die JavaFX-Anwendungen bzw. Fenster/Dialoge/etc. mit schwarzer Schrift anzeigen, bei mir ist es einfach weiß und man kann es nicht lesen.
Mein Dialogaufruf:
Wie man sieht hab ich schon damit rumgespielt, wie man das Icon des Dialogs ändern kann, was auch funktioniert. Aber an den Titel mit der Farbe komm ich einfach nicht ran.
Mein Dialog sieht dann so aus:
Hat jemand einen Tip für mich wie ich die Farbe ändern kann? Die weiße Schrift kann man doch nicht wirklich lesen!
LG Tom
seit gestern schon versuche ich verzweifelt die Titelfarbe meiner Anwendung bzw. eines Dialog-Fensters zu ändern. Ich hab mir caspian.css und modena.css schon angeschaut, aber ich finde nichts, was eine Auswirkung auf die Farbe des Titeltextes hätte.
Mein Dialog sieht so aus:
Java:
package de.test.dialog;
import java.io.IOException;
import javafx.event.EventHandler;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;
public class Dialog extends Stage {
public static final String OK_DIALOG = "OK";
private final String OK_XML = "/fxml/dialog_ok.fxml";
public enum DIALOG_ACTION {
BUTTON_1, BUTTON_2, BUTTON_3, NOTHING, CLOSE_WINDOW
}
private DialogController controller = null;
private String message = null;
public Dialog(String name, String ... buttonName) {
String resource = getFXMLResource(name);
if (resource != null) {
try {
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource(resource));
Parent root = (Parent) fxmlLoader.load();
controller = fxmlLoader.getController();
controller.setButtons(buttonName);
setScene(new Scene(root));
}
catch (IOException e) {
e.printStackTrace();
}
}
setOnCloseRequest(new EventHandler<WindowEvent>() {
@Override
public void handle(WindowEvent event) {
System.out.println("Closing?");
}
});
}
private String getFXMLResource(String name) {
String fxmlResource = null;
switch(name) {
case OK_DIALOG:
fxmlResource = OK_XML;
break;
default:
break;
}
return fxmlResource;
}
public Dialog.DIALOG_ACTION getAction() {
if (controller != null) {
return controller.getAction();
}
else {
return DIALOG_ACTION.NOTHING;
}
}
public void setMessage(String sMessage) {
this.message = sMessage;
if (controller != null) {
controller.setMessage(message);
}
}
public void setIcon(Image image) {
if (controller != null) {
controller.setIcon(image);
}
}
}
Die FXML:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.text.*?>
<?import javafx.scene.image.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="176.0" prefWidth="400.0" stylesheets="@styles/dialog.css" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.test.dialog.DialogController">
<children>
<ImageView fx:id="imgIcon" fitHeight="48.0" fitWidth="48.0" layoutX="8.0" layoutY="25.0" pickOnBounds="true" preserveRatio="true" AnchorPane.leftAnchor="15.0" AnchorPane.topAnchor="25.0">
<image>
<Image url="@../icons/dialog/48a.png" />
</image>
</ImageView>
<Text fx:id="txtMessage" layoutX="85.0" layoutY="45.0" strokeType="OUTSIDE" strokeWidth="0.0" text="TEST" wrappingWidth="300.00" AnchorPane.leftAnchor="94.0" AnchorPane.rightAnchor="15.0" AnchorPane.topAnchor="25.0">
<font>
<Font size="14.0" />
</font>
</Text>
<Button fx:id="btn1" defaultButton="true" layoutX="295.0" layoutY="134.0" mnemonicParsing="false" onAction="#doAction" prefHeight="25.0" prefWidth="90.0" text="OK" AnchorPane.rightAnchor="15.0">
<font>
<Font size="14.0" />
</font>
</Button>
<Button fx:id="btn2" cancelButton="true" layoutX="180.0" layoutY="134.0" mnemonicParsing="false" onAction="#doAction" prefHeight="25.0" prefWidth="90.0" text="Abbrechen" visible="false" AnchorPane.rightAnchor="120.0">
<font>
<Font size="14.0" />
</font>
</Button>
<Button fx:id="btn3" layoutX="102.0" layoutY="134.0" mnemonicParsing="false" onAction="#doAction" prefHeight="25.0" prefWidth="90.0" text="Button 3" visible="false" AnchorPane.rightAnchor="225.0">
<font>
<Font size="14.0" />
</font>
</Button>
</children>
</AnchorPane>
Dialog.css ist leer, hatte aber sowas versucht:
Code:
/*
.root {
-fx-text-base-color: blue;
-fx-text-background-color: green;
-fx-text-inner-color: red;
-fx-selection-bar-text: yellow;
}
*/
Es gibt genug Screenshots bei google Bildersuche, die JavaFX-Anwendungen bzw. Fenster/Dialoge/etc. mit schwarzer Schrift anzeigen, bei mir ist es einfach weiß und man kann es nicht lesen.
Mein Dialogaufruf:
Java:
Dialog dialog = new Dialog(Dialog.OK_DIALOG, "Löschen", "Abbrechen");
dialog.initModality(Modality.APPLICATION_MODAL);
dialog.initOwner(((Node)e.getSource()).getScene().getWindow());
dialog.setResizable(false);
dialog.setTitle("Dateianhang löschen");
dialog.setMessage("Wollen Sie die ausgewählte(n) Datei(en) wirklich löschen?");
// Get the Stage.
//Stage stage = (Stage) dialog.getScene().getWindow();
// Add a custom icon.
//stage.getIcons().add(new Image("/icons/dialog/48a.png"));
dialog.showAndWait();
Wie man sieht hab ich schon damit rumgespielt, wie man das Icon des Dialogs ändern kann, was auch funktioniert. Aber an den Titel mit der Farbe komm ich einfach nicht ran.
Mein Dialog sieht dann so aus:
Hat jemand einen Tip für mich wie ich die Farbe ändern kann? Die weiße Schrift kann man doch nicht wirklich lesen!
LG Tom
Zuletzt bearbeitet von einem Moderator: