【问题标题】:Mouse Click on JTable鼠标点击 JTable
【发布时间】:2012-01-13 15:46:00
【问题描述】:

我有一堆使用 Jtable 在网格中显示数据的代码。我需要捕获鼠标双击事件。但是有些这个简单的代码只是在网格的标题上工作,而不是在那个网格的行上工作。有什么线索吗?还有一件事,网格也是可编辑的。

谢谢。

问候。 马尼什

【问题讨论】:

  • 这个简单的代码:哪个简单的代码?
  • “任何线索”是什么意思?您昨天在交叉发布的问题中给出了这种行为的原因。

标签: java swing jtable listener


【解决方案1】:

您的一些代码会有所帮助。你在做类似的事情吗?

table.getTableHeader().addMouseListener(new MouseAdapter() {

    @Override
    public void mouseClicked(MouseEvent event) {
        if (e.getClickCount() == 2 && !e.isConsumed()) {
        e.consume();
        // handle double click here
    }

});

【讨论】:

  • 感谢您的回复,代码在不可编辑的行上运行良好。但是我怎样才能对可编辑行做同样的事情呢?
【解决方案2】:

你可以这样做

class ButtonEditor extends DefaultCellEditor {
  protected JButton button;

  private String label;

  private boolean isPushed;

  public ButtonEditor(JCheckBox checkBox) {
    super(checkBox);
    button = new JButton();
    button.setOpaque(true);
    button.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        fireEditingStopped();
      }
    });
  }

在这里您可以提供任何组件而不是按钮。 参考full example

【讨论】:

    猜你喜欢
    • 2012-05-14
    • 1970-01-01
    • 2016-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-31
    • 2014-01-15
    相关资源
    最近更新 更多