Я пытаюсь реализовать список событий на одной странице в JavaFX, и я хотел бы отобразить 2 списка: один для событий UPCOMING и один для событий PAST, оба относительно текущей даты.
Многие поиски в Интернете привели меня к использованию ArrayAdaptor, но мне не разрешается использовать любые другие библиотеки, кроме JavaFX.
Я также хотел бы разделить эти 2 списка заголовком , Сейчас я работаю с базовым кодом:
/**
* Panel containing the list of persons.
*/
public class HomePage extends UiPart<Region> {
private static final String FXML = "home/HomePage.fxml";
private final Logger logger = LogsCenter.getLogger(HomePage.class);
@FXML
private ListView<Trip> tripListView;
public HomePage(ObservableList<Trip> tripList) {
super(FXML);
tripListView.setItems(tripList);
tripListView.setCellFactory(listView -> new TripListViewCell());
}
/**
* Custom {@code ListCell} that displays the graphics of a {@code Trip} using a {@code TripCard}.
*/
class TripListViewCell extends ListCell<Trip> {
@Override
protected void updateItem(Trip trip, boolean empty) {
super.updateItem(trip, empty);
if (empty || trip == null) {
setGraphic(null);
setText(null);
} else {
setGraphic(new HomePageTripCard(trip, getIndex() + 1).getRoot());
}
}
}
}
Это код .fxml
:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.ListView?>
<?import javafx.scene.layout.StackPane?>
<?import javafx.scene.layout.VBox?>
<VBox xmlns="http://javafx.com/javafx/11" xmlns:fx="http://javafx.com/fxml/1">
<StackPane prefHeight="30.0" prefWidth="200.0" styleClass="stack-welcome" VBox.vgrow="NEVER">
<children>
<Label styleClass="label-welcome" text="Welcome-Message-Here" />
</children>
</StackPane>
<StackPane prefHeight="15.0" prefWidth="200.0" styleClass="stack-header" VBox.vgrow="NEVER">
<children>
<Label styleClass="label-header" text="TripList" />
</children>
</StackPane>
<StackPane>
<ListView fx:id="tripListView" prefWidth="247.0" VBox.vgrow="ALWAYS" />
<ListView fx:id="tripListView" prefWidth="247.0" VBox.vgrow="ALWAYS" />
</StackPane>
</VBox>
Я пытался использовать 2 разных представления списка, по некоторым причинам он показывает только с одним из представлений списка.
У кого-нибудь есть какие-либо советы о том, как go реализовать 2 списка в одном представлении списка в JavaFX?