使用单击事件隐藏JTable行[java]

时间:2013-07-17 20:03:33

标签: java swing jtable jbutton actionlistener

我有像这样的JTable

enter image description here

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

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

之一:

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

2:

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

我必须在哪里以及如何更改以实现此目的。或者任何其他可以帮助我的实现细节。谢谢

2 个答案:

答案 0 :(得分: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,而只是一个被绘制成看起来像的按钮。即使你附加了一个监听器,当你点击它时它仍然无法工作。

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

答案 1 :(得分:1)

Table Button Column显示了一种将ActionListener添加到表的列的方法。