首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在1.6中禁用JTable中的所有排序代码

在Java中,可以通过以下步骤在1.6版本中禁用JTable中的所有排序代码:

  1. 创建一个自定义的TableHeader类,继承自JTableHeader类,并重写getTableHeaderRenderer()方法和getTableHeaderUI()方法。这样可以自定义表头的渲染器和UI。
代码语言:java
复制
import javax.swing.*;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableColumnModel;
import javax.swing.table.TableModel;

public class CustomTableHeader extends JTableHeader {
    public CustomTableHeader(TableColumnModel columnModel) {
        super(columnModel);
    }

    @Override
    public TableCellRenderer getDefaultRenderer() {
        return new DefaultTableCellRenderer() {
            @Override
            public void setHorizontalAlignment(int alignment) {
                super.setHorizontalAlignment(SwingConstants.LEFT);
            }
        };
    }

    @Override
    public void updateUI() {
        setUI(new CustomTableHeaderUI());
    }
}
  1. 创建一个自定义的TableHeaderUI类,继承自BasicTableHeaderUI类,并重写paint()方法。在该方法中,可以禁用排序代码。
代码语言:java
复制
import javax.swing.*;
import javax.swing.plaf.basic.BasicTableHeaderUI;
import java.awt.*;

public class CustomTableHeaderUI extends BasicTableHeaderUI {
    @Override
    public void paint(Graphics g, JComponent c) {
        // 禁用排序代码
    }
}
  1. 在创建JTable时,使用自定义的TableHeader类作为表头。
代码语言:java
复制
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumnModel;

public class Main {
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 创建表格数据
        Object[][] data = {
                {"John", "Doe"},
                {"Jane", "Smith"},
                {"Bob", "Johnson"}
        };
        String[] columnNames = {"First Name", "Last Name"};
        DefaultTableModel model = new DefaultTableModel(data, columnNames);

        // 创建表格
        JTable table = new JTable(model);

        // 获取表格的列模型
        TableColumnModel columnModel = table.getColumnModel();

        // 使用自定义的TableHeader类作为表头
        CustomTableHeader tableHeader = new CustomTableHeader(columnModel);
        table.setTableHeader(tableHeader);

        // 将表格添加到窗口中
        frame.add(new JScrollPane(table));

        frame.pack();
        frame.setVisible(true);
    }
}

通过以上步骤,你可以在1.6版本中禁用JTable中的所有排序代码。这样,表格将不再具有排序功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何在Java中使用Table

如何在Java中创建表 要创建表,需要创建JTable类的实例。...您需要在其构造函数中为要构造的表提供两个参数(row和column),如以下示例代码段所示: JTable table = new JTable (row, column); row和column的值可以由两个整数值组成...如果您只是向用户展示数据,这不是一个特别理想的功能。此外,在向用户演示时,所有数据都被视为字符串。 另一个值得关注的问题是,如果您在数据库对象中查询特定值,则必须将所有值复制到数组或向量中。...如何在Java中使用模型创建表 首先,了解如何处理表数据很重要。所有表(包括使用JTable方法创建的表)都使用表模型来管理其数据。...下面是一些示例代码,说明如何在Java中设置表的列宽: TableColumnModel columnModel = table.getColumnModel(); columnModel.getColumn

2.2K40

Java Swing JTable

1 简介 JTable用于显示和编辑常规的二维单元格表。有关面向任务的文档和使用JTable的示例,请参见Java教程中的如何使用表。...默认情况下,列可能会在JTable中重新排列,以使视图的列以与模型中的列不同的顺序出现。这一点根本不影响模型的实现:对列进行重新排序时,JTable在内部维护列的新顺序并在查询模型之前转换其列索引。...因此,在编写TableModel时,不必侦听列重新排序事件,因为无论视图中发生什么,都将在其自身的坐标系中查询模型。...当将JTable的基于行的方法与基础TableModel一起使用时,必须进行坐标转换。所有基于JTables行的方法都是基于RowSorter的,不一定与基础TableModel的相同。...只要数据模型实现了 TableModel 接口,就可以通过以下两行代码设置 JTable 显示该模型: TableModel myData = new MyTableModel(); JTable table

5.1K10
  • 高级Swing 组件

    在第一个示例代码中,我们构建了一个包含固定字符串集合的JList组件。...但是,列表框中选择的集合始终都是固定的。那么我们应该如何在列表框中添加或者删除项目呢?让人有些奇怪的是,JList类中没有任何方法可以用来实现这些操作。相反,你必须进一步了解列表组件的内部设计情况。...有时,为了查找树中的一个节点,你必须从根节点开始,访问所有的子节点,才能找到你所需要的节点。...JTable 类有一个构造器,将二维对象数组包装在一个默认模型之中。这是我们在第一个示例代码中使用的方法。在本章的后面部分中,我们将要介绍表格模型。...在我们的示例中,我们将要对表格中的各个行进行排序。请运行示例代码中的程序,双击列标题中的一个。你将能够看到表格的各个行是如何被从新安排的,从而可以列的项目进行排序。

    6910

    java swing 添加 jcheckbox复选框

    麻烦是说由于设计器的使用不方便(如果您希望使用窗体设计器通过快速拖拽控件建立您的Java Swing GUI程序,请您使用MyEclipse 8.5以上版本,并且需要最高使用权限),所有代码都得手写,如果没有好的编码规范和注释习惯...自己都会被代码淹没。效果差是指运行时的界面。具体的您可以自己尝试发现。...值得一提的是在这七个构造方法中,设计器(如果您使用了MyEclipse)使用的是JTable(TableModel dm)这个版本。...而一般情况使用JTable(Vector rowData,Vector columnNames)       在Java方法中,如果参数需要传递接口,可以在调用方法时传递一个(匿名)对象,该对象是一个不具名的类的实例...在详细说明之前先解释一下JTable的显示原理:       首先是数据来源,您使用JTable的构造方法,大部分重载中参数即包含了数据,比如JTable(VectorrowData, Vector columnNames

    3.3K00

    java swing项目桌面软件还是蛮香的,至少有了我自己的桌面软件|Java 开发实战

    但是JTable中如果想让表头显示仅仅将JTable加入Jpanel或者Jframe中是不行的,我这里提供两种方式实现1、分别将TableHeader和TableColumn加入控件中单独的显示,这种情况不常见...我们在去源码里可以看见,我们会发现AbstractTableModel有事继承TableModel这个接口的。所以我们的所有方法都是源于他。...JTable显示模块去刷新从1-6行的所有数据,所以说比如你更新了第一行的数据,而你用的两个参数是1,4.那么恭喜你,你的更新JTable无法实现,因为他只更新从第二行开始到第五行的数据。...就会采用默认的渲染方式去渲染表格,默认的就是所有都是字符串形式展示,这个设置在JTable中的源码中protected void createDefaultRenderers() { defaultRenderersByColumnClass...),如果不在数据中添加那么我们的getClass方法就起不到作用,这个用到了下面的知识来解决JTable渲染和编辑这种呢其实就是上面的getClass底层的实现方式,JTable中源码我们上面可以看出JTable

    40010

    Java一分钟之-Swing组件:JTable, JTree, JTextArea

    Java Swing 提供了丰富的组件库,其中JTable、JTree和JTextArea用于展示数据和用户输入。本文将深入浅出地介绍这些组件,常见问题,易错点以及如何避免,同时提供代码示例。 1....JTable JTable用于展示二维数据,如表格形式的数据。它可以从数组、列表或模型中获取数据。...避免方法:使用JScrollPane包裹JTable。 2. JTree JTree用于展示层次结构的数据,如文件系统或组织结构。...结语 JTable、JTree和JTextArea是Swing中展示和处理数据的重要组件。理解它们的用法,注意常见的设计模式和错误,可以帮助你创建出功能丰富的用户界面。...在实践中,结合不同的布局管理器和组件,你可以构建出各种复杂的界面。

    18810

    java winform开发之JTable全攻略

    的行添加标识,如行id等;4)怎样在JTable中动态添加新行;     1)JTable的基本用法: 我用的IDE是NetBeans,由于也是简单做几个页面的客户端,主要还是Web开发的,所以暂时不打算深究...后,只要调用JTable的setModel方法,就可以将列头及数据的信息显示在表格中啦。...2)怎样添加行点击事件 首先,在JTable的设计视图中先选中JTable,然后右击,在事件的弹出菜单中依次选中"mouse-click”就可以捕捉表格的点击事件了,在这个事件监听方法中,会传入一个java.awt.event.MouseEvent...只要在这个对象中重写一下toString()方法,将我们希望在单元格中显示的内容return出来就可以了,只JTable本身,并没有提供设置行id等识别表格行对象的方法,所以我想到了自己定义一个单元格对象...4)怎样在JTable中动态添加新行 其实这个问题非常简单,只要根据列模型生成相应的行对象,然后通过调用JTable的model对象的addRow方法就ok了,由于过于简单,所以直接贴代码来说明问题:

    1.2K30

    【面向对象设计模式】 适配器模式 (二)

    : 客户端类代码中没有指定建模所需的接口; package shuliang.han.adapter; public class Panzer { public double getCaliber...Jtable 对数据适配 (1) Jtable 与 TableModel AbstractTableModel模型  JTable适配数据方法 : JTable类可以将实现了TableModel抽象类的数据显示到图形界面中..., 这个接口是 TableModel 抽象类; TableModel子类实现 :  抽象方法多 : Jtable定义了许多抽象方法, 其子类必须实现所有的抽象方法, 这样会很麻烦;  TableModel...接口, JTable组件将客户端需要的表信息存储到自身中, 通过自定义适配器对象, 将任何数据适配到表中; JTable不适用类适配原因 :  继承数量限制 : JTable适配器需要继承 AbstractTableModel...类, 这样就无法继承现有类, 因为只能继承一个类; 需要维护多个对象 : JTable需要大量数据, 一般是从多个对象中采集的; 设计适配器模式 : 当我们设计软件的时候, 充分考虑程序的灵活性, JTable

    32810

    java超市仓库管理系统(超市条形码管理系统)

    ,要求如下: 1、商品管理页面布局,添加一个JScrollPanel(内嵌JTable),用来显示所有商品的信息;添加两个JLabel用于显示查询提示信息;添加JTextField用于输入商品商品名称;...图1 2、在“商品名称”对应的JTextField中输入商品名称,单击“查询”:如果存在该商品,则显示如图2所示的窗体;若输入的名称不存在,则弹出“没找到该商品!”的对话框。...图2 3、单击“添加商品”按钮,弹出如图3所示的窗体,此时必须输入所有商品信息, 否则将弹出如图4所示的对话框;当商品信息输入完毕,单击“确定”按钮,实现商品的添加, 在弹出如图5所示的对话框后,释放窗体...(index,1);//index为选定行的索引值 6、在编写代码时,最好用方法对重复使用的代码进行封装,尽量减少代码的冗余; 7、编译程序,并运行。...,导致添加商品中的价格会获取到数量,请将【GoodsXG.Java】文件中的变量num改为price。

    3.5K20

    【Spark篇】---SparkSQL初始和创建DataFrame的几种方式

    ,这张表临时注册到内存中,是逻辑上的表,不会雾化到磁盘 */ df.registerTempTable("jtable"); DataFrame sql = sqlContext.sql...2.子类中实现了serializable接口,父类中没有实现,父类中的变量不能被序列化,序列化后父类中的变量会得到null。              ...java代码: /** * 注意: * 1.自定义类必须是可序列化的 * 2.自定义类访问级别必须是Public * 3.RDD转成DataFrame会把自定义类中字段的名称按assci码排序 */ SparkConf...,sqlContext是通过反射的方式创建DataFrame * 在底层通过反射的方式获得Person的所有field,结合RDD本身,就生成了DataFrame */ DataFrame df = sqlContext.createDataFrame.../sparksql/parquet") result.show() sc.stop() 5、读取JDBC中的数据创建DataFrame(MySql为例) 两种方式创建DataFrame java代码

    2.6K10

    2019年Spring Boot不可错过的22道面试题!

    4、如何重新加载 Spring Boot 上的更改,而无需重新启动服务器? 5、Spring Boot 中的监视器是什么? 6、如何在 Spring Boot 中禁用 Actuator 端点安全性?...使用 spring 启动,我们避免了之前我们必须做的所有样板代码和配置。因此,Spring Boot 可以帮助我们以最少的工作量,更加健壮地使用现有的 Spring功能。...监视器模块公开了一组可直接作为 HTTP URL 访问的REST 端点来检查状态。 6、如何在 Spring Boot 中禁用 Actuator 端点安全性?...我们可以使用来禁用安全性。只有在执行机构端点在防火墙后访问时,才建议禁用安全性。 7、如何在自定义端口上运行 Spring Boot 应用程序?...它只需要很少的配置,并且不需要样板代码。 11、如何使用 Spring Boot 实现分页和排序? 使用 Spring Boot 实现分页非常简单。

    8.3K10

    「旅游信息管理系统」 · Java Swing + MySQL 开发「建议收藏」

    码云仓库地址:https://gitee.com/ynavc/tourism_sys 源代码及文档打包下载:https://download.csdn.net/download/weixin_44893902...业务管理员: 旅游业务模型: 整体概要设计: 二、界面示例: 首页: 点击报名:如果没有登录提示游客登录 登录界面: 注册界面: 报名: 报名信息管理界面: 报名信息导出生成EXCEL表格: 三、实现代码...游客可以对旅游路线,旅游班次,旅游团,保险,导游,交通工具以及宾馆的信息查询,并且游客可以在线报名旅游。同时公司业务管理员可以对所有报名信息进行处理,确认之后导出报名信息交由旅行社。...; } else { //获取用户选择的数据 String id=jTable.getValueAt(jTable.getSelectedRow(), 0).toString...修改:点击游客将会将游客编号绑定到文本框中,可以对该游客编号对应的游客进行团号和性别修改。删除:点击要删除的信息,点击删除即可。添加:对报名信息进行添加。

    2.8K20

    我肚子里可能有一瓶代码,但肯定没有一滴墨水

    并且完成了课设验收之后 写课设的报告才发现我星星星星个星星星 这报告真的好难写,于是和JXR 得出一个结论: 我肚子里可能有一瓶代码,但肯定没有一滴墨水 这字体的颜色也像是蓝墨水的颜色吧 就和小学的时候用钢笔...(二) 我Java课设选的项目是:学生信息管理系统 要求设计一个GUI 界面 实现对学生信息的增删改查 我遇到的一个问题就是从数据库中 取到多条数据之后 不知道如何添加到JTable中 就是现实多线数据...然后我们再添加到data这个二维String数组的 第i行 然后在加到JTable中 通过: table.setModel(new DefaultTableModel(data,columnName...)); 就可以实现给JTable添加数据库的数据了 所以在这,感谢Hony哥的思路 也感谢老师最后的验收 但是,oh,我还要写报告- 可我的肚子里没有一滴墨水啊 最后让我们用James的Taco...祝所有看完文章的你们接下来的考试稳过。 -完-

    31030

    SpringBoot 面试题及答案

    6.如何在 Spring Boot 中禁用 Actuator 端点安全性? 7.如何在自定义端口上运行 Spring Boot 应用程序? 8.什么是 YAML?...使用 spring 启动,我们避免了之前我们必须做的所有样板代码和配置。因此,Spring Boot 可以帮助我们以最少的工作量,更加健壮地使用现有的 Spring 功能。 2....监视器模块公开了一组可直接作为 HTTP URL 访问的 REST 端点来检查状态。 6.如何在 Spring Boot 中禁用 Actuator 端点安全性?...它只需要很少的配置,并且不需要样板代码。 11. 如何使用 Spring Boot 实现分页和排序? 使用 Spring Boot 实现分页非常简单。...这些端点对于获取有关应用程 序的信息(如它们是否已启动)以及它们的组件(如数据库等)是否正常运行很有帮助。

    7.1K20

    JDK 5 ~ 10 新特性倾情整理!

    为了大家对JDK有一个全面的了解,下面我为大家整理了JDK5~10的所有关键新特性!...GUI界面的显示 嵌入式数据库Derby Web服务元数据 Jtable的排序和过滤 更简单更强大的JAX-WS JDK7新特性 switch中可以使用字符串了 泛型实例化类型自动推断 自定义自动关闭类...支持二进制数字 在try/catch异常扑捉中,一个catch可以写多个异常类型用|隔开 可以不必要写finally语句来关闭资源,只要你在try()的括号内部定义要使用的资源 JDK8新特性 接口的默认方法...JDK9新特性 Jigsaw模块化项目 简化进程API 轻量级JSON API 钱和货币的API 改善锁竞争机制 代码分段缓存 智能java编译 http2.0客户端 kulla计划 JDK10新特性...多学习这些新特性,对写代码的效率、逼格、技能成长、就业还是会很有帮助的。 ?

    59410

    在 Android 开发中使用协程 | 代码实战

    因为这个仓库中存储的商品很多,所以对它们进行排序要花费将近 1 秒钟,因此我们需要使用协程来避免阻塞主线程。 在应用中,所有的数据都会存储到 Room 数据库中。...,此应用中,所有内容都存储在本地 Room 数据库中,它为 @Dao 提供了针对不同排序具有不同功能的两个接口。...要禁用按钮,只需要告诉 UI 在 sortPricesBy 中是否有正在处理的排序请求,示例代码如下: // 方案 0: 当有任何排序正在执行时,禁用排序按钮 class ProductsViewModel...简而言之,它会通过成员变量 activeTask 来保持对当前排序的追踪。无论何时开始一个新的排序,都立即对当前 activeTask 中的所有任务执行 cancelAndJoin 操作。...最简单 (往往也是最好的) 的方案就是从 UI 上直接更改,排序运行时直接禁用按钮。 最后,我们探讨了一些高级并发模式,并介绍了如何在 Kotlin 协程中实现它们。

    1.2K10

    2018-04-06 JDK 新特性总览

    Java GUI界面的显示 嵌入式数据库Derby Web服务元数据 Jtable的排序和过滤 更简单更强大的JAX-WS JDK7新特性 switch中可以使用字符串了 泛型实例化类型自动推断...自定义自动关闭类 新增一些读取环境信息的工具方法 Boolean类型反转,空指针安全,参与位运算 两个char之间的equals 安全的加减乘除|sd 对Java集合( Collections...)的增强支持 数值可加下划线 支持二进制数字 在try/catch异常扑捉中,一个catch可以写多个异常类型用|隔开 可以不必要写finally语句来关闭资源,只要你在try()的括号内部定义要使用的资源...JDK8新特性 接口的默认方法 Lambda表达式 函数式接口 方法与构造函数引用 扩展了集合类 新的Date API Annotation多重注解 streams(流) parallel...streams(并行流) Map数据结构改进 JDK9新特性 Jigsaw模块化项目 简化进程API 轻量级JSON API 钱和货币的API 改善锁竞争机制 代码分段缓存 智能java

    78440

    乌云漏洞库payload-Burp插件源码分析

    下面就直接从其的源码入手,BurpExtender.java的代码分析如下所示,此代码主要是实现burpsuite当中要定义插件的要求 package burp; import wooyun.GUI...//此方法会根据菜单调用的细节,提供应该被显示在上下文菜单中的任何自定义上下文菜单项。...//AUTO_RESIZE_SUBSEQUENT_COLUMNS 在 UI 调整中,更改后续列以保持总宽度不变,这是默认的行为 table.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS...); //利用JTable中的getColumnModel()方法取得TableColumnModel对象;再利用TableColumnModel界面 //所定义的getColumn...//Collections是一个工具类,sort是其中的静态方法,是用来对List类型进行排序的 Collections.sort(hostTJlist, new Comparator

    97030
    领券