Java 如何将主菜单连接到游戏中? public类主菜单扩展SnakeAndLadder{ 私有组tileGroup=新组(); 公共布尔值=false; 私有父CreateContent(){ StackPane root=新的StackPane(); root.setPrefSize(宽度*瓷砖大小,(高度*瓷砖大小)+80); root.getChildren().addAll(tileGroup); 按钮启动=新按钮(“启动”); start.setTranslateX(10); start.setTranslateY(-500); start.setPrefSize(300150); setOnAction(新的EventHandler(){ @凌驾 公共无效句柄(ActionEvent事件){ gameStarted(); } }); 按钮退出=新按钮(“退出”); 出口。setTranslateX(10); 退出setTranslateY(-300); 退出.setPrefSize(300150); setOnAction(新的EventHandler(){ @凌驾 公共无效句柄(ActionEvent事件){ 系统出口(0); } }); tileGroup.getChildren().addAll(开始、退出); 返回根; } @凌驾 public void start(Stage primaryStage)引发异常{ 场景=新场景(createConetent()); 初级阶段。片名(“蛇和梯子”); 初级阶段。场景(场景); primaryStage.show(); } 公共静态void main(字符串参数[]){ 发射(args); } }
我使用extend来获得与主游戏相同大小的gui。但是当我点击开始按钮时,我得到了一个错误 我是新来的,我不确定这样做是否有效,所以我想听听你的建议。任何帮助都将不胜感激 以下是游戏的代码:Java 如何将主菜单连接到游戏中? public类主菜单扩展SnakeAndLadder{ 私有组tileGroup=新组(); 公共布尔值=false; 私有父CreateContent(){ StackPane root=新的StackPane(); root.setPrefSize(宽度*瓷砖大小,(高度*瓷砖大小)+80); root.getChildren().addAll(tileGroup); 按钮启动=新按钮(“启动”); start.setTranslateX(10); start.setTranslateY(-500); start.setPrefSize(300150); setOnAction(新的EventHandler(){ @凌驾 公共无效句柄(ActionEvent事件){ gameStarted(); } }); 按钮退出=新按钮(“退出”); 出口。setTranslateX(10); 退出setTranslateY(-300); 退出.setPrefSize(300150); setOnAction(新的EventHandler(){ @凌驾 公共无效句柄(ActionEvent事件){ 系统出口(0); } }); tileGroup.getChildren().addAll(开始、退出); 返回根; } @凌驾 public void start(Stage primaryStage)引发异常{ 场景=新场景(createConetent()); 初级阶段。片名(“蛇和梯子”); 初级阶段。场景(场景); primaryStage.show(); } 公共静态void main(字符串参数[]){ 发射(args); } },java,javafx,Java,Javafx,我使用extend来获得与主游戏相同大小的gui。但是当我点击开始按钮时,我得到了一个错误 我是新来的,我不确定这样做是否有效,所以我想听听你的建议。任何帮助都将不胜感激 以下是游戏的代码: public class MainMenu extends SnakeAndLadder { private Group tileGroup = new Group(); public boolean started=false; private Parent createCone
public class MainMenu extends SnakeAndLadder {
private Group tileGroup = new Group();
public boolean started=false;
private Parent createConetent(){
StackPane root = new StackPane();
root.setPrefSize(width* tileSize,(height* tileSize)+80);
root.getChildren().addAll(tileGroup);
Button start = new Button("Start");
start.setTranslateX(10);
start.setTranslateY(-500);
start.setPrefSize(300,150);
start.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
gameStarted();
}
});
Button exit = new Button("Exit");
exit.setTranslateX(10);
exit.setTranslateY(-300);
exit.setPrefSize(300,150);
exit.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.exit(0);
}
});
tileGroup.getChildren().addAll(start,exit);
return root;
}
@Override
public void start(Stage primaryStage)throws Exception{
Scene scene = new Scene(createConetent());
primaryStage.setTitle("Snake And Ladder");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String args[]){
launch(args);
}
}
公共类SnakeAndLadder扩展了应用程序{
公共静态最终int tileSize=80;
公共静态最终整数宽度=10;
公共静态最终内部高度=10;
公共组标题组=新组();
私有父createContent(){
窗格根=新窗格();
root.setPrefSize(宽度*瓷砖大小,(高度*瓷砖大小)+80);
root.getChildren().addAll(titleGroup);
对于(int i=0;i包装样品;
导入javafx.animation.TranslateTransition;
导入javafx.application.application;
导入javafx.event.ActionEvent;
导入javafx.event.EventHandler;
导入javafx.scene.Group;
导入javafx.scene.Parent;
导入javafx.scene.scene;
导入javafx.scene.control.Button;
导入javafx.scene.control.Label;
导入javafx.scene.image.image;
导入javafx.scene.image.ImageView;
导入javafx.scene.layout.Pane;
导入javafx.scene.layout.StackPane;
导入javafx.scene.paint.Color;
导入javafx.scene.shape.Circle;
导入javafx.scene.text.Font;
导入javafx.scene.text.text;
导入javafx.stage.stage;
导入javafx.util.Duration;
导入javax.swing.*;
公共类SnakeAndLadder扩展了应用程序{
公共静态最终int tileSize=80;
公共静态最终整数宽度=10;
公共静态最终内部高度=10;
公共组标题组=新组();
私有父createContent(){
窗格根=新窗格();
root.setPrefSize(宽度*瓷砖大小,(高度*瓷砖大小)+80);
root.getChildren().addAll(titleGroup);
对于(int i=0;我不认为扩展提供的大小与以前的GUI相同。此外,您没有显示launch()的代码
所以我们不知道到底发生了什么。所以我注意到我有两个启动参数,一个在游戏类中,另一个在菜单类中。这造成了错误。我确实成功启动了游戏,但现在的问题是主菜单没有消失。这是什么-回答或进一步的细节问题?如果是前者,请解释(自然语言:)它是如何解决您的问题的,如果是后者,请编辑并澄清问题
public class SnakeAndLadder extends Application {
public static final int tileSize = 80;
public static final int width = 10;
public static final int height = 10;
public Group titleGroup = new Group();
private Parent createContent(){
Pane root = new Pane();
root.setPrefSize(width * tileSize, (height * tileSize) + 80);
root.getChildren().addAll(titleGroup);
for(int i=0; i<width; i++){
for(int j=0; j<height; j++){
Tile tile = new Tile(tileSize, tileSize);
tile.setTranslateX(j * tileSize);
tile.setTranslateY(i * tileSize);
titleGroup.getChildren().add(tile);
}
}
return root;
}
@Override
public void start(Stage primaryStage) throws Exception{
Scene scene = new Scene(createContent());
primaryStage.setTitle("Quiz Snake and Ladder Game");
primaryStage.setResizable(false);
primaryStage.setScene(scene);
primaryStage.show();
}
public void gameStarted() {
launch();
}
}
package sample;
import javafx.animation.TranslateTransition;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.util.Duration;
import javax.swing.*;
public class SnakeAndLadder extends Application {
public static final int tileSize = 80;
public static final int width = 10;
public static final int height = 10;
public Group titleGroup = new Group();
private Parent createContent(){
Pane root = new Pane();
root.setPrefSize(width * tileSize, (height * tileSize) + 80);
root.getChildren().addAll(titleGroup);
for(int i=0; i<(width-.14); i++){
for(int j=0; j<height; j++){
Tile tile = new Tile(tileSize, tileSize);
tile.setTranslateX(j * tileSize);
tile.setTranslateY(i * tileSize);
titleGroup.getChildren().add(tile);
}
}
return root;
}
//@Override
public void start(Stage primaryStage)throws Exception {
Scene scene1 = new Scene(createConetent(primaryStage));
primaryStage.setTitle("Main Menu");
primaryStage.setScene(scene1);
primaryStage.show();
}
private Parent createConetent(Stage primaryStage)throws Exception{
Pane root = new Pane();
root.setPrefSize(width* tileSize,height* tileSize);
root.getChildren().addAll(titleGroup);
Button start = new Button("Start");
start.setTranslateX(253);
start.setTranslateY(100);
start.setPrefSize(300,150);
start.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
gameStarted=true;
Scene scene = new Scene(createContent());
primaryStage.setTitle("Quiz Snake and Ladder Game");
primaryStage.setResizable(false);
primaryStage.setScene(scene);
primaryStage.show();
}
});
Button exit = new Button("Exit");
exit.setTranslateX(253);
exit.setTranslateY(540);
exit.setPrefSize(300,150);
exit.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.exit(0);
}
});
Image img = new Image("MenuBG.jpg");
ImageView imageView = new ImageView();
imageView.setImage(img);
imageView.setFitWidth(800);
imageView.setFitHeight(800);
Button how = new Button("How to play");
how.setTranslateX(253);
how.setTranslateY(320);
how.setPrefSize(300,150);
how.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
}
});
titleGroup.getChildren().addAll(imageView,start,exit,how);
return root;
}
public static void main(String args[]){
launch(args);
}
}