2015-06-01 57 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