JTable表头排序后,row获取错乱的问题解决
——我一直不太信任自己的记忆力,所以我把它们都写下来
昨天客户说单据需要排序功能,然后我就给jtable加了这个方法table.setAutoCreateRowSorter(true);
这个方法表明启用单击表头排序的功能。如果你只是需要排序显示,而不需要获取某一行的数据,到这一步已经可以实现了排序的功能。运行程序,单击表头,可以看到自动排序了。
但是我进行的这个功能是需要在单击某一行数据后获取这行数据的,然后发现获取到的数据完全错乱了。我以前是这么获取row数据的
table.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { super.mouseClicked(e); int row = table.getSelectedRow(); //获得行位置 table.setRowSelectionInterval(row, row);//高亮显示 Entity entity= list.get(row);//entity是我自己的实体,渲染row } });
修改方法只需要将row转换下即可,最后一行改成如下:
Entity entity = list.get(table.convertRowIndexToModel(row))
相关推荐
在某些情况下,我们可能需要合并`JTable`的表头,以更好地组织和呈现信息。例如,当表格的数据有多个层次或者需要表示复杂的分类时,表头合并就显得尤为必要。本文将深入探讨如何实现`JTable`的表头合并,并提供相关...
本文将深入探讨如何解决`JTable`的排序问题,以便用户可以按需对表格数据进行升序或降序排列。 首先,`JTable` 的排序问题可以通过引入`TableSorter` 类来解决。`TableSorter` 是一个装饰器模式的实现,它扩展了`...
它提供了丰富的功能,如排序、选择和编辑。然而,`JTable`默认并不支持行间的拖放(Drag and Drop, DnD)操作。本文将详细介绍如何通过一种简单的方法,为`JTable`添加行间拖拽功能,而无需对已有代码进行大规模修改...
**jTable是Java Swing库中的一个组件,用于在应用程序中展示和操作表格数据。它提供了丰富的功能,包括数据编辑、排序...在实际开发中,根据项目需求进行适当的定制和扩展,将使jTable成为解决数据管理问题的有效工具。
使用`getTableHeader()`获取表头组件,可调整列宽或自定义表头渲染器。 8. **功能增强** `JTable`提供了多选模式,通过`setRowSelectionAllowed()`和`setColumnSelectionAllowed()`开启。`setSelectionMode()`...
- 使用`(jTable.getModel().getValueAt(jTable.getSelectedRow(), 0)).toString();`获取选中行的第一列数据。 - 可以根据具体需求选择其他列的数据。 #### 四、扩展与注意事项 1. **异常处理**: - 示例代码中...
JTable可以动态地调整大小,用户可以滚动查看超出视口的数据,并且支持排序、选择行和列以及编辑单元格内容。 1. **JTable的构造** - JTable():创建一个空的表格。 - JTable(Object[][] rowData, Object[] ...
Java JTable 是Java Swing库中的一个核心组件,用于在GUI应用程序中展示表格数据。它提供了丰富的功能,使得用户可以查看、编辑和操作二维数据集。在这个主题中,我们将深入探讨JTable的使用,包括它的基本概念、...
`JTable`通常与`DefaultTableModel`一起使用,后者负责管理表格的数据和结构。 1. **创建JTable** 创建`JTable`需要一个`TableModel`。最基本的创建方式是传入二维数组或`Vector`对象。例如: ```java Object[]...
本资料集合了25个已经调试通过的`JTable`例子,涵盖了多种高级特性和用法,如多级表头、多级行头以及单元格合并等,旨在帮助开发者深入理解和应用`JTable`。 1. **多级表头(Nested Table Headers)**: 多级表头...
7. **表头的定制**:`JTableHeader`是`JTable`的表头部分,可以通过`setHeaderRenderer`和`setHeaderValue`来定制。 ```java table.getTableHeader().setDefaultRenderer(new MyHeaderRenderer()); ``` 8. **与...
String[] headers = {"表头一", "表头二", "表头三"}; Object[][] cellData = {}; DefaultTableModel model = new DefaultTableModel(cellData, headers) { public boolean isCellEditable(int row, int column) { ...
### Java中JTable的用法 #### 一、概述 JTable是Swing框架中用于显示和编辑表格数据的关键组件之一。它不仅提供了强大的数据管理功能,还支持丰富的定制选项,使得开发者能够根据具体需求创建出高度个性化的表格...
在Swing中,`JTable`是一个非常重要的组件,它允许开发者在应用程序中展示二维数据,并且支持多种交互功能,如排序、选择、编辑等。这个压缩包文件"java_swing大量的table例子"显然提供了丰富的`JTable`使用示例,...
`JTable` 提供了丰富的功能,包括数据编辑、排序、选择和自定义显示等,使得开发者可以轻松地在GUI应用程序中展示和操作数据。下面将详细介绍`JTable`的使用及其在行和列中插入项目的操作。 首先,`JTable`的创建...
在Swing中,JTable默认并不支持数据的自动排序,但可以通过实现`SortableTableModel`接口或使用`DefaultRowSorter`类来实现这一功能。`TableSort.java`文件可能就是演示了如何为JTable添加排序功能的示例代码。你...
### Mulit_row,SWT 多行表头 在Java Swing框架中,有时我们需要创建具有多行表头的表格来更好地组织数据展示。本篇文章将详细介绍如何使用Swing实现一个带有自定义多行表头的表格组件。 #### 一、项目背景及需求...
然而,JTable本身并不提供排序功能,因此我们需要添加额外的逻辑或使用第三方库来实现表格的排序。"TableSorter"很可能是一个实现了这种功能的自定义类。 表格排序通常涉及到以下几个关键概念: 1. **Model-View-...