JavaFX setFullScreen

missy72

Bekanntes Mitglied
Hallo,

ich habe mehrere Scenen erstellt und lasse diese nach Bedarf abwechselt in einer Stage anzeigen, welche im FullScreen-Modus anzeigen lasse.
Bei jedem Wechsel wird der FullScreen-Modus verlassen. Kann man dieses vermeiden?

Die aktuelle Lösung gefällt mir nicht, da der Desktop kurzzeitig zu sehen ist.

Java:
    private void showMainScene() {
      
        mainStage.hide();
        mainStage.setScene(mainScene);
        mainStage.setTitle("Auswahl");
        mainStage.setFullScreen(true);
        mainStage.show();
    }
Dannke MfG Missy
 
G

Gelöschtes Mitglied 65838

Gast
wechsel nicht die szenen sondern gib deiner hauptszene einen plazebo node wie eine Grid pane und von dieser Pane löscht du immer die Childrens und fügst die anderen views hinzu dann hast das problem nicht mehr
Java:
package application;

import java.io.File;
import java.net.MalformedURLException;

import javafx.scene.Node;
import javafx.scene.layout.StackPane;

public class GuiSwitchController {
    private static StackPane rootStackPane = new StackPane();;
    private static MainMenueView mainMenue = new MainMenueView();
    private static DeckMenueView deckMenue = new DeckMenueView();
    public static void setStyles() throws MalformedURLException {
        mainMenue.getStylesheets().add(new File("mainMenueView.css").toURI().toURL().toExternalForm());
        deckMenue.getStylesheets().add(new File("styleDeck.css").toURI().toURL().toExternalForm());
    }
    public static StackPane getRootStackPane() {
        return rootStackPane;
    }
    private static void clearRootStackpane() {
        rootStackPane.getChildren().clear();
    }
  
    public static void exitProgramm() {
        System.exit(0);
        // disconnects from server
    }
    public static void setTheDeckScene() {
        clearRootStackpane();
        rootStackPane.getChildren().add(deckMenue);
    }
    public static void setTheMainScene() {
        clearRootStackpane();
        rootStackPane.getChildren().add(GuiSwitchController.mainMenue);
    }

}
Java:
package application;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Main extends Application {
        public static void main(String[] args) {
            launch(args);
        }
        public void start(Stage sta) throws Exception {
            sta.setScene(new Scene(GuiSwitchController.getRootStackPane()));
            GuiSwitchController.setTheMainScene();
            GuiSwitchController.setStyles();
            sta.setFullScreen(true);
            sta.show();
        }
}
lass dich von der setScene nicht verwirren ich setz da immer layouts ein also Stackpanes im regelfall
 

Neue Themen


Oben