cari
RumahJavajavaTutorialBagaimana untuk Mengelakkan `IllegalStateException` Apabila Menggunakan Thread untuk Permintaan Pangkalan Data dalam JavaFX?

How to Avoid `IllegalStateException` When Using Threads for Database Requests in JavaFX?

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:

  1. Peraturan 1: Sebarang kod yang berinteraksi dengan keadaan graf tempat kejadian mesti dilaksanakan pada Urutan aplikasi JavaFX.
  2. 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:

  1. Cipta pelaksanaan Runnable untuk merangkum permintaan pangkalan data.
  2. 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!

Kenyataan
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

SecLists

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

Dreamweaver CS6

Alat pembangunan web visual

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa