Rumah >Java >javaTutorial >Bolehkah Anda Menyelesaikan Had Invocation launch() JavaFX?
Kaedah JavaFX launch() , seperti namanya, memulakan antara muka pengguna grafik (GUI) aplikasi. Walau bagaimanapun, kaedah pelancaran() mengenakan kekangan yang ketat: ia tidak boleh dipanggil lebih daripada sekali. Sebarang percubaan seterusnya untuk menggunakan pelancaran() akan menghasilkan IllegalStateException.
Sekatan ini berpunca daripada sifat selamat thread asas JavaFX. Setelah GUI aplikasi dimulakan, adalah penting untuk mengekalkan keselamatan benang sepanjang hayat aplikasi. Memanggil pelancaran() berkali-kali akan menjejaskan keselamatan urutan ini, yang membawa kepada gelagat yang tidak dijangka atau malah ranap aplikasi.
Walaupun terhad pada beberapa seruan pelancaran(), terdapat penyelesaian praktikal untuk aplikasi yang perlu memaparkan tetingkap GUI secara berkala.
Contoh Pelaksanaan
Kod berikut merangkumi strategi yang digariskan di atas:
<code class="java">public class RendezvousApplication extends Application { // Singleton JavaFX component private static Scene primaryScene; @Override public void start(Stage primaryStage) throws Exception { // Initialize primaryScene on first launch if (primaryScene == null) { primaryScene = createScene(); } // Attach scene to Stage primaryStage.setScene(primaryScene); primaryStage.show(); } private Scene createScene() { return new Scene(new Label("Rendezvous Window"), 400, 300); } // Called when GUI is closed @Override public void stop() throws Exception { super.stop(); Platform.setImplicitExit(false); } // Launch GUI from another thread public static void displayWindow() { Platform.runLater(() -> { if (primaryScene == null) { launch(RendezvousApplication.class); } else { Stage newStage = new Stage(); newStage.setScene(primaryScene); newStage.show(); } }); } }</code>
Kod ini menunjukkan cara untuk memastikan masa jalan JavaFX hidup, membolehkan anda memaparkan tetingkap daripada urutan yang berbeza tanpa memerlukan beberapa invokasi pelancaran().
Walaupun kaedah pelancaran JavaFX() mempunyai hadnya, memahami bagaimana untuk mengatasi had ini adalah penting untuk membina aplikasi JavaFX yang teguh dan berskala.
Atas ialah kandungan terperinci Bolehkah Anda Menyelesaikan Had Invocation launch() JavaFX?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!