簡體   English   中英

Java jTable列偵聽器

[英]Java jTable column listener

我有一個jtable (Gui布局管理器),其中一列具有boolean值。 您將看到在此列中將出現一個復選框。 一切都很好,但是現在我想擁有一個列單元格事件偵聽器,因此當我按下此復選框時,我將獲得整個行數據的輸出。

現在,我使用jtable.getModel().addTableModelListener獲得了一些成功,但這會影響整個表。

jTabelRooster.getModel().addTableModelListener(
new TableModelListener() {
    public void tableChanged(TableModelEvent evt) {

        String lidnummer = jTabelRooster.getValueAt(evt.getLastRow(), 0).toString();
        int parseLidnummer = Integer.parseInt(lidnummer);
        String lidVoornaam = jTabelRooster.getValueAt(evt.getLastRow(), 1).toString();
        String lidAchternaam = jTabelRooster.getValueAt(evt.getLastRow(), 3).toString();
        Boolean aanwezig = Boolean.parseBoolean(jTabelRooster.getValueAt(evt.getLastRow(), 4).toString());

    }
});

有人可以在這件事上使我死嗎?

為什么不覆蓋表格模型的setValueAt函數呢? 它獲取表模型中的兩個坐標以及用戶輸入的值

class YourTableModel extends YourBaseTableModel
{
    public void setValueAt(Object aValue, int rowIndex, int columnIndex)
    {
        //To keep the default behavior, if you didn't write this method yourself
        super.setValueAt(aValue, rowIndex, columnIndex);
        if(columnIndex == theBooleanColumnIndex)
        {
            //now with rowIndex you can access the underlaying row
        } 
    }
}

現在,我使用jtable.getModel()。addTableModelListener獲得了一些成功,但這會影響整個表。

在包含布爾值的列中偵聽由更改產生的事件:

public void tableChanged(TableModelEvent e)
{
    if (e.getType() == TableModelEvent.UPDATE)
    {
        int column = e.getColumn();

        if (column == ???)
        {
            ...
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM