使 javafx textArea 的背景清晰

Sim*_*ann 1 java textarea javafx

我正在研究java中的整个文本区域类,我打算在我正在制作的很酷的GUI中使用它,但是,当我想要使背景清晰时,我唯一能找到的是一种允许你设置不透明度。但这是整个文本区域(包括文本),我只想清除背景。任何建议/提示

我所做的所有谷歌搜索也出现了很多与 css 相关的帖子,是吗?

Jam*_*s_D 5

ATextArea内部包含一个滚动窗格。要使文本区域显示透明,需要将三件事设为透明:

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

CSS 规则是

.text-area, .text-area .viewport, .text-area .content {
    -fx-background-color: transparent ;
}
Run Code Online (Sandbox Code Playgroud)

完整示例:

透明文本区域.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);
    }
}
Run Code Online (Sandbox Code Playgroud)

透明文本区域.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 ;
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述