表格分页

importjava.awt.BorderLayout;

importjava.awt.Dimension;

importjava.awt.EventQueue;

importjava.awt.Font;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

importjava.util.Vector;

 

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JPanel;

importjavax.swing.JScrollPane;

importjavax.swing.JTable;

importjavax.swing.UIManager;

importjavax.swing.border.EmptyBorder;

importjavax.swing.table.DefaultTableModel;

importjavax.swing.table.JTableHeader;

 

public classPageTable extends JFrame {

   

    /**

     * 刘力天

     */

    private static final long serialVersionUID= 1698867170940729036L;

    //容器

    private JPanel contentPane;

    //表格

    private JTable table;

    //按钮首页

    private JButton firstPageButton;

    //前一页

    private JButton latePageButton;

    //下一页

    private JButton nextPageButton;

    //末页

    private JButton lastPageButton;

    //

    private int maxPageNumber;

    private int currentPageNumber = 1;

    private double pageSize = 5;

    private DefaultTableModel defaultModel;

   

    /**

     *Launch the application.

     */

    public static void main(String[] args) {

        try {

           UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");

        } catch(Throwable e) {

            e.printStackTrace();

        }

       EventQueue.invokeLater(new Runnable() {

            public void run() {

                try {

                    PageTable frame = newPageTable();

                    frame.setVisible(true);

               } catch (Exception e) {

                    e.printStackTrace();

                }

            }

        });

    }

    public PageTable() {

        addWindowListener(new WindowAdapter() {

           @Override

            public voidwindowActivated(WindowEvent e) {

                do_this_windowActivated(e);

            }

        });

        //标题

        setTitle("表格的分页");

        //关闭

       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //大小及位置

        setBounds(100, 100, 450, 300);

        //容器

        contentPane = new JPanel();

        //容器边框

        contentPane.setBorder(new EmptyBorder(5,5, 5, 5));

        //容器布局

        contentPane.setLayout(newBorderLayout(0, 0));

        //添加容器

        setContentPane(contentPane);

        //面板

        JPanel panel = new JPanel();

        //添加面板

        contentPane.add(panel, BorderLayout.SOUTH);

        //首页

        firstPageButton = new JButton("首页");

        //为首页添加事件

        firstPageButton.addActionListener(newActionListener() {

            public voidactionPerformed(ActionEvent e) {

               do_firstPageButton_actionPerformed(e);

            }

        });

        //首页字体

        firstPageButton.setFont(new Font("微软雅黑", Font.PLAIN, 14));

        //添加首页

        panel.add(firstPageButton);

        //前一页

        latePageButton = new JButton("前一页");

        //为前一页添加事件

        latePageButton.addActionListener(newActionListener() {

            public voidactionPerformed(ActionEvent e) {

               do_latePageButton_actionPerformed(e);

            }

        });

        //前一页设置字体

        latePageButton.setFont(new Font("微软雅黑", Font.PLAIN, 14));

        //添加前一页

        panel.add(latePageButton);

        //下一页

        nextPageButton = new JButton("下一页");

        //为下一页添加事件

        nextPageButton.addActionListener(newActionListener() {

            public voidactionPerformed(ActionEvent e) {

               do_nextPageButton_actionPerformed(e);

            }

        });

        //为下一页设置字体

        nextPageButton.setFont(new Font("微软雅黑", Font.PLAIN, 14));

        //添加下一页

        panel.add(nextPageButton);

        //末页

        lastPageButton = new JButton("末页");

        //末页事件

        lastPageButton.addActionListener(newActionListener() {

            public voidactionPerformed(ActionEvent e) {

               do_lastPageButton_actionPerformed(e);

            }

        });

        //末页设置字体

        lastPageButton.setFont(new Font("微软雅黑", Font.PLAIN, 14));

        //添加末页

        panel.add(lastPageButton);

        //滚动条

        JScrollPane scrollPane = newJScrollPane();

        //添加滚动条

        contentPane.add(scrollPane,BorderLayout.CENTER);

        //表格

        table = new JTable();

        //表格字体

        table.setFont(new Font("微软雅黑", Font.PLAIN, 14));

        //表格行高

        table.setRowHeight(35);

        //表头

        JTableHeader header =table.getTableHeader();

        //表头设置字体

        header.setFont(new Font("微软雅黑", Font.PLAIN, 16));

        //设置表头高度

        header.setPreferredSize(newDimension(header.getWidth(), 40));

        //表格添加滚动条

        scrollPane.setViewportView(table);

    }

    //窗体加载时

    protected void do_this_windowActivated(WindowEvente) {

          //表格模型

        defaultModel = (DefaultTableModel)table.getModel();

        //

        defaultModel.setRowCount(0);

        defaultModel.setColumnIdentifiers(newObject[] { "序号", "平方数" });

        for (int i = 0; i < 23; i++) {

            defaultModel.addRow(new Object[] { i,i * i });

        }

        maxPageNumber = (int)Math.ceil(defaultModel.getRowCount() / pageSize);

        table.setModel(defaultModel);

        firstPageButton.setEnabled(false);

        latePageButton.setEnabled(false);

        nextPageButton.setEnabled(true);

        lastPageButton.setEnabled(true);

    }

   

    @SuppressWarnings("unchecked")

    //首页事件

    protected voiddo_firstPageButton_actionPerformed(ActionEvent e) {

          //初始页

        currentPageNumber = 1;

        //得到集合

        Vector dataVector =defaultModel.getDataVector();

        //模型

        DefaultTableModel newModel = newDefaultTableModel();

       

        newModel.setColumnIdentifiers(newObject[] { "序号", "随机数" });

        for (int i = 0; i < pageSize; i++) {

            newModel.addRow((Vector)dataVector.elementAt(i));

        }

        table.setModel(newModel);

        firstPageButton.setEnabled(false);

        latePageButton.setEnabled(false);

        nextPageButton.setEnabled(true);

        lastPageButton.setEnabled(true);

    }

   

    @SuppressWarnings("unchecked")

    //下一页事件

    protected voiddo_latePageButton_actionPerformed(ActionEvent e) {

        currentPageNumber--;

        Vector dataVector =defaultModel.getDataVector();

        DefaultTableModel newModel = newDefaultTableModel();

        newModel.setColumnIdentifiers(newObject[] { "序号", "随机数" });

        for (int i = 0; i < pageSize; i++) {

            newModel.addRow((Vector)dataVector.elementAt((int) (pageSize * (currentPageNumber - 1) + i)));

        }

        table.setModel(newModel);

        if (currentPageNumber == 1) {

            firstPageButton.setEnabled(false);

            latePageButton.setEnabled(false);

        }

        nextPageButton.setEnabled(true);

        lastPageButton.setEnabled(true);

    }

   

    @SuppressWarnings("unchecked")

    //前一页

    protected voiddo_nextPageButton_actionPerformed(ActionEvent e) {

        currentPageNumber++;

        Vector dataVector =defaultModel.getDataVector();

        DefaultTableModel newModel = newDefaultTableModel();

        newModel.setColumnIdentifiers(newObject[] { "序号", "平方数" });

        if (currentPageNumber == maxPageNumber){

            int lastPageSize = (int)(defaultModel.getRowCount() - pageSize * (maxPageNumber - 1));

            for (int i = 0; i <lastPageSize; i++) {

                newModel.addRow((Vector)dataVector.elementAt((int) (pageSize * (maxPageNumber - 1) + i)));

            }

            nextPageButton.setEnabled(false);

            lastPageButton.setEnabled(false);

        } else {

            for (int i = 0; i < pageSize;i++) {

                newModel.addRow((Vector)dataVector.elementAt((int) (pageSize * (currentPageNumber - 1) + i)));

            }

        }

        table.setModel(newModel);

        firstPageButton.setEnabled(true);

        latePageButton.setEnabled(true);

    }

   

    @SuppressWarnings("unchecked")

    //下一页

    protected voiddo_lastPageButton_actionPerformed(ActionEvent e) {

        currentPageNumber = maxPageNumber;

        Vector dataVector =defaultModel.getDataVector();

        DefaultTableModel newModel = newDefaultTableModel();

        newModel.setColumnIdentifiers(newObject[] { "序号", "平方数" });

        int lastPageSize = (int)(defaultModel.getRowCount() - pageSize * (maxPageNumber - 1));

       

        if (lastPageSize == 5) {

            for (int i = 0; i < pageSize;i++) {

                newModel.addRow((Vector)dataVector.elementAt((int) (pageSize * (maxPageNumber - 1) + i)));

            }

        }else {

            for (int i = 0; i <lastPageSize; i++) {

                newModel.addRow((Vector)dataVector.elementAt((int) (pageSize * (maxPageNumber - 1) + i)));

            }

        }

       

        table.setModel(newModel);

        firstPageButton.setEnabled(true);

        latePageButton.setEnabled(true);

        nextPageButton.setEnabled(false);

        lastPageButton.setEnabled(false);

       

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值