Rumah > Java > javaTutorial > Bagaimana untuk Mencipta Berbilang Windows JavaFX tanpa Mengingat pelancaran()?

Bagaimana untuk Mencipta Berbilang Windows JavaFX tanpa Mengingat pelancaran()?

Mary-Kate Olsen
Lepaskan: 2024-10-24 06:19:01
asal
516 orang telah melayarinya

How to Create Multiple JavaFX Windows without Recalling launch()?

Cara Memanggil pelancaran() Lebih Daripada Sekali dalam Java

Kaedah pelancaran aplikasi JavaFX, launch(), direka untuk dipanggil sekali sahaja setiap permohonan. Percubaan untuk memanggil pelancaran() lebih daripada sekali mengakibatkan ralat "IllegalStateException".

Penyelesaian: Bungkus Penciptaan Tetingkap Seterusnya dalam Platform.runLater()

Daripada memanggil launch() beberapa kali, pertimbangkan pendekatan berikut:

  1. Panggil launch() sekali untuk memulakan masa jalan JavaFX dan mencipta tetingkap utama.
  2. Pastikan masa jalan JavaFX berjalan di latar belakang menggunakan Platform.setImplicitExit(false). Ini menghalang JavaFX daripada ditutup secara automatik apabila tetingkap utama ditutup.
  3. Apabila anda perlu memaparkan tetingkap baharu, balut penciptaan dan paparannya dalam blok Platform.runLater(). Ini memastikan bahawa operasi JavaFX dilaksanakan pada urutan aplikasi.

Kod Contoh:

<code class="java">public class Wumpus extends Application {
    private static final Insets SAFETY_ZONE = new Insets(10);
    private Label cowerInFear = new Label();
    private Stage mainStage;

    @Override
    public void start(final Stage stage) {
        mainStage = stage;
        mainStage.setAlwaysOnTop(true);
        Platform.setImplicitExit(false);
        cowerInFear.setPadding(SAFETY_ZONE);

        cowerInFear.setOnMouseClicked(event -> Platform.exit());
        stage.setScene(new Scene(cowerInFear));
    }

    public static void main(String[] args) {
        launch(args);

        // Another window can be created here by wrapping its creation
        // and display in a Platform.runLater() block.
        Platform.runLater(() -> {
            Stage newStage = new Stage();
            newStage.setScene(new Scene(new Label("Another Window")));
            newStage.show();
        });
    }
}</code>
Salin selepas log masuk

Nota:

  • Kelas Wumpus di atas menunjukkan pendekatan dengan aplikasi JavaFX tersuai.
  • Untuk digunakan dengan komponen Swing, JFXPanel boleh digunakan dan bukannya Aplikasi.
  • Platform Panggilan. exit() akan menamatkan masa jalan JavaFX, jadi adalah penting untuk memanggil kaedah ini apabila semua operasi JavaFX selesai.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Berbilang Windows JavaFX tanpa Mengingat pelancaran()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan