Я делаю программу, в которой я создаю Arraylist объекта с именем City
City c1 = new City("Miami", "Florida", 33175, -80.4068, 25.7341);
City c2 = new City("Seattle", "Washington", 98109, -122.3476, 47.6339);
City c3 = new City("Levittown", "Pennsylvania", 19058, -75.1028, 40.3286);
City c4 = new City("Tampa", "Florida", 33625, -82.559, 28.0726);
City c5 = new City("Topeka", "Kansas", 66617, -95.6384, 39.1271);
ArrayList<City> cities = new ArrayList<City>();
cities.add(c1);
cities.add(c2);
cities.add(c3);
cities.add(c4);
cities.add(c5);
Мне нужно отобразить его один за другим с помощью кнопок «Далее» и «Предыдущий».
В настоящее время у меня есть цикл for, проходящий через ArrayList, создающий поля метки и текста и получающий данные класса из приращения (i)
Вот код для этого:
for (int i = 0; i < cities.size(); i++) {
GridPane pane = new GridPane();
pane.setHgap(5);
pane.setVgap(5);
pane.setPadding(new Insets(25,25,25,25));
Label label1 = new Label("City:");
TextField textField1 = new TextField (cities.get(i).getCity());
pane.add(label1, 0, 1);
pane.add(textField1, 1, 1);
Label label2 = new Label("State:");
TextField textField2 = new TextField (cities.get(i).getState());
pane.add(label2, 0, 2);
pane.add(textField2, 1, 2);
Label label3 = new Label("Zip Code:");
TextField textField3 = new TextField (String.valueOf(cities.get(i).getpostalCode()));
pane.add(label3, 0, 3);
pane.add(textField3, 1, 3);
Label label4 = new Label("Longitude:");
TextField textField4 = new TextField (String.valueOf(cities.get(i).getLongitude()));
pane.add(label4, 0, 4);
pane.add(textField4, 1, 4);
Label label5 = new Label("Longitude:");
TextField textField5 = new TextField (String.valueOf(cities.get(i).getLatitude()));
pane.add(label5, 0, 5);
pane.add(textField5, 1, 5);
Button prev = new Button("Previous");
pane.add(prev, 0, 20);
Button next = new Button("Next");
pane.add(next, 2, 20);
// buttons are work in progress
next.setOnAction((ActionEvent e) -> {
cities.get(i).getCity();
textField1.setText(cities.get(i).getCity());
});
BorderPane borderPane = new BorderPane();
borderPane.setCenter(pane);
Scene scene = new Scene(borderPane, 500, 500);
primaryStage.setTitle("Cities");
primaryStage.setScene(scene);
primaryStage.show();
}
Я могу отобразить это без ForLoop, но я не знаю, как идти отсюда. Кроме того, как мне реализовать мои кнопки назад / вперед setOnActions внутри цикла?
Спасибо!