我已经完成了一个我在命令提示符下使用的软件,但我想让它更容易使用界面,所以我正在尝试创建一个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上写下它的路径(不知道这是否是最好的方法,但我必须打开一个文件,将是复制)。我还必须找到一种方法来访问我的主应用程序中的用户选择。
答案 0 :(得分:0)
您必须创建一个控制器。在SceneBuilder中创建控制器之后,您可以通过左侧,单击控制器菜单并指定控制器类来将控制器分配给fxml。
在您的控制器类本身中,您将使用@FXML前缀声明您的变量。例如,如何在控制器中声明一个ComboBox:
import javafx.fxml.FXML;
public class MyPageController
{
@FXML
private ComboBox _myComboBox;
}
保存后,您可以返回SceneBuilder,选择您的ComboBox,在右侧点击&#34; Code&#34;并且您将能够指定元素的fx:id
修改强>
您编辑了显示代码的问题,因此我的部分答案不再有意义