1
ListView似乎已經有一個滾動條。我希望滾動條始終可見。原因是因爲我在它上面添加了一個標題,並且在滾動條和標題之間的角落有一個按鈕。我怎樣才能讓ListView滾動條始終顯示?總是顯示垂直滾動條爲JavaFX ListView
ListView似乎已經有一個滾動條。我希望滾動條始終可見。原因是因爲我在它上面添加了一個標題,並且在滾動條和標題之間的角落有一個按鈕。我怎樣才能讓ListView滾動條始終顯示?總是顯示垂直滾動條爲JavaFX ListView
你可以把它變成一個適當大小的滾動面板和設置滾動窗格爲ALWAYS的直條政策:
@Override
public void start(Stage primaryStage) throws Exception {
ScrollPane pane = new ScrollPane();
ListView<String> list = new ListView<String>();
ObservableList<String> items = FXCollections.observableArrayList(
"Single", "Double", "Suite", "Family App");
list.setItems(items);
pane.prefWidthProperty().bind(list.widthProperty());
pane.prefHeightProperty().bind(list.heightProperty());
pane.setContent(list);
pane.setVbarPolicy(ScrollPane.ScrollBarPolicy.ALWAYS);
Group group = new Group();
group.getChildren().add(pane);
Scene scene = new Scene(group, 500, 500);
primaryStage.setScene(scene);
primaryStage.show();
}
謝謝,但你的代碼示例不做得比較工作。水平滾動也會不必要地顯示出來,並且在列中具有較寬的值時,會被截斷而不是水平滾動條正常工作。 – mentics
我的代碼工作原理:您沒有要求水平滾動條的行爲,但僅針對垂直滾動條。如果你不想讓水平滾動條出現,你應該問這個問題。一個簡單的'pane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER)''然而就足以實現這一點。 – Sebastian
這不是那麼簡單(我希望是)。問題是ListView被自動創建在一個默認的大小,它不符合其內容的大小(我發佈了另一個關於這個問題)。因爲它不會自動調整ListView的大小,所以我不認爲這個解決方案會起作用。如果你有一個額外的寬列,你會在滾動窗格內獲得ListView的水平滾動條。如果向代碼添加很多行,則會看到它們被截斷,無法看到它們(如果不禁用滾動條的水平滾動條,則會看到兩個垂直滾動條)。 – mentics