


Menggunakan Thread untuk Melaksanakan Permintaan Pangkalan Data
Dalam JavaFX, adalah penting untuk mematuhi peraturan threading khusus untuk memastikan responsif dan konsistensi UI. Ini melibatkan pelaksanaan tugas yang sudah lama berjalan, seperti permintaan pangkalan data, pada urutan latar belakang dan mengemas kini UI pada urutan aplikasi JavaFX.
Peraturan Threading:
- Peraturan 1: Sebarang kod yang berinteraksi dengan keadaan graf tempat kejadian mesti dilaksanakan pada Urutan aplikasi JavaFX.
- Peraturan 2: Operasi jangka panjang harus dilaksanakan pada urutan latar belakang.
Isu PengecualianNegeri Tidak Sah:
IllegalStateException yang anda temui adalah kerana anda cuba mengemas kini label courseCodeLbl daripada urutan latar belakang, melanggar Peraturan 1.
Pelaksanaan Betul:
Untuk melaksanakan penjalinan dengan betul, ikut langkah berikut:
- Cipta pelaksanaan Runnable untuk merangkum permintaan pangkalan data.
- Gunakan Kaedah Platform.runLater() untuk menjadualkan kemas kini UI untuk urutan aplikasi JavaFX.
Menggunakan API javafx.concurrent:
JavaFX menyediakan API javafx.concurrent untuk memudahkan pengaturcaraan serentak dan pengurusan UI. Kelas Tugas adalah pusat kepada API ini, menyediakan mekanisme untuk pemprosesan latar belakang dan mengemas kini UI.
Kod Contoh:
Berikut ialah contoh kelas Pengawal yang menunjukkan yang betul penggunaan threading dan kelas Tugas:
import javafx.concurrent.Task; import javafx.fxml.FXML; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.TextField; public class Controller { @FXML private Button getCourseBtn; @FXML private TextField courseId; @FXML private Label courseCodeLbl; private ModelController mController; public void getCourseNameOnClick() { Task<string> courseTask = new Task() { @Override protected String call() { String courseName = ""; Course c = new Course(); c.setCCode(Integer.valueOf(courseId.getText())); mController = new ModelController(c); try { ResultSet rs = mController.getResult(); if (rs.next()) { courseName = rs.getString(1); } } catch (Exception e) { throw new RuntimeException(e); } return courseName; } }; courseTask.setOnSucceeded(e -> Platform.runLater(() -> courseCodeLbl.setText(courseTask.getValue()))); new Thread(courseTask).start(); } }</string>
Kod ini merangkumi permintaan pangkalan data dalam Tugasan, yang mengendalikan menjalankan pertanyaan dan mengemas kini UI pada utas aplikasi JavaFX. Dengan mematuhi peraturan penjalinan JavaFX dan menggunakan API, anda boleh melaksanakan permintaan pangkalan data dengan cekap sambil mengekalkan responsif UI.
Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan `IllegalStateException` Apabila Menggunakan Thread untuk Permintaan Pangkalan Data dalam JavaFX?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

Dreamweaver CS6
Alat pembangunan web visual

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa