-1
這是我Menu.fxml:的菜單項JavaFX的動作處理程序不執行任何操作(FXML)
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<StackPane xmlns:fx="http://javafx.com/fxml/1" fx:controller="biblereader.control.MenuController">
<MenuBar fx:id="menu">
<menus>
<Menu text="File" fx:id="fileMenu">
<items>
<MenuItem text="Open..." fx:id="open" onAction="#handleOpenAction" />
<MenuItem text="Exit" fx:id="exit" onAction="#handleExitAction" />
</items>
</Menu>
<Menu text="Results" fx:id="resultsMenu">
<items>
<MenuItem text="Save All Results" />
<MenuItem text="Load Results" />
</items>
</Menu>
</menus>
</MenuBar>
</StackPane>
這裏是我的MenuController.java:
package biblereader.control;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.application.Platform;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
/**
* FXML Controller class
*
* @author nathan
*/
public class MenuController implements Initializable {
@FXML private MenuBar menu;
@FXML private Menu test;
@FXML private MenuItem open;
@FXML private MenuItem exit;
/**
* Initializes the controller class.
* @param url
* @param rb
*/
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}
@FXML
private void handleExitAction(ActionEvent event) {
System.out.println("exiting");
System.exit(0);
Platform.exit();
}
@FXML
private void handleOpenAction(ActionEvent event) {
System.out.println("open bible");
}
}
我嘗試了幾種不同的方法來使動作事件實際觸發,但我沒有做任何事(通過FXML)實際上完成了動作事件觸發。
菜單顯示正常,但菜單項點擊沒有任何反應。
是的,我曾嘗試做以下爲好,在控制器:
exit = new MenuItem("Exit");
exit.setOnAction((ActionEvent e) -> {
System.exit(0);
});
儘管如此,沒有什麼我都試過了工作。任何幫助我能得到這個將非常感激。
請閱讀[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 – Roland
好吧,出於好奇,我浪費了我的時間,並創建了一個你的代碼中的應用程序。結果:一切正常,事件正在發射。所以問題出在你沒有向我們展示的代碼中。 – Roland