应为Java非法启动类型) package tic.tac.toe.menu; 导入javafx.application.application; 导入javafx.event.ActionEvent; 导入javafx.event.EventHandler; 导入javafx.scene.scene; 导入javafx.scene.control.Button; 导入javafx.scene.layout.StackPane; 导入javafx.stage.stage; 公共类TictoeMenu扩展了应用程序{ @凌驾 公共无效开始(阶段primaryStage){ 按钮开始=新按钮(); start.setText(“如何玩?”); setOnAction(新的EventHandler(){ @凌驾 公共无效句柄(ActionEvent事件){ System.out.println(“\n”+”tic-tac-toe的目标是在垂直、水平或对角方向上获得一行中的3个片段”); System.out.println(“要玩这个游戏,请在一个正方形内单击以放下你的棋子,你可以在开始时选择“x”或“o”); } }); StackPane root=新的StackPane(); root.getChildren().add(开始); 场景=新场景(根,350,250); 初级阶段。设置标题(“Tic Tac Toe”); 初级阶段。场景(场景); primaryStage.show();} 公共无效出口(初级阶段){ 按钮退出=新按钮(); exit.setText(“退出?”); setOnAction(新的EventHandler(){ 公共无效句柄(ActionEvent事件){ 系统出口(0); })}//这一行我得到了错误 StackPane root=新的StackPane(); root.getChildren().add(退出); 场景=新场景(根,350,250); 初级阶段。场景(场景); primaryStage.show(); } }

应为Java非法启动类型) package tic.tac.toe.menu; 导入javafx.application.application; 导入javafx.event.ActionEvent; 导入javafx.event.EventHandler; 导入javafx.scene.scene; 导入javafx.scene.control.Button; 导入javafx.scene.layout.StackPane; 导入javafx.stage.stage; 公共类TictoeMenu扩展了应用程序{ @凌驾 公共无效开始(阶段primaryStage){ 按钮开始=新按钮(); start.setText(“如何玩?”); setOnAction(新的EventHandler(){ @凌驾 公共无效句柄(ActionEvent事件){ System.out.println(“\n”+”tic-tac-toe的目标是在垂直、水平或对角方向上获得一行中的3个片段”); System.out.println(“要玩这个游戏,请在一个正方形内单击以放下你的棋子,你可以在开始时选择“x”或“o”); } }); StackPane root=新的StackPane(); root.getChildren().add(开始); 场景=新场景(根,350,250); 初级阶段。设置标题(“Tic Tac Toe”); 初级阶段。场景(场景); primaryStage.show();} 公共无效出口(初级阶段){ 按钮退出=新按钮(); exit.setText(“退出?”); setOnAction(新的EventHandler(){ 公共无效句柄(ActionEvent事件){ 系统出口(0); })}//这一行我得到了错误 StackPane root=新的StackPane(); root.getChildren().add(退出); 场景=新场景(根,350,250); 初级阶段。场景(场景); primaryStage.show(); } },java,syntax,menu,compiler-errors,javafx,Java,Syntax,Menu,Compiler Errors,Javafx,我是Java新手,我正在尝试创建一个菜单,但在第40行,我遇到了一个错误,说类型的开头是非法的,我不知道这意味着什么。我认为我的语法有误,但不确定要修复什么。更改代码 package tic.tac.toe.menu; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Scene; import

我是Java新手,我正在尝试创建一个菜单,但在第40行,我遇到了一个错误,说类型的开头是非法的,我不知道这意味着什么。我认为我的语法有误,但不确定要修复什么。

更改代码

package tic.tac.toe.menu;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class TicTacToeMenu extends Application {

@Override
public void start(Stage primaryStage) {
    Button start = new Button();
    start.setText("How to Play?");
    start.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent event) {
            System.out.println("\n"+"The goal of tic-tac-toe is to get 3 of your pieces in a row vertically, horizontally, or diagonally ");
            System.out.println("To play this game click inside a square to put down your piece, you choose to be 'x' or 'o' at the start");
        }
    });

    StackPane root = new StackPane();
    root.getChildren().add(start);

    Scene scene = new Scene(root, 350, 250);

    primaryStage.setTitle("Tic-Tac-Toe");
    primaryStage.setScene(scene);
    primaryStage.show();}

public void exit(Stage primaryStage) {
    Button exit = new Button();
    exit.setText("Quit?");
    exit.setOnAction(new EventHandler<ActionEvent>() {
        public void handle(ActionEvent event) {
            System.exit(0);
        })} // this line I get the error

    StackPane root=new StackPane();
    root.getChildren().add(exit);
    Scene scene = new Scene(root, 350, 250);
    primaryStage.setScene(scene);
    primaryStage.show();
}
}
对此

})} // this line I get the error
您需要两个连续的右大括号:第一个用于完成
handle
方法,第二个用于完成
EventHandler


外圆括号用于完成
setOnAction
调用。最后是一个分号来完成语句。

更改您的
退出。setOnAction
调用如下

}}); 
exit.setOnAction(新的EventHandler(){
公共无效句柄(ActionEvent事件){
系统出口(0);
}
}); // 不是})

}
替换为
})。您必须按与打开块相反的顺序关闭块。

老实说,语法检查器不是这样。并且使用一个IDE,它会告诉你你缺少括号/括号/等等。它就是我用一个comment@BrianRoach当然是……看看下面的答案。太有效率了-众包是吗?@bblincoe我知道::叹气::我甚至会建议最后三个字符使用“下一行”来正确缩进。我甚至会建议最后三个字符使用“下一行”来正确缩进。
exit.setOnAction(new EventHandler<ActionEvent>() {
    public void handle(ActionEvent event) {
        System.exit(0);
    }
}); // NOT })}