java - 带页脚的 JTable

标签 java swing jtable jscrollpane jscrollbar

我需要创建一个带有页脚行的 JTable (Java Swing)(其中包含每列数据的总和)。

具体需求是:

  • 页脚始终可见(如页眉):父 JScrollPane 应该仅在页眉和页脚(即实际数据)之间滚动
  • 表格列的大小不可调整(这应该会让事情变得更容易)
  • 根据屏幕分辨率,表格可以水平和/或垂直滚动​​

阅读类似的问题,似乎最好的方法是在主表下方添加第二个表(仅1行),这就是我所做的:

        JPanel result = new JPanel(new BorderLayout());
        SessionTable sessionTbl = null; //This is a JTable
        AbstractSessionTableModel sessionTableModel = null;
        JScrollPane sessionScrollPane = null;

(...)

        //Inits scrollpane
        sessionScrollPane = new JScrollPane(sessionTbl);
        sessionScrollPane.setPreferredSize(new Dimension(100, 50));
        sessionScrollPane.setBorder(BorderFactory.createEmptyBorder());

        //Adds tables
        result.add(sessionScrollPane, BorderLayout.CENTER);

        //Adds footer table (which is also contained in a JScrollPane and has the same columns than the main table)
        result.add(createSessionFooterTable(sessionTableModel), BorderLayout.SOUTH);

不幸的是,这种方法有两个问题(见图):

  • 水平滚动仅移动主表格(即页脚不移动,因为它位于不同的 JScrollPane 中)
  • 水平滚动条出现在 2 个表格之间

Screenshot

然后我尝试了另一种方法:将这 2 个表添加到同一个 JPanel 中,然后再将它们添加到公共(public) JScrollPane 中。不幸的是,这种方法也有两个问题:

  • 主表的标题不再可见
  • 页脚行是滚动的一部分(即它并不总是可见)

任何帮助或提示将不胜感激!

非常感谢! 托马斯

最佳答案

关于java - 带页脚的 JTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15758159/

相关文章:

java - 给定数百万个点,找到位于直线上或距直线 0.2 mm 范围内的点

java - 按钮文本需要根据 EditText 输入的数据进行更改

java - 基于偏移量的 ZoneId 的 ID 无效 - Java 8

java - 如何从 1jframe 链接到另一个 jframe

java - 修复 JEditorPane 内容的大小

java - JTable 中互斥的单元格编辑器

java - 如何反转这个等式?

java - 调用事件调度线程

java - 使用 Java 使用来自 RESTful Web 服务的 json 字符串结果填充 jtable

java - 如何将静态jtable限制更改为动态(静态对象数组更改为动态)