Как переключаться между окнами в javafx?

Пользователь

от caterina , в категории: Java , год назад

Как переключаться между окнами в javafx?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kurt , год назад

@caterina 

Пользователь

от josie , 10 месяцев назад

@caterina 

В JavaFX можно переключаться между окнами, используя класс Stage и его методы show() и hide().


При создании нового окна, необходимо создать новый объект класса Stage и установить для него сцену (Scene), содержащую содержимое нового окна. Затем вызывается метод show() для отображения нового окна.


Для скрытия текущего окна можно вызвать метод hide() для объекта Stage текущего окна. Таким образом, старое окно будет скрыто, а новое окно будет отображено.


Пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class WindowSwitchingApp extends Application {
    
    private Stage mainWindow;
    private Stage secondWindow;
    
    public static void main(String[] args) {
        launch(args);
    }
    
    @Override
    public void start(Stage primaryStage) throws Exception {
        mainWindow = primaryStage;
        secondWindow = new Stage();
        
        Button switchButton = new Button("Switch Windows");
        switchButton.setOnAction(e -> switchWindows());
        
        StackPane mainLayout = new StackPane(switchButton);
        Scene mainScene = new Scene(mainLayout, 200, 200);
        mainWindow.setScene(mainScene);
        
        StackPane secondLayout = new StackPane(new Button("Second Window"));
        Scene secondScene = new Scene(secondLayout, 200, 200);
        secondWindow.setScene(secondScene);
        
        mainWindow.show(); // отображаем главное окно
    }
    
    private void switchWindows() {
        mainWindow.hide(); // скрываем главное окно
        secondWindow.show(); // отображаем второе окно
    }
}


В этом примере при клике на кнопку "Switch Windows" главное окно будет скрыто, а второе окно будет отображено.