Javafx 在组合框中设置全屏

Javafx 在组合框中设置全屏,javafx,combobox,fullscreen,Javafx,Combobox,Fullscreen,您好,我正在为游戏编写UI。在这个UI中,我想要一个带有设置的场景。在设置中,我有一个组合框,我希望设置全屏为真或假。实际上,我从类型“如何解决我的问题”中得到错误“无法静态引用非静态方法setFullScreen(boolean)”。我希望无边框swindowsetFullscreentrueprintln正在工作 控制器类 package Menue; public class SettingEinstellungen { @FXML private ComboBox&

您好,我正在为游戏编写UI。在这个UI中,我想要一个带有设置的场景。在设置中,我有一个
组合框
,我希望
设置全屏
为真或假。实际上,我从类型“如何解决我的问题”中得到错误“无法静态引用非静态方法
setFullScreen(boolean)
”。我希望无边框swindow
setFullscreen
true
println
正在工作

控制器类

package Menue;

public class SettingEinstellungen {


    @FXML
    private ComboBox<String> Combobox;                                                                  
    ObservableList <String> Auswahl = 
            FXCollections.observableArrayList("Fullscree","Windowmode","Borderless Window");        


    @FXML 
    Button exit;                                                                                               
    @FXML
    public void initialize() {                                                                              



        Combobox.setValue("Fullscree");
        Combobox.setItems(Auswahl);
        Combobox.getSelectionModel().select("Fullscreen");


        Combobox.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>(){       
            public void changed(ObservableValue<? extends String> observable, String alt, String new) {

            if(new != null) {
                switch(new) {

                    case "Fullscreen":  System.out.println("Vollbildgeklickt" +alt +neu);
                            break;      
                    case "Window-mode":     System.out.println("Fenster\t" +alt);
                            break;
                    case "Borderless Window":   Stage.setFullScreen(true);          
                            break;   
                    default: ;
                            break;
                }
            }

            }

        });}

    //public void changeCombo(ActionEvent  event) {

        //Stage.setFullscreen(true)(comboBox.getValue(Vollbild));

    //}

    @FXML   
    public void exit_press (ActionEvent  event) throws IOException  {                                   

        Stage window = (Stage)((Node)event.getSource()).getScene().getWindow();
        //window.setFullScreen(true);
        //window.setScene(new Scene(FXMLLoader.load(new File("menue_UI_1.fxml").toURI().toURL())));

        Parent root_3 = FXMLLoader.load(getClass().getResource("menue_UI_2.fxml"));
        Scene scene_3 = new Scene(root_3);
        window.setScene(scene_3);

        window.setTitle("Hauptmenü");
        window.show();

    }


}
package菜单;
公共类设置安装程序{
@FXML
专用组合框组合框;
观察者Auswahl=
FXCollections.observearraylist(“Fullscree”、“Windowmode”、“无边框窗口”);
@FXML
按钮出口;
@FXML
public void initialize(){
Combobox.setValue(“FullScreee”);
Combobox.setItems(Auswahl);
Combobox.getSelectionModel().select(“全屏”);
Combobox.getSelectionModel().SelectEditeProperty().addListener(新的ChangeListener(){

public void changed(observevalue问题在于您没有引用实际阶段,这就是为什么您会出现错误。您需要引用显示的实际阶段。您可以通过在执行过程中获取窗口来实现这一点,也可以在启动程序时在顶部对其进行初始化

comboBox.getSelectionModel()
            .selectedItemProperty()
            .addListener((obs, oldVal, newVal) -> {

                if(newVal != null) {
                    System.out.println(newVal);
                    switch(newVal) {
                        case "Fullscreen":
                            System.out.println("Vollbildgeklickt" +oldVal + newVal);
                            break;
                        case "Window-mode":
                            System.out.println("Fenster\t" +newVal);
                            break;
                        case "Borderless Window":
                            Stage window = (Stage) comboBox.getScene().getWindow();
                            window.setFullScreen(true);
                            break;
                        default:
                            break;
                    }
                }

            });

与您的问题无关:请学习java命名约定并坚持它们。