Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความแตกต่างระหว่าง JComboBox และ JList ใน Java

JComboBox แสดง Drop-down list ให้เลือก เพียง 1 รายการในเวลาเดียวกัน ในขณะที่ JList แสดง หลายรายการ (หลายแถว) และให้เลือก หลายรายการพร้อมกัน ได้

JComboBox

  • JComboBox เป็น Editable หรือ Read-only
  • ใช้ ActionListener, ChangeListener, ItemListener จัดการการกระทำของผู้ใช้
  • เมธอด getSelectedItem() ดึงรายการที่เลือกหรือพิมพ์
  • เมธอด setEditable() เปิด/ปิดการป้อนข้อความ
  • สร้าง JComboBox จาก Array หรือ Vector ใช้ ComboBoxModel จัดการ Element

ตัวอย่าง JComboBox

import java.awt.*;
import javax.swing.*;

public class JComboBoxTest extends JFrame {
    JComboBoxTest() {
        setTitle("JComboBox Test");
        String country[] = {"India", "Aus", "Singapore", "England", "Newzealand"};
        JComboBox jcb = new JComboBox(country);
        setLayout(new FlowLayout());
        add(jcb);
        setSize(300, 250);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }

    public static void main(String[] args) {
        new JComboBoxTest();
    }
}

ผลลัพธ์

ความแตกต่างระหว่าง JComboBox และ JList ใน Java

JList

  • JList ให้ผู้ใช้เลือก Single Selection หรือ Multiple Selections
  • JList เองไม่รองรับ Scrollbar ใช้ JScrollPane ร่วมกับ JList JScrollPane จัดการ Scrollbar อัตโนมัติ
  • getSelectedIndex() คืนดัชนีรายการแรกที่เลือก หรือ -1 ถ้าไม่เลือก getSelectedIndexes() คืนอาร์เรย์ดัชนีทุกตัวที่เลือก
  • getSelectedValue() คืนรายการแรกที่เลือก หรือ null ถ้าไม่เลือก
  • DefaultListModel ให้การ implement ง่ายสำหรับจัดการ Item ใน JList

ตัวอย่าง JList

import java.awt.*;
import javax.swing.*;

public class JListTest extends JFrame {
    JListTest() {
        setTitle("JList Test");
        DefaultListModel dlm = new DefaultListModel();
        dlm.addElement("India");
        dlm.addElement("Aus");
        dlm.addElement("England");
        dlm.addElement("Singapore");
        JList list = new JList();
        list.setModel(dlm);
        setLayout(new FlowLayout());
        add(list);
        setSize(350, 275);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }

    public static void main(String args[]) {
        new JListTest();
    }
}

ผลลัพธ์

ความแตกต่างระหว่าง JComboBox และ JList ใน Java