不知道如何将变量赋给我的接口对象

时间:2015-09-01 05:39:59

标签: java javafx fxml

我已经完成了一个我在命令提示符下使用的软件,但我想让它更容易使用界面,所以我正在尝试创建一个javafx程序。我已完成界面,我可以运行它,但我不知道如何开始将我的对象(组合框,按钮,文本字段...)分配给变量。 有人可以帮我吗? 我的界面已经完成了“场景”构建器。 这是我的主要课程:

    package ch.makery.adress;

    import java.io.IOException;

    import javafx.application.Application;
    import javafx.fxml.FXMLLoader;
    import javafx.scene.Scene;
    import javafx.stage.Stage;
    import javafx.scene.Parent;


    public class MainApp extends Application {



        @Override
        public void start(Stage stage) throws Exception {
            Parent parent = FXMLLoader.load(getClass().getResource("PersonOverview.fxml"));
            Scene scene = new Scene(parent);
            stage.setTitle("Appication Extraction dar et remplissage Excel");
            stage.setScene(scene);
            stage.show();


    }
    }

这是我的控制器类,显然是不对的。我正在尝试使用组合框,但我在Scene Builder中找不到该变量:

package ch.makery.adress;

import javafx.fxml.Initializable;

import java.net.URL;
import java.util.ResourceBundle;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;

public class HexaController implements Initializable {

        @FXML
        private ComboBox<String> hexa;
        ObservableList<String> list = FXCollections.observableArrayList();




        @FXML
        private void parcourir(ActionEvent event){

        }


        @FXML
        private ComboBox<Integer>methode;

private MainApp MainApp;

public HexaController(){

}

public void initialize(URL url, ResourceBundle rb){
    list.add(new String("OUI"));
    list.add(new String("NON"));
    hexa.setItems(list);

}
}

我不知道遗失了什么或我做错了什么。

由于

修改 我在Scene Builder中访问了我的变量,因此我可以访问我的ComboBox列表。 现在我必须找到一种方法来选择一个文件,当我点击一个按钮,并在TextField上写下它的路径(不知道这是否是最好的方法,但我必须打开一个文件,将是复制)。我还必须找到一种方法来访问我的主应用程序中的用户选择。

1 个答案:

答案 0 :(得分:0)

您必须创建一个控制器。在SceneBuilder中创建控制器之后,您可以通过左侧,单击控制器菜单并指定控制器类来将控制器分配给fxml。

在您的控制器类本身中,您将使用@FXML前缀声明您的变量。例如,如何在控制器中声明一个ComboBox:

import javafx.fxml.FXML;

public class MyPageController
{
    @FXML
    private ComboBox _myComboBox;
}

保存后,您可以返回SceneBuilder,选择您的ComboBox,在右侧点击&#34; Code&#34;并且您将能够指定元素的fx:id

修改
您编辑了显示代码的问题,因此我的部分答案不再有意义