msアクセスのようなグリッドペインを使用して連続フォームを作成するための助けが必要です。最初はグリッド区画に1行3列がありますJavaFX連続フォームは、グリッドペインにコンテンツを含む新しい行を動的に追加します。
|チョイスボックス|削除ボタン|追加ボタン|
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の行と値を削除するにはどうすればよいですか? choiceboxが変更された場合、リストを更新するにはどうすればよいですか?
3番目の行で削除ボタンをクリックするとどうなりますか?現在「Car 1」を含むすべての行を削除する必要がありますか? –
行3の削除ボタンをクリックした場合は、行3のみを削除する必要があります。さらに、オブジェクトカー1は私のリストで削除する必要があります(1行目のCar 1と3のIDは異なる)。 – tonyh