Textarea javaFx颜色

ΦXo*_*a ツ 2 java textarea javafx

我正在尝试开发一个看起来像终端机的应用程序,正在使用TextArea,但我希望是黑色背景和绿色文字,

我想在不使用任何ccs模板的情况下做到这一点

我知道我的问题看起来像是在这里重复的:

javafx textarea背景色不是CSS

要么

TextArea的JavaFX CSS样式不起作用

但是在阅读了这些内容并尝试了他们的建议之后,我发现没有运气可以解决我的问题

到目前为止我尝试过的是:

在FXML中:

<TextArea 
    fx:id="terminalTextArea"
    layoutX="14.0"
    layoutY="85.0"
    prefHeight="64.0"
    prefWidth="402.0"
    style="-fx-font-family: Consolas; -fx-highlight-fill: #00ff00; -fx-highlight-text-fill: #000000; -fx-text-fill: #00ff00; -fx-background-color:#000000;"
    text="Terminal"
    AnchorPane.leftAnchor="10.0"
    AnchorPane.rightAnchor="10.0">
    <font>
        <Font name="System Bold" size="14.0" />
    </font>
</TextArea>
Run Code Online (Sandbox Code Playgroud)

但没有运气....

并在源代码中:

@Override
public void initialize(URL url, ResourceBundle rb) {
    System.out.println("init here");
    terminalTextArea.setStyle("-fx-text-fill: black;");
}
Run Code Online (Sandbox Code Playgroud)

我唯一得到的是带有边框的颜色,如下图所示。

你们中的任何一个人以前有同样的问题吗????

提前发送

在此处输入图片说明

Jam*_*s_D 6

建议的方法是使用外部CSS文件,如您链接的示例中所示。

如果由于某种原因您不想这样做,请尝试

style="-fx-control-inner-background:#000000; -fx-font-family: Consolas; -fx-highlight-fill: #00ff00; -fx-highlight-text-fill: #000000; -fx-text-fill: #00ff00; "
Run Code Online (Sandbox Code Playgroud)

在您的FXML文件中,或等效地

terminalTextArea.setStyle("-fx-control-inner-background:#000000; -fx-font-family: Consolas; -fx-highlight-fill: #00ff00; -fx-highlight-text-fill: #000000; -fx-text-fill: #00ff00; ");
Run Code Online (Sandbox Code Playgroud)

在控制器的initialize()方法中。

SSCCE:

StyledTextArea.fxml:

style="-fx-control-inner-background:#000000; -fx-font-family: Consolas; -fx-highlight-fill: #00ff00; -fx-highlight-text-fill: #000000; -fx-text-fill: #00ff00; "
Run Code Online (Sandbox Code Playgroud)

和一个测试类:

import java.io.IOException;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class StyledTextArea extends Application {

    @Override
    public void start(Stage primaryStage) throws IOException {
        primaryStage.setScene(new Scene(
            FXMLLoader.load(getClass().getResource("StyledTextArea.fxml"))
        ));
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明