Чтобы отобразить фоновое изображение позади ListView
вы должны удалить цвет фона на каждой из его ListCell
с. Вот пример:
@Override
public void start(Stage primaryStage) {
String image = "http://upload.wikimedia.org/wikipedia/commons/1/16/Appearance_of_sky_for_weather_forecast,_Dhaka,_Bangladesh.JPG";
ObservableList<String> data = FXCollections.observableList(IntStream
.range(1000, 2000).mapToObj(Integer::toString)
.collect(Collectors.toList()));
ListView<String> listView = new ListView<>(data);
listView.setBackground(new Background(new BackgroundImage(new Image(
image), BackgroundRepeat.NO_REPEAT, BackgroundRepeat.NO_REPEAT,
BackgroundPosition.CENTER, BackgroundSize.DEFAULT)));
BorderPane root = new BorderPane(listView);
Scene scene = new Scene(root, 700, 400);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();
}
И необходимый CSS код:
.list-cell {
-fx-background-color: null;
}
Подсказка: В большинстве случаев вы будете добавлять пользовательский класс CSS (например .my-cell
) для каждого из ваших клеток и использовать этот класс вместо .list-cell
, потому что текущий код будет применяться к каждому ListCell
.
Мне потребовалось некоторое время, чтобы сделать это в классе контроллера, но я получаю его в конце концов;) как я могу изменить цвет текста, фона и размера в моем списке? – Tomasz
Поскольку 'ListCell' является' Labeled', для этого есть несколько параметров CSS: http://docs.oracle.com/javase/8/javafx/api/javafx/scene/doc-files/cssref.html# маркированный – eckig