如何将变量从用户界面传递到控制器

时间:2013-06-18 11:59:04

标签: java eclipse netbeans event-handling javafx

尝试使用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);这条线。错误消息是创建类型(示例控制器)类是错误的。我不知道为什么因为它在日食中工作正常。任何帮助将不胜感激。

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

thread也可能有所帮助。