Java 带页脚的JTable

Java 带页脚的JTable,java,swing,jtable,jscrollpane,jscrollbar,Java,Swing,Jtable,Jscrollpane,Jscrollbar,我需要创建一个带有页脚行的JTable(JavaSwing)(它将包含每列的数据总和) 具体需要是: 页脚始终可见(如页眉):父JScrollPane应仅在页眉和页脚之间滚动(即实际数据) 表列不可调整大小(这将使事情变得更容易) 根据屏幕分辨率,表格可以水平和/或垂直滚动 阅读类似的问题,似乎最好的方法是在主表下方添加第二个表(只有一行),这就是我所做的: JPanel result = new JPanel(new BorderLayout()); Ses

我需要创建一个带有页脚行的JTable(JavaSwing)(它将包含每列的数据总和)

具体需要是:

  • 页脚始终可见(如页眉):父JScrollPane应仅在页眉和页脚之间滚动(即实际数据)
  • 表列不可调整大小(这将使事情变得更容易)
  • 根据屏幕分辨率,表格可以水平和/或垂直滚动
阅读类似的问题,似乎最好的方法是在主表下方添加第二个表(只有一行),这就是我所做的:

        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中)
  • 水平滚动条出现在两个表之间

然后我尝试了另一种方法:在将这两个表添加到公共JScrollPane之前,将它们添加到同一个JPanel中。不幸的是,这种方法还有两个问题:

  • 主表的标题不再可见
  • 页脚行是滚动的一部分(即,它并不总是可见)
任何帮助或暗示都将不胜感激

非常感谢! 托马斯

  • 或单独的JPanel


感谢您的建议,但不幸的是,这段代码有两个问题:(1)它没有水平滚动(单元格宽度根据可用空间进行调整,而在我的情况下,单元格宽度是固定的)(2)当垂直滚动出现时,页脚不再与表格对齐任何其他想法/建议?Thx将两个JScrollBar同步在一起,关于AdjustmentListener的工作代码是否有3-4次以上,:-)