You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

JScrollPane在调整大小时动态行标题不同步。

下面是一个包含代码示例的解决方法,它解决了JScrollPane动态行标题不同步的问题。该问题通常是由于JTable中使用的自定义Renderer或UI导致的,因此重写UI和Renderer可以解决该问题。

public class CustomRowHeaderUI extends BasicTableHeaderUI {

    @Override
    public void paint(Graphics g, JComponent c) {
        super.paint(g, c);
        JTableHeader header = (JTableHeader) c;
        JTable table = header.getTable();
        TableColumnModel columnModel = table.getColumnModel();
        int width = columnModel.getColumnMargin();
        Enumeration<TableColumn> columns = columnModel.getColumns();
        while (columns.hasMoreElements()) {
            TableColumn column = columns.nextElement();
            Component comp = header.getDefaultRenderer().getTableCellRendererComponent(
                    table, column.getHeaderValue(), false, false, -1, column.getModelIndex());
            width += comp.getPreferredSize().width;
        }
        if (width != header.getWidth()) {
            header.setPreferredSizes(new Dimension(width, 0));
            header.revalidate();
        }
    }
}

在创建JTableHeader后,调用以下代码即可应用上面的自定义UI:

jTable.getTableHeader().setUI(new CustomRowHeaderUI());

使用自定义Renderer的解决方法类似,只需要将它包装在上述自定义UI的更大的外壳中即可。

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

Fastbot 开源版技术原理与架构

测试前的设置。a1 对 APK 文件进行反编译,收集控件的静态文本信息。a2 在一组设备上安装 APK,同时 a3 加载先前测试运行中的历史测试数据填充模型。(b) 引导式 UI 探索。b1 从被测应用程序中获取当前的 GUI 页面,b2 识别和抽象出当前页面上的可用 hyper-event(超事件,一组具有相同属性的事件,将在下文具体解释)。b3 选择一个具体的 UI 事件,该事件有可能增加 Activity 覆盖率,b4 执行该事件。执行完毕后,b5 更新历史测试数据...

干货 | 字节跳动数据质量动态探查及相关前端实现

如果没有数据探查,数据类项目就会频繁反复,对项目开发,运维带来很大困难,大幅延长项目周期。 **本篇将介绍对于数据探查常见问题,目前字节跳动提供的动态探查解决方案、应用场景以及技术实现。**> > > > ... clientWidth) { return cardBox.offset + cardBox.width - clientWidth; } return this.cardScroll; } return getTargetPosition(colBox, this.tableScroll, cardBox);}// 获取滚动目标位置// originBox: 滚动起始...

10 个问题带你了解 Compose Multiplatform 1.0 |社区征文

所以在概念上 compose-jb 可以看做是 compose-android 的超集;在具体实现上 compose-jb 则是在 fork 了 compose-android 的源码基础上增加了对 Desktop 和 Web 侧的 API。compose-jb 与 compose-android 同步更新... 比如可以感知鼠标行为和窗口大小、创建 `Scrollbars`,`Tooltips`,`Tray` 等```kotlinfun main() { Window { var windowSize by remember { mutableStateOf(IntSize.Zero) } var windowLocatio...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

JScrollPane在调整大小时动态行标题不同步。 -优选内容

Fastbot 开源版技术原理与架构
测试前的设置。a1 对 APK 文件进行反编译,收集控件的静态文本信息。a2 在一组设备上安装 APK,同时 a3 加载先前测试运行中的历史测试数据填充模型。(b) 引导式 UI 探索。b1 从被测应用程序中获取当前的 GUI 页面,b2 识别和抽象出当前页面上的可用 hyper-event(超事件,一组具有相同属性的事件,将在下文具体解释)。b3 选择一个具体的 UI 事件,该事件有可能增加 Activity 覆盖率,b4 执行该事件。执行完毕后,b5 更新历史测试数据...
干货 | 字节跳动数据质量动态探查及相关前端实现
如果没有数据探查,数据类项目就会频繁反复,对项目开发,运维带来很大困难,大幅延长项目周期。 **本篇将介绍对于数据探查常见问题,目前字节跳动提供的动态探查解决方案、应用场景以及技术实现。**> > > > ... clientWidth) { return cardBox.offset + cardBox.width - clientWidth; } return this.cardScroll; } return getTargetPosition(colBox, this.tableScroll, cardBox);}// 获取滚动目标位置// originBox: 滚动起始...
10 个问题带你了解 Compose Multiplatform 1.0 |社区征文
所以在概念上 compose-jb 可以看做是 compose-android 的超集;在具体实现上 compose-jb 则是在 fork 了 compose-android 的源码基础上增加了对 Desktop 和 Web 侧的 API。compose-jb 与 compose-android 同步更新... 比如可以感知鼠标行为和窗口大小、创建 `Scrollbars`,`Tooltips`,`Tray` 等```kotlinfun main() { Window { var windowSize by remember { mutableStateOf(IntSize.Zero) } var windowLocatio...

JScrollPane在调整大小时动态行标题不同步。 -相关内容

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询