我正在尝试使用JavaFX创建基本UI。问题只是我的处理程序无法在我的控制器中找到。
我的ui.fxml:
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<StackPane id="pane" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" fx:controller="reldb0.controller.PersonOverviewController">
<children>
<Button text="Hinzufügen" onAction="#handleAddClicked" fx:id="addButton" />
<Button text="Entfernen" onAction="#handleDeleteClicked" fx:id="deleteButton" />
<TableView fx:id="table">
<columns>
<TableColumn fx:id="vorname" prefWidth="100" text="Vorname" />
<TableColumn fx:id="nachname" prefWidth="100" text="Nachname" />
</columns>
</TableView>
</children>
</StackPane>
我的控制器类:
package reldb0.controller;
import java.awt.event.ActionEvent;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import reldb0.entity.Person;
import reldb0.MockData;
/**
*
* @author hnsdi
*/
public class PersonOverviewController implements Initializable{
@FXML
private TableView<Person> table;
@FXML
private TableColumn<Person, String> vorname;
@FXML
private TableColumn<Person, String> nachname;
@Override
public void initialize(URL location, ResourceBundle resources) {
vorname.setCellValueFactory(new PropertyValueFactory<Person, String>("vorname"));
nachname.setCellValueFactory(new PropertyValueFactory<Person, String>("nachname"));
table.getItems().setAll(MockData.persons());
}
@FXML
private void handleAddClicked(ActionEvent event) {
StackPane root = new StackPane();
Scene scene = new Scene(root, 300, 300);
Stage addWindow = new Stage();
addWindow.setTitle("Person hinzufügen");
addWindow.setScene(scene);
addWindow.show();
}
@FXML
private void handleDeleteClicked(ActionEvent event) {
//TODO
}
}
我无法找到无法找到EventHandler的问题。我有@FXML注释,并且控制器已正确注册,因为表中填充了数据。
答案 0 :(得分:3)
import java.awt.event.ActionEvent; // which is wrong
在javafx.event.ActionEvent
班级
java.awt.event.ActionEvent
而不是PersonOverviewController