JTable行选择

geo*_*e b 4 java swing jtable

当我点击JTable上的行时,我需要选择一行.默认行为是按下鼠标时,行被选中.我该如何改变这种行为?我的期望是::

鼠标按下 - >鼠标释放==>已选中

鼠标按下 - >鼠标拖动 - >鼠标释放==>未选中

鼠标单击==>选中行

我想在拖动鼠标时执行其他操作,但不想更改该操作上的上一行选择.

Jig*_*shi 6

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

/**
 *
 * @author Jigar
 */
public class JTableDemo  extends MouseAdapter   {
int selection;


    public static void main(String[] args) throws Exception
    {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        String[] headers = {"A", "B", "C"};
        Object[][] data = {{1, 2, 3}, {4, 5, 6}};
        JTable table = new JTable(data, headers);
        JScrollPane scroll = new JScrollPane();
        scroll.setViewportView(table);
        frame.add(scroll);
        frame.pack();
        frame.setVisible(true);
        table.addMouseListener(new JTableDemo());
        scroll.addMouseListener(new JTableDemo());
    }

    @Override
    public void mousePressed(MouseEvent e)
    {
        JTable jtable = (JTable) e.getSource();
        selection= jtable.getSelectedRow();
        jtable.clearSelection();
    }
    @Override
    public void mouseReleased(MouseEvent e){
        JTable jtable = (JTable) e.getSource();
        //now you need to select the row here check below link
    }



}
Run Code Online (Sandbox Code Playgroud)