使 javafx textArea 的背景清晰

making the backround of a javafx textArea clear

我正在查看 java 中的整个文本区域 class,我打算在我正在制作的酷 GUI 中使用它,但是当我想要使背景清晰时我唯一能找到的是一种允许您设置不透明度的方法。但这是整个文本区域(包括文本)我只想清除背景。任意 advice/tips

我进行的所有 google 搜索也得出了很多 css 相关帖子,对吧?

A TextArea 内部包含滚动窗格。要使文本区域显示透明,您需要使其透明的三件事是

  1. 文本区域本身
  2. 文本区域内部滚动窗格的视口
  3. 在滚动窗格内显示文本的内容窗格

CSS 规则是

.text-area, .text-area .viewport, .text-area .content {
    -fx-background-color: transparent ;
}

完整示例:

TransparentTextArea.java:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TextArea;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class TransparentTextArea extends Application {

    @Override
    public void start(Stage primaryStage) {
        TextArea textArea = new TextArea();
        StackPane root = new StackPane(textArea);
        Scene scene = new Scene(root, 400, 400);
        scene.getStylesheets().add("transparent-text-area.css");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

透明文本-area.css:

.root {
    -fx-background-color: linear-gradient(to bottom right, white 0%, cornflowerblue 100% );

}

.text-area, .text-area .viewport, .text-area .content {
    -fx-background-color: transparent ;
}