在JavaSwing中显示大量页面的分页

在JavaSwing中显示大量页面的分页,java,swing,pagination,paging,Java,Swing,Pagination,Paging,我正在使用jtable进行分页。我使用DB查询从数据库中提取行,然后将行设置为jtable模型。现在,我有超过740万行,每页显示10万行,这将生成74个分页按钮,如图所示 但是我想显示分页按钮,比如,显示当前页面的前两页和下两页。并始终显示前3页和最后3页。假设用户位于第20页,则分页方式如下: 1,2,3 ... 18,19,20,21,22 ... 72,73,74 下面是我的代码示例,它显示了我到目前为止所做的工作: private static void createPaginatio

我正在使用jtable进行分页。我使用DB查询从数据库中提取行,然后将行设置为jtable模型。现在,我有超过740万行,每页显示10万行,这将生成74个分页按钮,如图所示

但是我想显示分页按钮,比如,显示当前页面的前两页和下两页。并始终显示前3页和最后3页。假设用户位于第20页,则分页方式如下: 1,2,3 ... 18,19,20,21,22 ... 72,73,74

下面是我的代码示例,它显示了我到目前为止所做的工作:

private static void createPaginationButtons(Connection conn) throws SQLException {
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("SELECT count(*) FROM cdr");
    while (rs.next()) {
        totalRows = rs.getInt(1);
    }
    int v = totalRows % recordPerPage == 0 ? 0 : 1;
    totalPages = totalRows / recordPerPage + v;
    createButton(totalPages);
}
private static void createButton(int totalPages) throws SQLException {
        for (int i = 0; i < totalPages;) {
            buttons = new JButton("" + (i + 1));
            buttons.addActionListener(listener);
            panel.add(buttons);
            i++;
        }
        createTable(offSet);

    }
private static void createPaginationButtons(连接连接)抛出SQLException{
语句stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(“从cdr中选择计数(*));
while(rs.next()){
totalRows=rs.getInt(1);
}
INTV=totalRows%recordPerPage==0?0:1;
totalPages=totalRows/recordPerPage+v;
createButton(totalPages);
}
私有静态void createButton(int totalPages)引发SQLException{
对于(int i=0;i
这些函数用于创建按钮并将其添加到面板


那么,您只是在寻求有关您希望向用户显示哪些分页按钮的逻辑方面的帮助?这样您就可以清楚地了解应该执行的操作—问题出在哪里?它需要几个if语句和简单的算术运算,仅此而已。也许我们可以使用更好的控件,比如
<[1]>
,其中
[1]
是文本字段。用户可以进入他们想要的页面
向后/向前导航一页。甚至可以考虑使用<代码> JSlider <代码>来帮助“是”,我这样做的格式是:第一,前一个,文本字段。接下来,您可以在开始时创建x个按钮,并每次覆盖文本