2

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

テキストは問題ないように見えますが、 Scala バージョン 2.10.3 (Java HotSpot(TM) 64 ビット サーバー VM、Java 1.8.0_05)を使用して、背景色を変更しようとしても効果がありません。

Scenic Viewで調べると、ScrollPane の下のシーン グラフに 2 つの StackPanes が予期せず表示されていることがわかりました。そのため、階層は次のようになります。

  1. ScrollPane //私が作成したもの
  2. StackPane //予期しない -- コンテンツをクリップします
  3. StackPane //予期しない -- フルサイズのコンテンツ
  4. //私が作成したグループ
  5. //私が作成したテキスト

いずれかの StackPane-s の背景を"-fx-background-color: blue"( Scenic Viewを使用して) たとえば、変更すると効果がありますが、ScrollPane のスタイルには影響しません。しかし、コードからそれを行う方法は? 私が行った場合

println(sp.content())

、それは言う

グループ@567fa81a

StackPanes にアクセスしたり、背景を変更したりする簡単な方法はありますか? 大きな塗りつぶされた長方形を「平手打ち」することはできますが、それは醜く見え、サイズ変更が複雑になります。適切な背景の何が問題になっていますか?

4

2 に答える 2

2

と同様にJScrollPane、JavaFXの内部ScrollPaneには というStackPaneコンテナがありますviewport。したがって、ScrollPaneこの CSS ルールを使用して背景を設定するには (つまり、赤い背景色を設定するには):

.scroll-pane .viewport {
    -fx-background-color: red;
}
于 2014-08-22T16:38:54.757 に答える
1
sp.setStyle("-fx-background: blue")

それ以外の:

sp.setStyle("-fx-background-color: blue")
于 2014-08-22T20:22:07.210 に答える