2015-06-01 32 views
1

我正在研究java中的整个文本区域类,我打算在我正在制作的很酷的图形用户界面中使用它,但是当我想让背景清晰时我能找到的东西是一种可以让你设置不透明度的方法。但这是整个文本区域(包括文本)我只想清楚背景。任何建议/提示制作javafx文本的背景textArea清除

也所有的谷歌搜索我想出了很多与CSS相关的帖子吧?

+1

http://stackoverflow.com/questions/21936585/transparent - 背景的一个textarea的 - 在javafx - 8可能是第二部分'代码示例'是你在找什么 – varren

+0

虽然他注意到他声明“代码不应该用于生产上。它只是用于演示节点结构。“CSS是真正的首选解决方案(事件虽然代码示例非常酷)。 –

+0

哇谢谢,我了解css,但在困惑中我知道在哪里把Java放在哪里我把编译器中的css?在它自己的类中? –

回答

4

A TextArea内部包含滚动窗格。你需要的三样东西,使透明,使文本区域显示为透明的

  1. 文本区域iteself
  2. 文本区域的内部滚动窗格
  3. 显示里面的文本内容窗格中视滚动窗格

这样做的CSS规则是

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

ç omplete例如:

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

enter image description here