我有一个问题,我过去几天都在努力解决这个项目的最后期限。我正在制作一个JavaFX桌面应用程序,我遇到了一个问题:我使用SceneBuilder创建了GUI,我的菜单应该是动态的(从数据库中获取项目并进入菜单)。我试图这样做,问题是我运行应用程序菜单时没有改变。我做错了什么?
Main.java
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("home.fxml"));
primaryStage.setTitle("Whatever");
MainController.setMenu();
primaryStage.setScene(new Scene(root, 1200, 800));
Rectangle2D primaryScreenBounds = Screen.getPrimary().getVisualBounds();
primaryStage.setX(primaryScreenBounds.getMinX());
primaryStage.setY(primaryScreenBounds.getMinY());
primaryStage.setWidth(primaryScreenBounds.getWidth());
primaryStage.setHeight(primaryScreenBounds.getHeight());
primaryStage.show();
}
public static void main(String[] args) throws ClassNotFoundException, SQLException {
launch(args);
}
MainController.java
public static void setMenu() throws SQLException, ClassNotFoundException {
myMenu = new Menu();
String myQuery = "SELECT name FROM USER.TABLE1";
Connection connection = DBConnect.connect();
Statement statement = connection.createStatement();
ResultSet data = statement.executeQuery(myQuery);
while (data.next()) {
System.out.println(data.getString(1));//works
String dataString = data.getString(1);
myMenu.getItems().add(new MenuItem(dataString));
}
}
答案 0 :(得分:1)
您在MainController中初始化了一个新的Menu对象,并用一些MenuItem填充它,但是我没看到您将这个菜单添加到视图的哪个位置。
菜单出现在您的视图中,它是空的吗?