我有一个显示数据库结果的JTable
for(VoertuigenModel m : vModel.selectVoertuigen())
{
if(m.getStatus().equals("Beschikbaar"))
{
tableModelVoertuigen.addRow(new Object[]{
m.getMerk(),
m.getType(),
m.getKleur(),
m.getStatus(),
m.getId()
});
}
}
看起来像这样
现在如何从选定的行中获取AUTO-ID?
例如,我想选择第3行,然后我想在变量中设置'4'。
答案 0 :(得分:1)
现在如何从选定的行中获取AUTO-ID?
使用ListSelectionListener
JTable
添加到SelectionModel()
addListSelectionListener
在选择事件上,使用table.getSelectedRow()
获取表格视图的选定行索引。选择数据实际上描述了"view"
中的选定单元格(任何排序或过滤后出现的表格数据),而不是表格模型中的选定单元格。在对列进行排序,过滤或用户操作时,必须使用JTable
的转换方法转换选择坐标:
convertRowIndexToModel(row)
:将行的索引映射到基础TableModel
convertColumnIndexToModel(column)
:将列索引视图映射到基础TableModel
在getColumnIndex("AUTO-ID")
的列模型上调用JTable
获取列索引
table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
int row = table.convertRowIndexToModel(table.getSelectedRow());
int col = table.getColumnModel().getColumnIndex("AUTO-ID");
int auto_id = (Integer) table.getModel().getValueAt(row, col);
// assuming that `m.getId()` is returning `int`
//while adding with addRow() function
}
});
注意::当您选择多行并想要使用它们时,请使用JTable
{{1}}的功能。