【问题标题】:making the backround of a javafx textArea clear使 javafx textArea 的背景清晰
【发布时间】:2015-06-01 00:53:25
【问题描述】:

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

我的所有谷歌搜索都提出了很多与 css 相关的帖子吧?

【问题讨论】:

  • stackoverflow.com/questions/21936585/… 可能是第 2 部分 Code Example 是您正在寻找的内容
  • 尽管注意他明确指出“代码不应该用于生产。它只是为了演示节点结构。” CSS 确实是这方面的首选解决方案(尽管该代码示例非常酷)。
  • 哇,伙计们,谢谢,我了解 css,但在困惑中我知道将 Java 放在哪里,我在哪里将 css 放在编译器中?在自己的班级中?
  • 没关系,谢谢

标签: java javafx textarea


【解决方案1】:

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

透明文本区域.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 ;
}

【讨论】:

    猜你喜欢
    • 2016-12-12
    • 1970-01-01
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    相关资源
    最近更新 更多