Button 如何使用JavaFX中的按钮将数据从组合框添加到表列?

Button 如何使用JavaFX中的按钮将数据从组合框添加到表列?,button,javafx,combobox,tableview,tablecolumn,Button,Javafx,Combobox,Tableview,Tablecolumn,因此,我有以下代码: public class ToDoListController implements Initializable { String text = ""; LocalDate isoDate; @FXML private Button bttnAddEvent; @FXML private DatePicker pickerDate; @FXML private ComboBox<String>

因此,我有以下代码:

public class ToDoListController implements Initializable {

    String text = "";
    LocalDate isoDate;

    @FXML
    private Button bttnAddEvent;

    @FXML
    private DatePicker pickerDate;

    @FXML
    private ComboBox<String> eventsSelector;

    @FXML
    private Button bttnDone;

    @FXML
    private Button bttnRemove;

    @FXML
    private TableView<EventsBean> eventsTable;

    @FXML
    private TableColumn<EventsBean, String> eventCol;

    @FXML
    private TableColumn<EventsBean, LocalDate> dateCol;

    @FXML
    private TableColumn<?, ?> doneCol;

    @FXML
    private TableColumn<?, ?> observationCol;

    @FXML
    private TableColumn<?, ?> removeCol;

    @FXML
    void bttnDoneAction(ActionEvent event) {

    }

    @FXML
    void bttnRemoveAction(ActionEvent event) {

    }

    @FXML
    void pickerDateAction(ActionEvent event) {
         isoDate = pickerDate.getValue();
    }

            ObservableList<EventsBean> dataList = 
    FXCollections.observableArrayList();


    @Override
    public void initialize(URL location, ResourceBundle resources) {
    System.out.println("The pane loaded");

    List<String> myList;
    try {
        myList = Files.lines(Paths.get("src/com/todolist/EventsList.txt")).collect(Collectors.toList());
        eventsSelector.setItems(FXCollections.observableArrayList(myList));
    } catch (IOException e) {
        System.out.println("Don t find file");
    }

    eventCol.setCellValueFactory(new PropertyValueFactory<EventsBean, String>("event"));
    dateCol.setCellValueFactory(new PropertyValueFactory<EventsBean, LocalDate>("date"));

    observationCol.setCellValueFactory(new PropertyValueFactory<EventsBean, String>("observation"));
    observationCol.setCellFactory(TextFieldTableCell.<EventsBean>forTableColumn());
    observationCol.setOnEditCommit(
            (CellEditEvent<EventsBean, String> t) -> {
                ((EventsBean) t.getTableView().getItems().get(
                    t.getTablePosition().getRow())
                    ).setObservation(t.getNewValue());
        });
    observationCol.setSortable(false);

    eventsTable.setItems(dataList);
    eventsTable.setEditable(true);

    bttnAddEvent.setOnAction((ActionEvent e) -> {
        text = eventsSelector.getValue().toString();
        dataList.add(new EventsBean(text, isoDate, ""));
    });

    }
    }
公共类ToDoListController实现可初始化{
字符串文本=”;
本地日期等日期;
@FXML
私人按钮bttnAddEvent;
@FXML
私人日期选取器选取日期;
@FXML
专用组合框事件选择器;
@FXML
私人按钮bttnDone;
@FXML
私人按钮bttnRemove;
@FXML
私有表视图事件稳定;
@FXML
私有表列eventCol;
@FXML
私有表列dateCol;
@FXML
杜内科尔私人酒店;
@FXML
私有表列观测col;
@FXML
私有表列删除工具;
@FXML
无效bttnDoneAction(操作事件){
}
@FXML
作废bttnRemoveAction(ActionEvent事件){
}
@FXML
无效pickerDateAction(ActionEvent事件){
isoDate=pickerDate.getValue();
}
可观察列表数据列表=
FXCollections.observableArrayList();
@凌驾
公共void初始化(URL位置、ResourceBundle资源){
System.out.println(“加载的窗格”);
列出我的清单;
试一试{
myList=Files.lines(path.get(“src/com/todolist/EventsList.txt”)).collect(Collectors.toList());
eventsSelector.setItems(FXCollections.observableArrayList(myList));
}捕获(IOE异常){
System.out.println(“找不到文件”);
}
eventCol.setCellValueFactory(新属性ValueFactory(“事件”);
dateCol.setCellValueFactory(新属性ValueFactory(“日期”);
observationCol.setCellValueFactory(新属性ValueFactory(“观察”));
observationCol.setCellFactory(TextFieldTableCell.forTableColumn());
observationCol.setOnEditCommit(
(CellEditEvent t)->{
((EventsBean)t.getTableView().getItems().get(
t、 getTablePosition().getRow())
).setObservation(t.getNewValue());
});
observationCol.setSortable(假);
eventsTable.setItems(数据列表);
eventsTable.setEditable(true);
bttnAddEvent.setOnAction((ActionEvent e)->{
text=eventsSelector.getValue().toString();
添加(新的EventsBean(文本,isoDate,“”);
});
}
}
还有我的EventsBean课程:

public class EventsBean {

private SimpleStringProperty observation;
private SimpleStringProperty event;
private SimpleObjectProperty<LocalDate> date;

public EventsBean(String event, LocalDate date, String observation) {
    this.event = new SimpleStringProperty(event);
    this.date = new SimpleObjectProperty<LocalDate>(date);      
    this.observation = new SimpleStringProperty(observation);
}
public String getEvent() {
    return event.get();
}

public LocalDate getDate() {
    return date.get();
}
public String getObservation() {
    return observation.get();
}

public void setObservation(String observation) {
    this.observation.set(observation);
}
}
公共类事件bean{
私人财产观察;
私人物业活动;
私有SimpleObject属性日期;
公共事件bean(字符串事件、LocalDate日期、字符串观察){
this.event=新的SimpleStringProperty(事件);
this.date=新的SimpleObject属性(日期);
this.observation=新的SimpleStringProperty(观察);
}
公共字符串getEvent(){
return事件。get();
}
公共LocalDate getDate(){
返回日期。get();
}
公共字符串getObservation(){
return-observation.get();
}
公共观察(字符串观察){
本.观察.集(观察);
}
}
如您所见,我使用文本文件中的数据填充组合框
。
因此,我想使用
按钮bttnAddEvent
表格列事件列中的
组合框中添加所选数据。除此之外,另一个挑战是使用相同的
按钮bttnAddEvent
组合框中的数据同时添加
日期选择器日期中的选定日期

更新:到目前为止,我将ComboBox的值放入一个名为text的字符串中,但是如何将该值从text传递到TableColumn eventCol中呢


多谢各位

我找到了解决方案,并为满足这一需求的人更新了代码