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

วิธีตรวจจับ Double Click Event ของ JTable Row ใน Java

JTable เป็น subclass ของ JComponent สำหรับแสดงโครงสร้างข้อมูลซับซ้อน JTable ปฏิบัติตาม Model View Controller (MVC) design pattern แสดงข้อมูลใน rows และ columns JTable สร้าง TableModelListener, TableColumnModelListener, ListSelectionListener, CellEditorListener และ RowSorterListener interfaces เราสามารถตรวจจับ double click events ของ JTable ได้โดยใช้ MouseAdapter class หรือ MouseListener interface ตั้งค่า getClickCount() เป็น '2' ของ MouseEvent เพื่อตรวจจับ double click events ของ JTable

ตัวอย่าง

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

public final class DoublClickJTableRowTest extends JFrame {
    private JTable table;
    private JScrollPane scrollPane;

    public DoublClickJTableRowTest() {
        setTitle("DoublClickJTableRow Test");
        String[] columnNames = {"First Name", "Last Name"};
        Object[][] data = {{"Raja", "Ramesh"}, {"Adithya", "Sai"}, {"Vineet", "Kumar"}, {"Krishna", "Kasyap"}};
        table = new JTable(data, columnNames) {
            public boolean editCellAt(int row, int column, java.util.EventObject e) {
                return false;
            }
        };
        table.setFocusable(false);
        table.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent me) {
                if (me.getClickCount() == 2) { // ตรวจจับ double click events
                    JTable target = (JTable) me.getSource();
                    int row = target.getSelectedRow(); // เลือก row
                    int column = target.getSelectedColumn(); // เลือก column
                    JOptionPane.showMessageDialog(null, table.getValueAt(row, column)); // ดึงค่า row และ column
                }
            }
        });
        scrollPane = new JScrollPane(table);
        add(scrollPane);
        setSize(375, 250);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setVisible(true);
    }

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

Output

วิธีตรวจจับ Double Click Event ของ JTable Row ใน Java