A JList สามารถขยาย JComponent คลาสที่อนุญาตให้ผู้ใช้เลือกการเลือกเดียวหรือหลายรายการ JList สามารถสร้าง ListSelectiionListener อินเทอร์เฟซและรวมวิธีการที่เป็นนามธรรมหนึ่งวิธี valueChanged() JList สามารถสร้าง MouseListener . ได้ อินเทอร์เฟซเพื่อจับ เหตุการณ์ดับเบิลคลิก i n รายการและสร้าง KeyListener อินเทอร์เฟซเพื่อจับ ป้อนเหตุการณ์สำคัญ .
ตัวอย่าง
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.*;
public class JListTest extends JFrame {
public JListTest() {
setTitle("JList Test");
setLayout(new FlowLayout());
Vector v = new Vector();
for (int i = 1; i < 15; i++) {
v.addElement("Item #" + i);
}
add(new JLabel("Double-clicked on: "));
final JTextField dblTextField = new JTextField(15);
add(dblTextField);
add(new JLabel("Enter key on: "));
final JTextField entTextField = new JTextField(15);
add(entTextField);
final JList list = new JList(v);
// catch double-click events
list.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent me) {
if (me.getClickCount() == 2) {
dblTextField.setText(""+list.getSelectedValue());
}
}
});
// catch enter-key events
list.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent ke) {
if(ke.getKeyCode() == KeyEvent.VK_ENTER) {
entTextField.setText(""+list.getSelectedValue());
}
}
});
add(new JScrollPane(list));
setSize(375, 250);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new JListTest();
}
} ผลลัพธ์
