swing分页代码

//全局变量
private int page = 1;
private int totalPage;

//第一页按钮监听
private void jFirstButtonActionPerformed(java.awt.event.ActionEvent evt) {
// 查询第一页
page = 1;
//插入查询代码

setButtonEnabled(totalPage, page);
}

//前一页按钮监听
private void jPrevButtonActionPerformed(java.awt.event.ActionEvent evt) {
// 上一页
page--;
//插入查询代码

setButtonEnabled(totalPage, page);
}

//下一页按钮监听
private void jNextButtonActionPerformed(java.awt.event.ActionEvent evt) {
// 下一页
page++;
//插入查询代码

setButtonEnabled(totalPage, page);
}

//最后一页按钮监听
private void jLastButtonActionPerformed(java.awt.event.ActionEvent evt) {
// 最后一页
page = totalPage;
//插入查询代码

setButtonEnabled(totalPage, page);
}

/* 设置按钮有效性方法
* totalPage 总页数
* page 当前页
* jPageLabel 当前页显示标签
* jPageTotalLabel 总页数显示标签
* jFirstButton 第一页按钮
* jPrevButton 上一页按钮
* jNextButton 下一页按钮
* jLastButton 最后一页按钮
*/
private void setButtonEnabled(int totalPage, int page) {
jPageLabel.setText(page + "");
jPageTotalLabel.setText("总页数:" + totalPage);

if (page <= 1) {
jFirstButton.setEnabled(false);
jPrevButton.setEnabled(false);
} else {
jFirstButton.setEnabled(true);
jPrevButton.setEnabled(true);
}

if (page < totalPage) {
jNextButton.setEnabled(true);
jLastButton.setEnabled(true);
} else {
jNextButton.setEnabled(false);
jLastButton.setEnabled(false);
}

if (totalPage <= 1) {
jSelectButton.setEnabled(false);
} else {
jSelectButton.setEnabled(true);
}

}

// 判断一个字符串是否都为数字
public boolean isDigit(String strNum) {
return strNum.matches("[0-9]{1,}");
}

/* 选定数字页按钮监听
* jPageNumberTextField 页码数字文本字段
*/
private void jSelectButtonActionPerformed(java.awt.event.ActionEvent evt) {
// 查询指定页
String number = jPageNumberTextField.getText().trim();
if (!number.equals("") && isDigit(number)) {
page = Integer.parseInt(number);
if (page < 1) {
page = 1;
} else if (page > totalPage) {
page = totalPage;
}

//插入查询代码

setButtonEnabled(totalPage, page);
}
}
好的,以下是Java Swing分页查询代码示例: ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.ArrayList; public class PaginationQuery extends JFrame implements ActionListener { private JTextField pageTextField; private JButton goButton, prevButton, nextButton; private JPanel contentPanel; private JLabel resultLabel; private ArrayList<String> results; // 存储查询结果 private int pageSize = 10; // 每页数量 private int currentPage = 1; // 当前页码 public PaginationQuery() { super("分页查询"); // 创建组件 pageTextField = new JTextField(10); goButton = new JButton("Go"); prevButton = new JButton("Prev"); nextButton = new JButton("Next"); resultLabel = new JLabel(); // 添加监听器 goButton.addActionListener(this); prevButton.addActionListener(this); nextButton.addActionListener(this); // 设置布局 contentPanel = new JPanel(new BorderLayout()); JPanel topPanel = new JPanel(new FlowLayout()); topPanel.add(new JLabel("跳转到第")); topPanel.add(pageTextField); topPanel.add(new JLabel("页")); topPanel.add(goButton); topPanel.add(prevButton); topPanel.add(nextButton); contentPanel.add(topPanel, BorderLayout.NORTH); contentPanel.add(resultLabel, BorderLayout.CENTER); setContentPane(contentPanel); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); pack(); setLocationRelativeTo(null); setVisible(true); } @Override public void actionPerformed(ActionEvent e) { int totalPage = (int) Math.ceil((double) results.size() / pageSize); // 总页数 Object source = e.getSource(); if (source == goButton) { // 跳转到指定页码 try { int targetPage = Integer.parseInt(pageTextField.getText()); if (targetPage < 1 || targetPage > totalPage) { JOptionPane.showMessageDialog(this, "页码超出范围", "错误", JOptionPane.ERROR_MESSAGE); } else { currentPage = targetPage; updateResultLabel(); } } catch (NumberFormatException ex) { JOptionPane.showMessageDialog(this, "页码格式错误", "错误", JOptionPane.ERROR_MESSAGE); } } else if (source == prevButton) { // 上一页 if (currentPage > 1) { currentPage--; updateResultLabel(); } } else if (source == nextButton) { // 下一页 if (currentPage < totalPage) { currentPage++; updateResultLabel(); } } } private void updateResultLabel() { int startIndex = (currentPage - 1) * pageSize; int endIndex = Math.min(startIndex + pageSize, results.size()); StringBuilder sb = new StringBuilder(); sb.append("<html>"); // 使 Label 能够显示多行文本 for (int i = startIndex; i < endIndex; i++) { sb.append(results.get(i)).append("<br>"); } sb.append("</html>"); resultLabel.setText(sb.toString()); contentPanel.revalidate(); // 更新界面 } public void query(String condition) { // 模拟查询操作 results = new ArrayList<>(); for (int i = 1; i <= 100; i++) { results.add(condition + " " + i); } updateResultLabel(); } public static void main(String[] args) { PaginationQuery pq = new PaginationQuery(); pq.query("Test"); // 查询条件为 "Test" } } ``` 这是一个简单的带分页功能的 Java Swing 程序示例,使用了 JLabel、JTextField、JButton 和 JPanel 等 Swing 组件,并实现了 ActionListener 接口。当用户输入页码点击“Go”按钮时,程序会跳转到对应页码并显示结果,点击“Prev”和“Next”按钮会分别向上翻页和向下翻页。在 `query` 方法中,执行查询操作并把结果存储在 `results` 列表中,通过调用 `updateResultLabel` 方法来更新显示结果的 JLabel。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值