`
happyqing
  • 浏览: 3204705 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

swing jtable删除行,删除多行,排序后删除行

阅读更多

 

jtable删除行的问题

 

jtable排序后删除行,会出现索引不对应的问题

 

//设置列表可排序
jTable1.setAutoCreateRowSorter(true);

 

解决办法

关键代码:

//转换为Model的索引,这句很重要,否则索引不对应

rowIndexes[i] = jTable1.convertRowIndexToModel(rowIndexes[i]);

//排序,这句很重要,否则顺序是乱的
Arrays.sort(rowIndexes);

 

private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {                                          
        int[] rowIndexes = jTable1.getSelectedRows();
        
        if(rowIndexes.length == 0){
            JOptionPane.showMessageDialog(null, "请选择行后再删除!");
            return;
        }
        
        int r = JOptionPane.showConfirmDialog(null,
                "你确定要删除吗?", "确认删除",
                JOptionPane.YES_NO_OPTION,
                JOptionPane.QUESTION_MESSAGE);
        if (r != JOptionPane.YES_OPTION) {
            return;
        }

        for (int i = 0; i < rowIndexes.length; i++)
        {
           //转换为Model的索引,这句很重要,否则索引不对应
            rowIndexes[i] = jTable1.convertRowIndexToModel(rowIndexes[i]);
        }
        //排序,这句很重要,否则顺序是乱的
        Arrays.sort(rowIndexes);
        
        DefaultTableModel tableModel = (DefaultTableModel) jTable1.getModel();
        //降序删除
        for(int i=rowIndexes.length-1; i>=0; i--){
            tableModel.removeRow(rowIndexes[i]);
            //与Model对应的列表数据,含有更多元数据
            //MainFrame.resultList.remove(rowIndexes[i]);
        }

    } 

 

网上很多人写的删除方法都不涉及表格排序,涉及表格排序的转换索引后又不排序,

真心感觉jtable的操作太麻烦了,比winform的差多了。

 

0
0
分享到:
评论
2 楼 happyqing 2014-08-02  
呵呵呵,
1 楼 ppboyhai 2014-08-01  
我不是一个人在战斗....还有用swing的同胞

相关推荐

    JTable实现行间拖拽的最简单方法

    在Java Swing应用中,`JTable`是一种常用的组件,用于展示和操作二维数据。它提供了丰富的功能,如排序、选择和编辑。然而,`JTable`默认并不支持行间的拖放(Drag and Drop, DnD)操作。本文将详细介绍如何通过一种...

    JTable表头合并

    在Java Swing应用开发中,`JTable`是一个非常重要的组件,用于展示二维表格数据。它提供了丰富的功能,如数据编辑、排序、选择等。而"JTable表头合并"是Swing中的一个高级特性,允许开发者创建具有复杂结构的表头,...

    jTable的使用

    4. **行选择**:jTable允许单行或多行选择,可以通过`setSelectionMode()`设置选择模式。 5. **表头自定义**:通过`setTableHeader()`可以设置自定义的表头,可以添加工具提示、更改字体样式等。 6. **事件监听**...

    JTable实例大全

    `JTable`的`TableModel`接口提供了添加、删除和修改行的方法,使得在程序运行时可以动态更新表格内容。 8. **性能优化**: 当处理大量数据时,为了提高性能,可以使用虚拟化技术,只渲染当前可视区域的行,而不是...

    jtable多级表头

    在Java编程领域,`JTable`是Swing库中用于创建和展示表格数据的重要组件。在实际应用中,我们有时需要展示更为复杂的数据结构,这时就需要用到多级表头(multiheader)。多级表头允许我们在表格的列或者行上设置多个...

    Treeselectbox.rar

    此外,标签提到的"Java Swing JTable 筛选"意味着这个示例可能还涉及到了其他类型的JTable筛选方法,比如使用RowFilter类实现基于用户输入的动态筛选,或者使用TableSorter类实现排序和筛选的组合。 在...

    JTable Examples

    `JTable`允许用户选择一行或多行,甚至可以添加复选框以实现多选操作。这需要配置`SelectionModel`和使用`CheckboxTableRenderer`。 9. **滚动面板集成(Integration with Scroll Pane)**: 通常,`JTable`会被...

    JavaSwing编程demo

    例如,JTable 可以用来显示数据库中的数据,允许用户进行排序、过滤和编辑。 颜色、字体、图标等视觉元素在Swing中也可以轻松设置,通过组件的属性或者外观(LookAndFeel)进行定制。Swing支持跨平台的LookAndFeel...

    javaswing详解

    8. JTable:展示表格数据,支持排序、过滤等功能。 9. JMenu和JMenuItem:构建菜单栏和菜单项,提供下拉菜单功能。 三、事件处理 Swing使用事件监听器模式处理用户交互。例如,为JButton添加一个ActionListener,...

    java swing 学习教程

    - JTable:用于展示表格数据,可进行排序、选择和编辑。 - JTree:展示层次结构的数据,如文件系统目录。 - JTabbedPane:创建带有多个面板的选项卡,每个面板可以包含不同的组件。 2. **布局管理器** - Swing...

    最全的Java Swing示例程序

    9. JList和JTable:用于展示列表数据和表格数据,可以进行排序和筛选。 10. JScrollPane:滚动条组件,用于包含那些可能超出视图范围的组件。 11. JOptionPane:用于创建弹出对话框,如警告、确认、输入等。 ...

    深入浅出swing程序源代码

    Swing是Java编程语言中的一个图形用户界面(GUI)工具包,它是Java Foundation Classes (JFC)的一部分。这个“深入浅出Swing程序源代码”压缩包文件提供了丰富的示例,帮助开发者了解和学习如何在Java应用程序中有效地...

    swing程序设计pdf

    根据提供的文件信息,可以看出标题与描述提及的是关于Java Swing程序...通过以上内容,我们可以了解到Swing为Java开发者提供了强大而灵活的GUI开发工具,掌握了这些基础知识后,便可以着手创建自己的Swing应用程序了。

    JAVA_Swing 学习经典例子

    7. **JTextArea** 和 **JTextField**: 用于输入和显示文本,JTextArea支持多行编辑,而JTextField则是一行文本输入。 8. **JTable**: 用于展示表格数据,可以进行排序、选择和编辑。 9. **JTree** 和 **JList**: ...

    swing各种组件举例

    Swing是Java编程语言中的一个图形用户界面(GUI)工具包,它是Java Foundation Classes (JFC)的一部分。在 Swing 中,开发者可以创建丰富的、高度可定制的桌面应用程序。本教程主要聚焦于Swing中的各种组件及其用法,...

    Swing用户界面组件

    - **JTable**: 用于展示二维数据集,支持排序、筛选和编辑。 2. **容器组件** - **JFrame**: 是Swing中的顶级容器,用于承载其他组件,创建独立窗口。 - **JPanel**: 基本的容器,通常用作组件的容器或自定义...

    Swing样式大全(全56种经典)

    7. 表格(JTable):Swing的表格组件可以显示和编辑多行数据,支持排序、选择、过滤等功能。 8. 树形视图(JTree):用于展示层次结构的数据,如文件系统目录结构。 9. 滚动面板(JScrollPane):用于包含可能超出...

    swing 组件 demo

    9. **JTable**: JTable用于显示二维表格数据,支持排序、选择和编辑。开发者可以通过TableModel来管理表格的数据。 10. **JScrollPane**: JScrollPane是滚动面板,可以包含其他组件并提供滚动条。当组件内容过大...

    Swing 组件大全

    - **JTable**: 用于展示二维数据的表格,可以编辑和排序。 - **JTree**: 展示层次结构数据的树形视图。 - **JTabbedPane**: 提供多个面板,每个面板作为一个选项卡显示。 - **JProgressBar**: 显示进度条,通常...

    java Swing用户界面组件

    5. **表组件**:JTable用于展示二维数据,可以进行排序、选择和编辑;JList用于展示一维列表数据;JTree则用于显示层级结构的数据。 6. **对话框组件**:包括JOptionPane,它简化了警告对话框、确认对话框、输入...

Global site tag (gtag.js) - Google Analytics