0

我有这样的 JTable

在此处输入图像描述

每当按下相应的清除按钮(JButton)时,我想隐藏该行。并执行其他任务,例如从 mysql 中删除该行,因为该表已填充表单数据库。

因为我有两个覆盖功能:-

一:

   public Component getTableCellRendererComponent(JTable table, Object value,
        boolean isSelected, boolean hasFocus, int row, int column) 

二:

  public Component getTableCellEditorComponent(JTable table, Object value,
  boolean isSelected, int row, int column) 

我必须在哪里以及如何更改才能实现这一点。或任何其他对我有帮助的实现细节。谢谢

4

2 回答 2

1

表按钮列显示了一种将 ActionListener 添加到表列的方法。

于 2013-07-17T21:00:56.907 回答
1

所以基本上你想要JButton从你的TableModel. 您没有显示任何相关代码,或者TableModel您有什么类型的代码,但通常:

- 编写监听器,它需要一种访问模型的方法

class MyListener
    implements ActionListener
{
    private TableModel model;

    public MyListener( TableModel m )
    {
        this.model = m;
    }

    public void actionPerformed( ActionEvent e )
    {
        // do something to this.model
    }
}

- 将其附加到您的按钮上

button.addActionListener( new MyListener(myModel) );

-最后,请意识到您在表格中看到的不是功能齐全的 JButton,而只是一个绘制成看起来像按钮的单元格。当你点击它时它仍然不起作用,即使你附加了一个监听器。

您需要解决最后一个问题。有许多不同的方法,其中许多都在这个线程中列出。最基本的是劫持单元格编辑器让它将鼠标事件转发给JButton,这就是我过去所做的。链接线程中还有一些其他选项。祝你好运。

于 2013-07-17T20:45:20.673 回答