我需要一些幫助創建一個類似於ms訪問的格子窗口的連續窗體。最初的格子板有1排和3列JavaFX連續窗體在Gridpane中動態添加包含內容的新行
| Choicebox |刪除按鈕|添加按鈕|
public class myGridpane {
@FXML
private GridPane gp_form;
private List<Car> myCars = new ArrayList();
public void initialize() {
myCars = loadCars();
initGridpane(myCars);
}
private initGridpane(List<Car> myCars) {
int rowIndex = 0;
for (Car myCar : myCars) {
Button b_newCar = new Button("+");
Button b_deleteCar = new Button("-");
ChoiceBox<Car> cb_car = new ChoiceBox<>();
cb_car.setItems(Car.getAllCarKeys());
cb_car.setValue(myCar.getModel());
b_deleteCar.setOnAction(new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent e) {
// remove row
// remove car from List myCars
}
});
b_newCar.setOnAction(new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent e) {
// add new row
}
});
cb_car.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
// update myList
}
});
gp_form.add(cb_car, 0, rowIndex);
gp_form.add(b_deleteCar, 1, rowIndex);
gp_form.add(b_newCar, 2, rowIndex);
rowIndex++;
}
}
}
結果應該是這樣的:
。
如何從列表中刪除行和choicebox的值? 如果更改選擇框,我該如何更新我的列表?
當在第三行單擊刪除按鈕時會發生什麼?是否應刪除當前包含「Car 1」的所有行? –
如果點擊第3行的刪除按鈕,則只應刪除第3行。此外,物體汽車1應該在我的列表中刪除(第1行和第3行中的汽車1具有不同的ID)。 – tonyh