簡體   English   中英

如何更改ScrollPane(JavaFX / ScalaFX)的背景?

[英]How to change the background of a ScrollPane (JavaFX/ScalaFX)?

我想更改ScrollPane的背景顏色。 這是我嘗試執行的代碼的一部分:

    val sp=new javafx.scene.control.ScrollPane(new Group(new Text(...)))
    sp.setPannable(true)
    sp.setStyle("-fx-background-color: blue")
    sp.setBackground(new Background(Array(new BackgroundFill(Color.DARKCYAN,new CornerRadii(0),Insets(0)))))

文本顯示為OK,但是使用以下方法更改背景顏色的兩種嘗試均無效:
Scala版本2.10.3(Java HotSpot™64位服務器VM,Java 1.8.0_05)。

使用Scenic View進行檢查,我發現兩個StackPanes意外出現在ScrollPane下面的場景圖中,因此層次結構為:

  1. ScrollPane //我創建的
  2. StackPane // UNEXPECTED-剪輯內容
  3. StackPane // UNEXPECTED-完整內容
  4. 組//我創建的
  5. 文字//我創建的

如果我將兩個StackPane-s的背景更改為"-fx-background-color: blue" (帶有Scenic View ),則它具有效果,但沒有ScrollPane的樣式。 但是如何從代碼中做到這一點呢? 如果我做

println(sp.content())

, 它說

集團@ 567fa81a

有沒有簡單的方法來訪問StackPanes或更改背景? 我可以“拍打”一個大的填充矩形,但這看起來很丑,並且使調整大小變得復雜,適當的背景怎么了?

JScrollPane相似,JavaFX ScrollPane在其內部具有一個稱為viewportStackPane容器。 因此,使用以下CSS規則為ScrollPane設置背景(即,設置紅色背景色):

.scroll-pane .viewport {
    -fx-background-color: red;
}
sp.setStyle("-fx-background: blue")

代替:

sp.setStyle("-fx-background-color: blue")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM