How to change the color of text in javafx TextField?

后端 未结 2 1181
悲&欢浪女
悲&欢浪女 2021-02-11 16:38

I want to change font color in TextField .I found -fx-background-color , -fx-border-color for changing the color of background and border but nothing f

相关标签:
2条回答
  • 2021-02-11 17:10

    Setting the -fx-text-fill works for me.

    See below:

    if (passed) {
        resultInfo.setText("Passed!");
        resultInfo.setStyle("-fx-text-fill: green; -fx-font-size: 16px;");
    } else {
        resultInfo.setText("Failed!");
        resultInfo.setStyle("-fx-text-fill: red; -fx-font-size: 16px;");
    }
    
    0 讨论(0)
  • 2021-02-11 17:11

    The CSS styles for text input controls such as TextField for JavaFX 8 are defined in the modena.css stylesheet as below. Create a custom CSS stylesheet and modify the colors as you wish. Use the CSS reference guide if you need help understanding the syntax and available attributes and values.

    .text-input {
        -fx-text-fill: -fx-text-inner-color;
        -fx-highlight-fill: derive(-fx-control-inner-background,-20%);
        -fx-highlight-text-fill: -fx-text-inner-color;
        -fx-prompt-text-fill: derive(-fx-control-inner-background,-30%);
        -fx-background-color: linear-gradient(to bottom, derive(-fx-text-box-border, -10%), -fx-text-box-border),
            linear-gradient(from 0px 0px to 0px 5px, derive(-fx-control-inner-background, -9%), -fx-control-inner-background);
        -fx-background-insets: 0, 1;
        -fx-background-radius: 3, 2;
        -fx-cursor: text;
        -fx-padding: 0.333333em 0.583em 0.333333em 0.583em; /* 4 7 4 7 */
    }
    .text-input:focused {
        -fx-highlight-fill: -fx-accent;
        -fx-highlight-text-fill: white;
        -fx-background-color: 
            -fx-focus-color,
            -fx-control-inner-background,
            -fx-faint-focus-color,
            linear-gradient(from 0px 0px to 0px 5px, derive(-fx-control-inner-background, -9%), -fx-control-inner-background);
        -fx-background-insets: -0.2, 1, -1.4, 3;
        -fx-background-radius: 3, 2, 4, 0;
        -fx-prompt-text-fill: transparent;
    }
    

    Although using an external stylesheet is a preferred way to do the styling, you can style inline, using something like below:

    textField.setStyle("-fx-text-inner-color: red;");
    
    0 讨论(0)
提交回复
热议问题