有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从一行中获取id

我有一个显示数据库结果的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()
                });
            }
        }

这个看起来像这样

Jtable example

现在,如何从选中的行中获取自动ID

例如,我想选择第三行,然后在变量中设置“4”


共 (1) 个答案

  1. # 1 楼答案

    Now How can I get the AUTO-ID when from a row that is selected?

    • 使用addListSelectionListener

    • 在选择事件中,使用table.getSelectedRow()获取表视图的选定行索引。选择数据实际上是在"view"(任何排序或筛选后出现的表格数据)而不是在表格模型中描述选定的单元格。在对列进行排序、筛选或用户操作时,必须使用JTable的转换方法转换选择坐标:

      1. convertRowIndexToModel(row):将视图的行索引映射到底层TableModel
      2. convertColumnIndexToModel(column):将视图的列索引映射到底层TableModel
    • 通过调用JTable的列模型上的getColumnIndex("AUTO-ID")来获取列索引

       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^{}功能