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

วิธีจับเหตุการณ์ดับเบิลคลิกและปุ่ม Enter สำหรับ JList ใน Java

JList ขยายจาก JComponent อนุญาตให้ผู้ใช้เลือกได้ทั้ง เดี่ยว หรือ หลายรายการ JList สร้าง ListSelectionListener ที่มีเมธอด abstract valueChanged() JList ยังสร้าง MouseListener เพื่อจับ เหตุการณ์ดับเบิลคลิก และ KeyListener เพื่อจับ เหตุการณ์ปุ่ม Enter

ตัวอย่างโค้ด

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);

        // จับเหตุการณ์ดับเบิลคลิก
        list.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent me) {
                if (me.getClickCount() == 2) {
                    dblTextField.setText("" + list.getSelectedValue());
                }
            }
        });

        // จับเหตุการณ์ปุ่ม Enter
        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();
    }
}

ผลลัพธ์

วิธีจับเหตุการณ์ดับเบิลคลิกและปุ่ม Enter สำหรับ JList ใน Java