【问题标题】:Double click JTable双击 JTable
【发布时间】:2015-02-09 17:51:57
【问题描述】:

我的 JTable 中的单元格仅在第二次单击时才可编辑。当我调试时,我注意到第二次单击鼠标释放事件没有被触发。我看到了很多关于创建 setSingleClick(1) 的问题的答案......但它不起作用。我认为,如果我能让第二个 mouseReleased 事件着火,我也许可以让它工作。有人有什么建议吗?

table.addMouseListener(new TableMouseListener()) ;
class TableMouseListener extends MouseAdapter{
        public void mousePressed(MouseEvent e) {
         System.out.println("mousePressed");
        }
        public void mouseClicked(MouseEvent e) {
            System.out.println("mouseClicked"); 
        }
       public void mouseReleased(MouseEvent e) {
          System.out.println("mouseReleased");
       }
}

【问题讨论】:

  • TableCellEditor的点击次数参数可设置,默认为两次点击
  • MouseEvent 上的 getClickCount() 是否没有为您提供所需的信息?
  • 我认为 getClickCount() 返回经典的双击。在我的情况下,我可以点击等待一段时间,只有当我再次点击时,单元格才会变为可编辑
  • 可能类似于 "((DefaultCellEditor)table.getCellEditor()).setClickCountToStart(1)" 那么?

标签: java swing jtable mouselistener tablecelleditor


【解决方案1】:

试试这样的:

container_table.addMouseListener(new MouseAdapter() {

        public void mouseClicked (MouseEvent me) {
            if (me.getClickCount() == 2) {
                //Double clicked
            }
        }
    });

这样,你就知道'container_table'被点击了两次,然后你就可以得到选中的行,用它来做事。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2016-07-27
    • 2020-05-23
    • 2015-01-17
    • 2013-02-12
    • 2013-01-28
    • 2020-07-21
    • 2011-08-01
    • 1970-01-01
    • 2012-01-25
    相关资源
    最近更新 更多