当前位置: 首页 > 知识库问答 >
问题:

搜索Jtable时未获得正确的id

方宁
2023-03-14

所以我试图在搜索一个名字后,点击该表,然后在其他表中编辑它,问题是我没有得到正确的id,而是只得到了前面的id。

JTable

行动中的搜索

Id错误

编辑代码

 int linha = this.jTable1.getSelectedRow();
            int idUtilizador = Integer.parseInt((String)(this.jTable1.getModel() ).getValueAt(linha, 0));
            
            Utilizador uti = UtilizadorJpaController.read(idUtilizador);
    
            CriarCliente updateCliente = new CriarCliente(uti);
    
            updateCliente.setVisible(true);

搜索代码

DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
       
       TableRowSorter<DefaultTableModel> tr = new TableRowSorter<DefaultTableModel>  (model);
        jTable1.setRowSorter(tr);
        
        tr.setRowFilter(RowFilter.regexFilter(jTextField1.getText().trim(),1))

共有1个答案

长孙承嗣
2023-03-14

排序或筛选表时,TableModel中的数据不会更改。仅更改数据的视图。

如果您想从模型中获取数据,那么您需要将“视图行”转换为“模型行”:

int linha = this.jTable1.getSelectedRow();
int modelRow = jTable1.convertRowIndexToModel(linha);
int idUtilizador = Integer.parseInt((String)(this.jTable1.getModel() ).getValueAt(modelRow, 0));
//int idUtilizador = Integer.parseInt((String)(this.jTable1.getModel() ).getValueAt(linha, 0));

还有,为什么要使用Integer.ParseInt(...)?如果模型中的数据是一个整数值,那么它应该存储为一个整数值,而不是一个字符串值。

 类似资料:
  • 通过单击Experiment Parameters选项卡中的一个按钮(参见下面的屏幕截图),我创建并运行一个“PreviewAction”,它创建了一个新的选项卡,并用必要的组件填充它。下面是的代码。编辑:我还发布了一个自包含的最小版本,它模拟了真实项目中的条件,并展示了相同的行为。 这里至少存在两个问题: (或)根本不呈现 没有框架本身那么宽,我不知道为什么 我在挥杆方面不是很好,所以我可能错过

  • 请给我一些灯。下面是我的代码:

  • 问题内容: 我已经多次重温了这个问题,但我从未真正找到合适的答案。 是否可以执行MySQL搜索,以按相关性返回ACTUAL准确排序的结果? 我试图创建一个ajax搜索表单,当用户在输入字段中键入内容时提出建议,并且仅使用纯MySQL查询还没有找到合适的解决方案。我知道有可用的搜索服务器,例如ElasticSearch,我想知道如何仅使用原始MySQL查询来实现。 我有一张学校科目表。少于1200行

  • 问题内容: 是否有一种简单的方法来获取当前操作系统使用的行尾类型? 问题答案: 如果您对以文本模式打开的文件进行操作,那么正确的是所有换行符都显示为“ ”。否则,您正在寻找。 从http://docs.python.org/library/os.html: os。 Lineep 在当前平台上用于分隔(或终止)行的字符串。这可以是单个字符,例如对于POSIX是’\ n’,也可以是多个字符,例如对于W

  • 我正在尝试单元测试我的类,它看起来像:- 我想在类B中模拟“method2()”。我知道我们需要有一个B()的mock对象,这样每当我们调用它的方法时,就会发生模拟。这是我试过的 并使用调用它,现在的主要问题是method2被嘲弄了(即method2()的主体没有被执行),但我无法接收C的对象作为响应。 我的测试场景是:- 我想测试类A的method1(),它反过来调用类B的method2(),但

  • 我正在尝试使用endpoint Flight低价搜索,我意识到它没有按maxPrice正确过滤。 例如,以maxPrice=100到达下一个endpoint。 https://test.api.amadeus.com/v1/shopping/flight-offers?origin=MAD 我得到了以下结果,因此我认为有一个错误: