我正在 javafx 中制作一个应用程序,它使用库存子系统来允许用户添加到数据库或查找产品。我遇到的问题是当我单击下一个菜单时,例如,如果我选择查找项目,然后返回主菜单。 setonaction 方法停止工作。
private void mainMenu() {
pane.setBottom(null);
Label mainMenuTitle=new Label("Inventory Subsystem");
VBox titleBox=new VBox(mainMenuTitle);
pane.setTop(titleBox);
lookUpItem=new Button("Look Up Item");
enterItem=new Button("Enter Item");
deleteItem=new Button("Delete Item");
VBox mainMenuChoices=new VBox(20,lookUpItem,enterItem,deleteItem);
mainMenuChoices.setAlignment(Pos.CENTER);
pane.setCenter(mainMenuChoices);
上面是我的主菜单,其中有一些按钮可以让我选择下一个屏幕。
private void lookUpItemScreen() {
GridPane gridpane=new GridPane();
Button submit=new Button("Submit");
Button back=new Button("Back");
HBox submitbox=new HBox(5,submit,back);
submitbox.setAlignment(Pos.CENTER);
submitbox.setPadding(new Insets(0,0,10,0));
Label Title=new Label("Look Up Item");
VBox titleBox=new VBox(Title);
Label idLabel=new Label("Id: ");
Label productIdLabel=new Label("Product Id: ");
Label orLabel=new Label("or");
TextField id=new TextField();
TextField productID=new TextField();
gridpane.add(idLabel,0,1);
gridpane.add(id,3,1);
gridpane.add(orLabel,2,2);
gridpane.add(productIdLabel,0,3);
gridpane.add(productID,3,3);
gridpane.setAlignment(Pos.CENTER);
gridpane.setHgap(5);
gridpane.setVgap(10);
pane.setTop(titleBox);
pane.setCenter(gridpane);
pane.setBottom(submitbox);
submit.setOnAction(event -> {
//This is wher it looks up item in database and shows data
});
back.setOnAction(event -> {
mainMenu();
});
}
这些都在我的开始方法中,并且当lookUpItem.setOnAction(event-> {lookUpItemScreen()})时选择lookupitemscreen;
public void start(Stage primaryStage) {
mainMenu();
lookUpItem.setOnAction(event ->
{
lookUpItemScreen();
});
enterItem.setOnAction(event -> {
enterItemScreen();
});
deleteItem.setOnAction(event -> {
deleteItemScreen();
});
Scene supplierInfoSubsys=new Scene(pane, 640,400);
primaryStage.setScene(supplierInfoSubsys);
primaryStage.show();
}
最佳答案
我明白了。我必须输入:
lookUpItem.setOnAction(event ->
{
lookUpItemScreen();
});
enterItem.setOnAction(event -> {
enterItemScreen();
});
deleteItem.setOnAction(event -> {
deleteItemScreen();
});
进入主菜单方法而不是启动方法。
关于java - javafx 中按钮的操作事件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58919981/