[英]Java Jtable error with setting a value to a column after listener runs
[英]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.