JList mở rộng JComponent cho phép người dùng chọn một hoặc nhiều mục. JList tạo giao diện ListSelectionListener với phương thức trừu tượng valueChanged(). JList cũng tạo giao diện MouseListener để bắt sự kiện double click và KeyListener để bắt sự kiện phím Enter.
Ví dụ
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();
}
}
Kết quả
