JavaFX文本控件:设置填充颜色

时间:2016-06-07 21:11:18

标签: java css javafx

我的CSS填充色有TextFieldLabel。但是当我尝试Text控件时,我还没弄清楚如何在CSS中设置填充颜色(我尝试了很多东西)。

Label label = new Label("Machine ID");
TextField textField = new TextField("1");
Text text = new Text("1");

的CSS:

.text-input {
    -fx-text-fill: blue;    
}

.label {
    -fx-text-fill: blue;
}

2 个答案:

答案 0 :(得分:6)

首先请注意,默认情况下Text没有样式类。所以你需要添加样式类:

Text text = new Text("1");
text.getStyleClass().add("my-text");

然后,您可以使用从Shape继承的-fx-fill属性:

.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);
    }
}

文本CSS-test.css:

.my-text {
    -fx-fill: blue ;
}

.label {
    -fx-text-fill: green ;
} 

.text-input {
    -fx-text-fill: red ;
}

enter image description here

答案 1 :(得分:0)

根据JavaFX CSS referenceText没有LabelTextField这样的属性。所以我不确定这是可能的。