&引用;找不到符号构造函数,EventHandler不接受参数;在JavaFX中设置按钮的操作时

&引用;找不到符号构造函数,EventHandler不接受参数;在JavaFX中设置按钮的操作时,java,constructor,javafx,symbols,eventhandler,Java,Constructor,Javafx,Symbols,Eventhandler,我正在用JavaFX创建一个程序,它列出数据库中的任务,并为每一行显示一个按钮,允许用户注册数据库中声明的任务。我使用此链接上的代码来帮助我设置每行的按钮: 但是,在更改代码以适合我的程序之后,我在设置cellButton变量的操作时遇到了一个错误。我还添加了调用此方法的类,以防万一 找不到符号构造函数,EVENTHANDLER不接受参数。。 &方法不会重写或实现超类型中的方法(我猜这个错误是前两个错误的结果) //定义按钮单元格 私有类ButtonCell扩展TableCell{ 最终按钮ce

我正在用JavaFX创建一个程序,它列出数据库中的任务,并为每一行显示一个按钮,允许用户注册数据库中声明的任务。我使用此链接上的代码来帮助我设置每行的按钮:

但是,在更改代码以适合我的程序之后,我在设置cellButton变量的操作时遇到了一个错误。我还添加了调用此方法的类,以防万一

找不到符号构造函数,EVENTHANDLER不接受参数。。 &方法不会重写或实现超类型中的方法(我猜这个错误是前两个错误的结果)

//定义按钮单元格
私有类ButtonCell扩展TableCell{
最终按钮cellButton=新按钮(“索赔”);
ButtonCell(){
//按下按钮时的操作
cellButton.setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent t){
//获取所选项目
任务currentPerson=(任务)ButtonCell.this.getTableView().getItems().get(ButtonCell.this.getIndex());
//从表列表中删除选定项
claimTask(currentPerson.getTaskID());
}
});
}
//如果行不为空,则显示按钮
@凌驾
受保护的void updateItem(布尔值t,布尔值为空){
super.updateItem(t,空);
如果(!空){
设置图形(cellButton);
}
}
}
x

private TableView createTasksTable(){
TableView TableView=新建TableView();
TableColumn firstNameCol=新的TableColumn(“任务”);
firstNameCol.setCellValueFactory(新回调(){
@凌驾
公共可观察值呼叫(CellDatap){
//p.getValue()返回特定TableView行的Person实例
返回新的SimpleStringProperty(p.getValue().getName());
}
});
//插入按钮
TableColumn col_action=新TableColumn(“action”);
tableView.getColumns().add(col_操作);
col_action.setCellValueFactory(
新回调函数(){
@凌驾
公共observeValue调用(TableColumn.celldatap){
返回新的SimpleBoleAnProperty(p.getValue()!=null);
}
});
//将按钮添加到单元格中
col_action.setcell工厂(
新回调函数(){
@凌驾
公共TableCell调用(TableP列){
返回新的ButtonCell();
} });
tableView.getColumns().addAll(firstNameCol);
返回表视图;
}

您可能导入了错误的
EventHandler
。确保你有

import javafx.event.EventHandler ;
而不是awt的东西

   private TableView createTasksTable() {

    TableView tableView = new TableView();

    TableColumn<task,String> firstNameCol = new TableColumn<>("Task");
    firstNameCol.setCellValueFactory(new Callback<CellDataFeatures<task, String>,                    ObservableValue<String>>() {
    @Override
    public ObservableValue<String> call(CellDataFeatures<task, String> p) {
     // p.getValue() returns the Person instance for a particular TableView row

     return new SimpleStringProperty(p.getValue().getName());
 }
  });

     //Insert Button
    TableColumn col_action = new TableColumn<>("Action");
    tableView.getColumns().add(col_action);

    col_action.setCellValueFactory(
            new Callback<TableColumn.CellDataFeatures<task, Boolean>, 
            ObservableValue<Boolean>>() {

        @Override
        public ObservableValue<Boolean> call(TableColumn.CellDataFeatures<task, Boolean> p) {
            return new SimpleBooleanProperty(p.getValue() != null);
        }
    });

    //Adding the Button to the cell
    col_action.setCellFactory(
            new Callback<TableColumn<task, Boolean>, TableCell<task, Boolean>>() {

        @Override
        public TableCell<task, Boolean> call(TableColumn<task, Boolean> p) {
            return new ButtonCell();
        } });


    tableView.getColumns().addAll(firstNameCol);


    return tableView;

}
import javafx.event.EventHandler ;