仿网页分页页码
来源:互联网 发布:知乎 如何评价李叫兽 编辑:程序博客网 时间:2024/05/17 08:56
本文manymore13原创,转载请标明出处 http://blog.csdn.net/manymore13/article/details/8472586
2012 苹果发布了ipad mini和iphone 5 ,微软发布win 8,wp8,谷歌推出果冻豆,并推出Nexus 7,十八大的召开,还有因玛
雅人预言是世界末日论等等在2012发生的大事.... 所以2012注定不是一个平静之年。我在去年闲暇时间看了不少各种仿某某的技术文
章,如仿微信登陆界面 欢迎界面qq界面以及仿网易新闻上面的什么什么..... 总之有各种仿。
仿照未必是一件坏事,先要学会仿照,接着理解他,吃透他,等你懂了一定原理后,发现以前的东西不怎么够好,需要改进,那
么通过你的改进,使你的软件用户体验更好,我想这应该就是微创新吧。
在这里引用下名人的话以增加文章的深度啊
“ 用户体验的创新是决定互联网应用能否受欢迎的关键因素,这种创新叫'微创新','微创新'引领互联网新的趋势和浪潮 ”。——周鸿祎
好了引用完名人的话总算啰嗦一把,下面继续啰嗦哈,直接切入正题
为了跟进潮流,我也来 仿某某,,以后再学习微创新。今天我仿得是网站最喜欢用的文章分页时的页码,看看效果图与代码你就知
道了。
package com.manymore13.page;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.FlowLayout;import java.awt.Image;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.IOException;import java.security.acl.LastOwnerException;import javax.imageio.ImageIO;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;public class PageNumDemo extends JFrame{private int sumPage = 35;//总的页码数,这里作为Demo,就写个固定值private int currentPage=1; // 默认是第一页private JPanel pageBtns = new JPanel(); // 存放一系列页码按钮 默认流布局PageNumDemo(){Image image = null;try{image = ImageIO.read((this.getClass().getResource("./image/logo.png")));} catch (IOException e){e.printStackTrace();}this.setIconImage((Image)image);// 设置窗口左上角的图标,我这里是个快播的图标this.setTitle("仿网页分页页码"); //设置窗口标题this.setLayout(new FlowLayout(15,20,20)); //设置JFrame的布局this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 档点击叉叉时,窗口可关闭this.setVisible(true); // 窗口可见this.setLocationRelativeTo(null); //窗口居中setPageBottom(1); //默认显示第一页 ,设置页码布局this.setSize(850, 118); // 窗口宽高this.setResizable(true);// 设置窗口可拉伸}/** * * @param selectNum 你按下的页码数字,例如你按下按钮5,就需要传个整型5 */private void setPageBottom(int selectNum){pageBtns.removeAll();if(selectNum<=0 || selectNum>sumPage){return;}// 这个是显示数字按钮的总个数,不包括首页 尾页等其他按钮int countNumBtn = 9; // 首页 1 2 3 4 5 6 7 8 9 尾页int half = countNumBtn/2;int startNum = 0;int endNum = 0;JButton btnFistPage = new JButton("首页");btnFistPage.setActionCommand("首页");btnFistPage.setToolTipText("首页");btnFistPage.setToolTipText("首页");btnFistPage.addActionListener(new BottomPageButtonAction());JButton btnLastPage = new JButton("末页");btnLastPage.setActionCommand("末页");btnLastPage.addActionListener(new BottomPageButtonAction());btnLastPage.setToolTipText("共"+sumPage+"页");Container con = this.getContentPane();con.invalidate();pageBtns.add(btnFistPage);if(selectNum !=1){JButton btnPrePage = new JButton("上一页");btnPrePage.setActionCommand("上一页");btnPrePage.setToolTipText("上一页是第"+(selectNum-1>=1?selectNum-1:1)+"页");btnPrePage.addActionListener(new BottomPageButtonAction());pageBtns.add(btnPrePage);}// 下面开始计算从左至右数字键(JButton)上的textint minBtnNum = selectNum-half;int maxBtnNum = selectNum+half;if(minBtnNum>0 && maxBtnNum<=sumPage){startNum = minBtnNum;endNum = maxBtnNum;}else if(minBtnNum<=0){startNum =1;endNum = countNumBtn>sumPage?sumPage:countNumBtn;}else if(maxBtnNum>sumPage){startNum = sumPage >countNumBtn?sumPage-(countNumBtn-1):1;endNum = sumPage;}for(int i=startNum;i<=endNum;i++){JButton btn = new JButton();btn.addActionListener(new BottomPageButtonAction(i));btn.setActionCommand("数字");btn.setToolTipText("第"+i+"页");btn.setText(i+"");if(i==selectNum){btn.setBackground(Color.red);}else{btn.setBackground(Color.white);}pageBtns.add(btn);}if(selectNum != sumPage){JButton btnNextPage = new JButton("下一页");btnNextPage.setActionCommand("下一页");btnNextPage.setToolTipText("下一页是第"+(selectNum+1<=sumPage?selectNum+1:sumPage)+"页");btnNextPage.addActionListener(new BottomPageButtonAction());pageBtns.add(btnNextPage);}pageBtns.add(btnLastPage);con.validate();this.add(pageBtns);}// 页码事件处理class BottomPageButtonAction implements ActionListener{int btnNumText =0;BottomPageButtonAction(){}BottomPageButtonAction(int num){btnNumText = num;}@Overridepublic void actionPerformed(ActionEvent e){String command = e.getActionCommand();System.out.println(command);if(command.equals("首页")){ // setPageBottom(1); // 首页就是第一页,所以直接传个1currentPage =1;}else if(command.equals("上一页")){setPageBottom(currentPage-1>=1?--currentPage:1);}else if(command.equals("下一页")){setPageBottom(currentPage+1<=sumPage?++currentPage:sumPage);}else if(command.equals("末页")){setPageBottom(sumPage); // 末页是最后的页数currentPage = sumPage;}else if(command.equals("数字")){setPageBottom(btnNumText);currentPage = btnNumText;}System.out.println("当前是第 "+currentPage+"页");}}/** * @param args */public static void main(String[] args){new PageNumDemo();}}
小功能简单实现了下,代码里注释很清楚了,JFrame里添加一个Jpanel,Jpanel里添加相应的JButton,由于Jpanel是流布局,所以Button在被添加时一定要按顺序添加。
源码在这里
- 仿网页分页页码
- 网页打印之分页打印,去掉页码
- JSP仿百度分页,谷歌分页页码处理
- JSP仿百度分页,谷歌分页页码处理
- JSP仿百度分页,谷歌分页页码处理
- 分页页码
- 分页页码
- 仿百度分页生成页码不涉及数据源(可自行使用)
- 分页:页码显示javascript
- GridView分页页码
- 分页页码显示算法
- 【MVC分页】页码
- 分页页码显示算法
- js分页页码
- 分页页码制作
- 前端分页拼接页码
- 分页页码制作
- jquery实现分页页码
- 浅谈当下测试该何去何从
- linux下exit系统调用
- linux 环境变量设置
- iOS设备硬件规格完整汇总
- 这些年,我的软件性能测试
- 仿网页分页页码
- 32个经典算法
- mysql隔离级别与sql blocking之间的关系
- 卡刷和线刷怎么区别
- Android文件资源(raw/data/asset)的存取
- ubuntu下安装ant、ivy,svn方法
- 静态变量的线程问题。
- 浅谈索引对数据库性能的影响
- Android常见问题--Assets文件大小限制