Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Mencipta JComboBox yang Dipenduduki Secara Dinamik di Jawa?

Bagaimanakah Saya Boleh Mencipta JComboBox yang Dipenduduki Secara Dinamik di Jawa?

Linda Hamilton
Linda Hamiltonasal
2024-12-13 18:09:11688semak imbas

How Can I Create Dynamically Populated JComboBoxes in Java?

JComboBoxes Interaktif untuk Paparan Data Dinamik

Dalam senario pengaturcaraan ini, anda dibentangkan dengan set data berstruktur kursus dan pilihan yang sepadan dengannya . Matlamat anda adalah untuk mencipta dua JComboBoxes yang membolehkan populasi dinamik pilihan berdasarkan pemilihan yang dibuat dalam JComboBox pertama.

Pelaksanaan ComboBox Dinamik

Untuk mencapai ini, anda' Saya perlu menggunakan DefaultComboBoxModel untuk setiap set pilihan. Apabila pengguna memilih item daripada JComboBox pertama (JComboBox1), anda akan menetapkan model untuk JComboBox kedua (JComboBox2) agar sepadan dengan pilihan yang dipilih.

Contoh Pelaksanaan

Pertimbangkan kod Java berikut, yang menunjukkan pelaksanaan ini:

import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class ComboTest extends JPanel implements ActionListener, Runnable {
    // Create JComboBoxes and ComboBoxModels
    private final JComboBox combo1 = new JComboBox(new String[]{"Course 1", "Course 2", "Course 3"});
    private final JComboBox combo2 = new JComboBox();
    private ComboBoxModel[] models = new ComboBoxModel[3];

    public ComboTest() {
        // Initialize ComboBoxModels with corresponding data
        models[0] = new DefaultComboBoxModel(new String[]{"A1", "A2"});
        models[1] = new DefaultComboBoxModel(new String[]{"B1", "B2", "B3", "B4"});
        models[2] = new DefaultComboBoxModel(new String[]{"C1", "C2"});

        // Set initial model for combo2
        combo2.setModel(models[0]);
        this.add(combo1);
        this.add(combo2);
        // Add action listener to listen for selections in combo1
        combo1.addActionListener(this);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // Get the selected index in combo1
        int i = combo1.getSelectedIndex();
        // Update the model in combo2 with the corresponding model
        combo2.setModel(models[i]);
    }

    // Main method for initializing the GUI
    @Override
    public void run() {
        JFrame f = new JFrame("ComboTest");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.add(this);
        f.pack();
        f.setLocationRelativeTo(null);
        f.setVisible(true);
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new ComboTest());
    }
}

Oleh melaksanakan pendekatan ini, anda boleh mengisi kotak kombo secara dinamik dan memberikan pengalaman pengguna interaktif untuk memilih pilihan data.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta JComboBox yang Dipenduduki Secara Dinamik di Jawa?. 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