0

我在尝试使用 netbeans、javFX 和 MySQL 创建 Sql 语句时遇到问题。这是我的主要方法:

public void start(Stage primaryStage) throws Exception {
   primaryStage.setTitle("Create Product");
   Pane myPane = (Pane)FXMLLoader.load(getClass().getResource
("createProduct.fxml"));
   Scene myScene = new Scene(myPane);
   primaryStage.setScene(myScene);
   primaryStage.show();
}

public static void main(String[] args) {
    launch(args);
}

我使用 javaFX 设计了我的用户界面,并将整个面板存储为 myPane,就像上面的代码一样。这是我的 createProduct.fxml。它只包含一个文本字段和一个按钮。

<AnchorPane id="AnchorPane" prefHeight="200.0" prefWidth="320.0" xmlns:fx="http://javafx.com/fxml" fx:controller="it2297proj.SampleController">

这是我的事件处理程序类。单击按钮时,它将整个面板传递给 CreateProductController。

public class SampleController implements Initializable {
private SampleController myPane = null;

@FXML
private void handleButtonAction(ActionEvent event) {
    System.out.println("You clicked me!");
}
@FXML
private void createProduct(ActionEvent event){
CreateProductController controller = new CreateProductController();
boolean result = controller.create(myPane); //Error here
}

在我的 CreateProductController 类中,我只是简单地获取文本并将其传递给实体。

public class CreateProductController {
public boolean create(SampleController panel){
    String name = panel.getnameTextField.getText();
}
}

但是,事件处理程序类出现错误,boolean result = controller.create(myPane); 这条线。错误消息是 Create(Sample Controller) 类的类型错误。我不知道为什么,因为它在 Eclipse 中运行良好。任何帮助,将不胜感激。

提前致谢。

4

1 回答 1

0

目前尚不清楚您正在使用哪个版本的 JavaFX 以及您到底想要做什么。JavaFX 2.2 使创建自定义控制器变得非常简单。您可以直接从 FXML 或以编程方式将参数传递给它们。如果您使用的是 2.2 版,您可能会受益于阅读使用 FXML 创建自定义控件。您正在寻找的答案可能就在那里,尤其是在有关 FXMLLoaders 的部分中。

这个线程也可能有帮助。

于 2013-06-18T23:05:01.960 回答