Java 如何从组合框中获取所选字符串? 公共静态字符串stringWallColor; 公共静态void main(字符串[]args){ 发射(args); System.out.println(“完成!”); } public void start(Stage primaryStage)引发异常{ Main.primaryStage=primaryStage; 菜单栏菜单=新建菜单栏(); MenuGenerator.menuCreator(菜单); 按钮播放按钮=新按钮(“玩游戏”); ComboBox wallColorCombo=新ComboBox(); setPrompText(“选择墙颜色”); wallColorCombo.getItems().addAll( “默认-黑色”, “深绿色”, “深红色”, “深灰色”, “马鞍棕”, “午夜蓝”, “深品红”, “深红色”, “海军”); stringWallColor=wallColorCombo.getSelectionModel().getSelectedItem(); gameGrid=新建GridPane(); GridPane root=新的GridPane(); 添加(菜单,0,0); 添加(gameGrid,0,1); 游戏场景=新场景(根,600625); GridPane startGrid=新建GridPane(); startGrid.setHgap(20); startGrid.setVgap(20); 播放按钮。设置行间距(10); 添加(播放按钮,8,12); startGrid.add(wallColorCombo,7,12); GridPane root0=新建GridPane(); root0.add(startGrid,0,1); Scene startScene=新场景(root040400); 初生阶段:西新统(始新统); primaryStage.setTitle(GameEngine.GAME_NAME); primaryStage.show(); System.out.println(“尚未加载默认保存文件”); 播放按钮。设置操作(e->{ MenuGenerator.loadDefaultSaveFile(primaryStage); System.out.println(“加载的默认保存文件”); primaryStage.setScene(游戏场景);}); } 公共静态颜色getWallColor(){ Color wallColor=Color.BLACK; if(stringWallColor.equals(“默认-黑色”)) wallColor=Color.BLACK; if(stringWallColor.equals(“深绿色”)) wallColor=Color.DARKGREEN; if(stringWallColor.equals(“暗红色”)) wallColor=Color.DARKRED; if(stringWallColor.equals(“深灰色”)) wallColor=Color.DARKGRAY; if(stringWallColor.equals(“鞍棕色”)) wallColor=Color.SADDLEBROWN; if(stringWallColor.equals(“午夜蓝”)) wallColor=Color.MIDNIGHTBLUE; if(stringWallColor.equals(“深品红”)) wallColor=Color.DARKMAGENTA; if(stringWallColor.equals(“深红色”)) wallColor=Color.CRIMSON; if(stringWallColor.equals(“海军”)) wallColor=Color.NAVY; 返回墙颜色; }
}Java 如何从组合框中获取所选字符串? 公共静态字符串stringWallColor; 公共静态void main(字符串[]args){ 发射(args); System.out.println(“完成!”); } public void start(Stage primaryStage)引发异常{ Main.primaryStage=primaryStage; 菜单栏菜单=新建菜单栏(); MenuGenerator.menuCreator(菜单); 按钮播放按钮=新按钮(“玩游戏”); ComboBox wallColorCombo=新ComboBox(); setPrompText(“选择墙颜色”); wallColorCombo.getItems().addAll( “默认-黑色”, “深绿色”, “深红色”, “深灰色”, “马鞍棕”, “午夜蓝”, “深品红”, “深红色”, “海军”); stringWallColor=wallColorCombo.getSelectionModel().getSelectedItem(); gameGrid=新建GridPane(); GridPane root=新的GridPane(); 添加(菜单,0,0); 添加(gameGrid,0,1); 游戏场景=新场景(根,600625); GridPane startGrid=新建GridPane(); startGrid.setHgap(20); startGrid.setVgap(20); 播放按钮。设置行间距(10); 添加(播放按钮,8,12); startGrid.add(wallColorCombo,7,12); GridPane root0=新建GridPane(); root0.add(startGrid,0,1); Scene startScene=新场景(root040400); 初生阶段:西新统(始新统); primaryStage.setTitle(GameEngine.GAME_NAME); primaryStage.show(); System.out.println(“尚未加载默认保存文件”); 播放按钮。设置操作(e->{ MenuGenerator.loadDefaultSaveFile(primaryStage); System.out.println(“加载的默认保存文件”); primaryStage.setScene(游戏场景);}); } 公共静态颜色getWallColor(){ Color wallColor=Color.BLACK; if(stringWallColor.equals(“默认-黑色”)) wallColor=Color.BLACK; if(stringWallColor.equals(“深绿色”)) wallColor=Color.DARKGREEN; if(stringWallColor.equals(“暗红色”)) wallColor=Color.DARKRED; if(stringWallColor.equals(“深灰色”)) wallColor=Color.DARKGRAY; if(stringWallColor.equals(“鞍棕色”)) wallColor=Color.SADDLEBROWN; if(stringWallColor.equals(“午夜蓝”)) wallColor=Color.MIDNIGHTBLUE; if(stringWallColor.equals(“深品红”)) wallColor=Color.DARKMAGENTA; if(stringWallColor.equals(“深红色”)) wallColor=Color.CRIMSON; if(stringWallColor.equals(“海军”)) wallColor=Color.NAVY; 返回墙颜色; },java,javafx,Java,Javafx,} 这是我的主课。我正在尝试从组合框中选择字符串,并从该字符串中“获取墙颜色”。问题是,当我运行应用程序时,在点击playbutton后,我得到一个错误,即在第75行-if(stringWallColor.equals(“Default-Black”))中,stringWallColor为null。这是否意味着它使用公共静态字符串stringWallColor,默认为null?如何解决这个问题?通过设置stringWallColor=wallColorCombo.getSelectionMode
这是我的主课。我正在尝试从组合框中选择字符串,并从该字符串中“获取墙颜色”。问题是,当我运行应用程序时,在点击playbutton后,我得到一个错误,即在第75行-if(stringWallColor.equals(“Default-Black”))中,stringWallColor为null。这是否意味着它使用公共静态字符串stringWallColor,默认为null?如何解决这个问题?通过设置
stringWallColor=wallColorCombo.getSelectionModel().getSelectedItem()来解决代码>作为播放按钮的操作。通过设置stringWallColor=wallColorCombo.getSelectionModel().getSelectedItem()解决代码>作为播放按钮的操作。JAVA Swing或JFX也只有在调用setVisible(true)或show()后才处于活动状态。因此,您将获得stringWallColor的空值。顺便说一句,粘贴到组合框的“操作”在哪里?JAVA Swing或JFX也只有在调用setVisible(true)或show()后才处于活动状态。因此,您将获得stringWallColor的空值。顺便说一句,粘在组合框上的“动作”在哪里?
public static String stringWallColor;
public static void main(String[] args) {
launch(args);
System.out.println("Done!");
}
public void start(Stage primaryStage) throws Exception {
Main.primaryStage = primaryStage;
MenuBar MENU = new MenuBar();
MenuGenerator.menuCreator(MENU);
Button playButton = new Button("Play Game");
ComboBox<String> wallColorCombo = new ComboBox<>();
wallColorCombo.setPromptText("Choose wall color");
wallColorCombo.getItems().addAll(
"Default - Black",
"Dark Green",
"Dark Red",
"Dark Gray",
"Saddle Brown",
"Midnight Blue",
"Dark Magenta",
"Crimson",
"Navy");
stringWallColor = wallColorCombo.getSelectionModel().getSelectedItem();
gameGrid = new GridPane();
GridPane root = new GridPane();
root.add(MENU,0,0);
root.add(gameGrid, 0, 1);
gameScene = new Scene(root,600,625);
GridPane startGrid = new GridPane();
startGrid.setHgap(20);
startGrid.setVgap(20);
playButton.setLineSpacing(10);
startGrid.add(playButton,8,12);
startGrid.add(wallColorCombo,7,12);
GridPane root0= new GridPane();
root0.add(startGrid,0,1);
Scene startScene = new Scene(root0, 400, 400);
primaryStage.setScene(startScene);
primaryStage.setTitle(GameEngine.GAME_NAME);
primaryStage.show();
System.out.println("Default save file not loaded yet");
playButton.setOnAction(e -> {
MenuGenerator.loadDefaultSaveFile(primaryStage);
System.out.println("Default save file loaded");
primaryStage.setScene(gameScene); });
}
public static Color getWallColor() {
Color wallColor = Color.BLACK;
if (stringWallColor.equals("Default - Black"))
wallColor = Color.BLACK;
if (stringWallColor.equals("Dark Green"))
wallColor = Color.DARKGREEN;
if (stringWallColor.equals("Dark Red"))
wallColor = Color.DARKRED;
if (stringWallColor.equals("Dark Gray"))
wallColor = Color.DARKGRAY;
if (stringWallColor.equals("Saddle Brown"))
wallColor = Color.SADDLEBROWN;
if (stringWallColor.equals("Midnight Blue"))
wallColor = Color.MIDNIGHTBLUE;
if (stringWallColor.equals("Dark Magenta"))
wallColor = Color.DARKMAGENTA;
if (stringWallColor.equals("Crimson"))
wallColor = Color.CRIMSON;
if (stringWallColor.equals("Navy"))
wallColor = Color.NAVY;
return wallColor;
}