14

ScrollPane のデフォルトの背景と境界線に関して問題があります。このスタイルを使用すると、問題がより明確になりました。

setStyle("-fx-background-color:blue; -fx-border-color:crimson;");

画像は背景と境界線を示しています

私はこのスタイルを試してみましたが、運が悪く、赤い境界線だけがなくなり、青い境界線が残りました.

setStyle("-fx-background-color:blue; -fx-background-insets:0; -fx-border-color:crimson; -fx-border-width:0; -fx-border-insets:0;");

画像は、私の最善の回避策の後の背景と境界線を示しています

この古い投稿JavaFX Hide ScrollPane gray borderhttp://docs.oracle.com/javafx/2/ui_controls/editor.htmを見てきました

このコード行も機能しません

scrollPane.getStyleClass().add("noborder-scroll-pane");

ありがとう

4

7 に答える 7

29

JavaFX 8 の現在のバージョンでは、edge-to-edge スタイル クラスを使用して境界線を完全に削除できます。

<ScrollPane styleClass="edge-to-edge"/>
于 2015-03-31T19:02:56.283 に答える
20

私は解決策を見つけたので、ここに投稿したいと思います。そうすれば、他の人が時間を無駄にする必要がなくなります。

このコマンドを使用してライブラリから抽出された JavaFx のデフォルトの css (caspian.css) を確認します。

jar xf jfxrt.jar com/sun/javafx/scene/control/skin/caspian/caspian.css

私が見逃したのは

-fx-padding: 0;

これが私が使用しているcssクラスです。

.scroll-pane {
    -fx-background-insets: 0;
    -fx-padding: 0;
}

.scroll-pane:focused {
    -fx-background-insets: 0;
}

.scroll-pane .corner {
    -fx-background-insets: 0;
}
于 2013-07-09T05:13:48.233 に答える
11

まずはこれを使ってみてください

.scroll-pane > .viewport {
   -fx-background-color: transparent;
}

背景色を設定する前に

于 2016-03-24T10:57:42.387 に答える
2

以下を使用できます。

-fx-background-color: transparent;
-fx-control-inner-background: transparent;

only を設定-fx-background-colorすると、ScrollPane の内側の端にのみ色の変更が適用され、中央領域の色は変更されないことがわかります。

プロパティは、その-fx-control-inner-background中央領域の色を変更します。

于 2014-01-25T05:22:33.750 に答える
0

FXML や CSS を使用するよりも、イベントを使用することを好みますが、これはコンテンツのある部分でしか機能しません。scrollPane がそのコンテンツよりも大きい場合は、残りのスペースも埋める必要があります。

scrollPane.getContent().setOnMousePressed(Event::consume);
scrollPane.setFitToHeight(true);
scrollPane.setFitToWidth(true);
于 2019-12-18T22:05:42.650 に答える