Java 鼠标双击不起作用

Java 鼠标双击不起作用,java,swing,jtable,mouselistener,Java,Swing,Jtable,Mouselistener,我写了这个java代码来检测鼠标左键的双击,但是这个代码不起作用,请帮助 import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; public class B extends MouseAdapter { JFrame frame

我写了这个java代码来检测鼠标左键的双击,但是这个代码不起作用,请帮助

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;

public class B extends MouseAdapter {

    JFrame frame = new JFrame();
    Object rows[][] = new Object[5][3];
    String colums[] = {"A","B","C"};
    JTable table = new JTable(rows,colums);
    JScrollPane scroll = new JScrollPane(table);

    public static void main(String arg[]) {
        new B();
    }

    B() {
        frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
        table.addMouseListener(this);
        frame.add(scroll);
        frame.setVisible(true);
    }

    public void mouseClicked(MouseEvent clicked) {
        if(clicked.getSource()==table && clicked.getButton()==1 && clicked.getClickCount()==2)
            System.out.println("Left Double Click");
    }
}
  • 您的示例无法编译
  • 您应该使用
    SwingUtilities.isLeftMouseButton(单击)
    而不是
    clicked.getButton()==1
  • 表格可能正在使用
    MouseEvent
    并在通知
    mouseestener
    之前安装单元格编辑器
  • 如果使用
    table.setFillsViewPerThight(true)可以在行/列外部成功双击
  • 您可以更改表格的
    CellEditor
    s以忽略
    MouseeEvent
    (或更改所需的点击次数),这将允许
    MouseListener
    拾取双击,但也会增加您的工作负载,因为您需要为每个列
    Class
    类型提供
    CellEditor

        TableCellEditor editor = new DefaultCellEditor(new JTextField(10)) {
    
            @Override
            public boolean isCellEditable(EventObject anEvent) {
                boolean editable = false;
                if (!(anEvent instanceof MouseEvent)) {
                    editable = super.isCellEditable(anEvent);
                }
                return editable;
            }
    
        };
    
        table.setDefaultEditor(Object.class, editor);
    

    如果没有更多的上下文,很难知道还有什么可以建议的

    它到底是如何不起作用的?我想“左双击”不会出现。您的示例不会编译可能的副本