Beachten Sie, dass Text
standardmäßig keine Stilklasse hat. So müssen Sie den Stil Klasse hinzuzufügen:
Text text = new Text("1");
text.getStyleClass().add("my-text");
Dann können Sie die -fx-fill
Eigenschaft von Shape
geerbt verwenden:
.my-text {
-fx-fill: blue ;
}
SSCCE:
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.scene.text.Text;
import javafx.stage.Stage;
public class TextCSSTest extends Application {
@Override
public void start(Stage primaryStage) {
VBox root = new VBox(10);
TextField textField = new TextField("Text Field");
Label label = new Label("Label");
Text text = new Text("Text");
text.getStyleClass().add("my-text");
root.getChildren().addAll(textField, label, text);
root.setAlignment(Pos.CENTER);
root.setPadding(new Insets(20));
Scene scene = new Scene(root);
scene.getStylesheets().add("text-css-test.css");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Text-css-test.css :
.my-text {
-fx-fill: blue ;
}
.label {
-fx-text-fill: green ;
}
.text-input {
-fx-text-fill: red ;
}
Großartig! Also sehe ich, dass 'Text' eine' Form' ist und keine 'Kontrolle'! Es scheint eine ganz besondere Klasse von Objekten zu sein. –
Ja: Ich habe nie viel Gebrauch von 'Text' gemacht und bevorzuge' Label'. Aber dann tendiere ich dazu, mehr geschäftliche Apps zu schreiben und generell 'Control'-Klassen zu verwenden. Wenn Sie ein Steuerelement verwenden (d. H. Eine "Control" oder eine Unterklasse instanziieren), erzwingen Sie das Laden des standardmäßigen CSS-Stylesheets und aktivieren die CSS-Engine. Wenn Sie eine Anwendung haben, die nur 'Shape's verwendet, ist CSS nicht aktiviert, es sei denn, Sie zwingen es. Dies kann beispielsweise in einem Spiel gelten, in dem Sie Ihre eigenen Grafiken und Ihr eigenes Layout verwalten und den Leistungsaufwand von CSS vermeiden möchten. In diesem Szenario könnte "Text" verwendet werden. –