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

对Jtable列进行排序时,JCombo框的排序不起作用

钱劲
2023-03-14

当添加到JTable(包含表单元格中不同的JCombo Box)中的排序器/autoRowSorter用列标题排序时,Jcomo Box不会用相应的行排序。

单击JCombo框可以更改它在显示组合框的模型值而不是视图值(与行相关的值)中结束的数据。

在互联网上找到的例子,用同样的方法来说明问题。我刚刚添加了setAutoCreateRowSorter(真)

代码参考:

如何在Swing中的JTable列中添加不同的JComboBox项——答案如下。

快照:

排序后的数据似乎被改变与各自查看:

但当选择组合框作为选项时,当我们希望有颜色时,会显示“名称”下拉列表:

我确实理解,当排序完成时,使用相应的to view进行映射是不正确的。

共有1个答案

杜辉
2023-03-14

我明白,当排序完成时,相应的视图映射没有正确完成

这就是你需要解决的问题。

基本上,您不能再根据表的行访问编辑器。相反,您需要将表行转换为模型行。

int modelRow = table.convertRowIndexToModel(tableRow);

然后使用modelRow访问编辑器映射。

 类似资料:
  • 问题内容: 我有一个非常简单的JTable,我想按列0升序对其进行排序。代码非常简单。但是它不能正确地对行进行排序。我不知道怎么了。以下是我的代码: 这是我运行程序时的结果 结果: 任何帮助将不胜感激。结果附后。提前致谢。 问题答案: 从DefaultTableModel的文档中: 警告:DefaultTableModel返回Object的列类。当将DefaultTableModel与TableR

  • 问题内容: 我有一个JTable,其属性AutoCreateRowSorter设置为true。单击时效果很好,但如果单击时仅将鼠标移动1px,则不会出现排序,这在某些情况下不舒服。如何解决这个问题? UPD我只想在释放鼠标时显示排序。 问题答案: 肮脏的方法(请阅读: 如果您不是绝对地绝望,请确切地知道自己在做什么!请不要这样做 ),方法是挂接到uiDelegate安装的MouseListener

  • 我试图排序列的. csv文件。这些是列的名称和顺序: 这是我想要的订单: 当前我的代码如下所示: 使用我当前的代码,我得到以下列顺序的结果: 所以我已经想出了我必须传递一个函数给排序函数来指定我希望它如何排序,但是我找不到一个函数来做这件事。 非常感谢您的任何意见!

  • 问题内容: 我已经弄清楚了如何正确地对a 进行排序,但是当表单元发生更改时,我无法弄清楚如何自动更新排序顺序。现在,我有这段代码(很长),主要是基于Java教程的How to Use Tables中的代码 。我强调了我所做的更改。在这种情况下,新添加的值可以正确排序,但是当我进入编辑值时,即使我打电话给我,它似乎也没有采取任何措施。 简而言之,当模型中的数据值更改时,如何使表重新排序? 问题答案:

  • 我花了几天的时间来尝试正确地进行JTable排序。我知道我必须使用的代码,但似乎不能得到它‘适合’和工作到我的代码。我从数据库获取TableModel数据,因此如果在初始化模型时调用getColumnClass(),我会得到一个NullPointerException(当然),但似乎无法让getColumnClass(int)在其他任何地方(如model.getColumnClass(column

  • 问题内容: 有没有办法以编程方式对JTable进行排序? 我的JTable排序工作正常(使用setRowSorter),以便当用户按任意列时,表将被排序。 我知道,SWingX JXTable可能可以工作,但我不想麻烦,因为其他所有事情现在都可以正常工作,而且我不知道NetBeans的可视化编辑器如何处理JXTable等。 编辑: 选定的答案是指我的声明(现已删除),该声明对Sun的页面的答案不起