[英]mouse double click is not working
我已经编写了这个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)
而不是clicked.getButton()==1
MouseListener
之前,该表可能正在使用MouseEvent
并安装单元格编辑器。 table.setFillsViewportHeight(true);
您可以成功双击行/列之外的内容 您可以更改表的CellEditor
以忽略MouseEvent
(或更改所需的点击次数),这将允许MouseListener
获取双击,但也会增加您的工作量,因为您需要提供CellEditor
for每一列Class
型
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);
没有更多的背景,很难知道还有什么建议
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.