翻页java
‘壹’ 每翻一页,都去数据库中查一次。这种分页效果用java怎么写
在用jdbc访问某个数据库,并读出一个resultset数据记录集时,如果记录数太大,则会占用客户端(运行java程式的机器)的大量内存(如果客户端是某个大企业的营业部门的代理点分机,则有可能java程式会占用完全部内存,然后报错),并且会造成客户端负载过重,运行速度极度缓慢(在sybase数据库中,我曾做过一个测试。选择某个大数据记录,sql语句运行完需要4分钟,而在java客户端完全显示出来,则需要将近10分钟)。解决方案:
给用户提供一个可选择分页显示的选项,如果用户不想分页显示则完全显示,否则分页显示。
1.定义一个分页数全局常量,即每页显示的数据条数。
private final static int skip = 100;
2.定义一个确定某个分页条数的全局变量,即该显示页的当前显示数据条数。
private static int cur = 0;
3.定义一个resultset全局变量,以便多次使用
private static java.sql.result rs = null;
4.打开一个数据库连接[/pre]
class.forname( sqldriver );java.sql.connection conn = drivermanager.getconnection( url, (string)username,(string)passwd)statement stmt = conn.createstatement();string searchsql = "......";rs = stmt.executequery(searchsql);
‘贰’ java中swing做表格翻页用什么类做
Swing中一般用JScrollPan来进行滚动,不需要使用翻页。
如果非要翻页,有两种方式:
一次检索出全部数据,放到TableModel中,这时可以设计另一个TableModel做成一个类似滑动窗口的方式,每次在窗口Model中只映射原Model的部分数据。
一次检索出一页数据,这与网页中的翻页完全相同。
对第一种情况,下面给出一个实现:
publicclass PageTableModel extends AbstractTableModel implements TableModel,TableModelListener{
private TableModel baseModel;
public PageTableModel(TableModel baseModel){
this.baseModel=baseModel;
baseModel.addTableModelListener(this);
}
/**当前页,从0开始编号.
*/
private int currentPage;
/**每页最多数据行数.
*/
private int pageSize=20;
/**获取总页数。
*
* @return
*/
public int getPageCount(){
int mod=baseModel.getRowCount()%pageSize;
int hasMode=mod>0?1:0;
return baseModel.getRowCount()/pageSize+hasMode;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
@Override
public int getRowCount() {
if(getCurrentPage()<getPageCount()-1)return pageSize;
return baseModel.getRowCount() % pageSize;
}
@Override
public int getColumnCount() {
return baseModel.getColumnCount();
}
@Override
public String getColumnName(int columnIndex) {
return baseModel.getColumnName(columnIndex);
}
@Override
public Class<?> getColumnClass(int columnIndex) {
return baseModel.getColumnClass(columnIndex);
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return baseModel.isCellEditable(getBaseModelRow(rowIndex), columnIndex);
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
return baseModel.getValueAt(getBaseModelRow(rowIndex), columnIndex);
}
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
baseModel.setValueAt(aValue, getBaseModelRow(rowIndex), columnIndex);
}
@Override
public void tableChanged(TableModelEvent e) {
int firstRow,lastRow;
int minFirstRow=getBaseModelRow(0);
int maxFirstRow=getBaseModelRow(pageSize-1);
if(e.getFirstRow()>maxFirstRow)return;
if(e.getLastRow()<minFirstRow)return;
firstRow=getThisModelRow(e.getFirstRow());
if(firstRow<0)firstRow=0;
lastRow=getThisModelRow(e.getLastRow());
if(lastRow<0)lastRow=this.pageSize-1;
fireTableChanged(new TableModelEvent(this, firstRow, lastRow, e.getColumn(), e.getType()));
}
/**获取指定的行在底层Model中的行号.
*
* @param row
* @return
*/
private int getBaseModelRow(int row){
return getCurrentPage()*pageSize+row;
}
/**获取指定的底层Model中的行号对应的当前Model的行号.
* 如果底层Model中指定的行号不在当前Model的显示范围内,应该返回-1。
*
* @param row
* @return
*/
private int getThisModelRow(int row){
if(row/pageSize !=getCurrentPage())return -1;
return row%pageSize;
}
}
‘叁’ JAVA高手能否告知,JAVA如何实现自动从文件夹读取文件并翻页显示
图片你自己改了。图片切换效果已经做出来了
package com.east.lesson11.swing;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class CardDemo extends JFrame {
CardLayout cl=null;
JPanel cp=null;
public CardDemo(){
super("卡片式布局");
}
public void init(){
cl=new CardLayout();
cp=new JPanel();
JButton pre=new JButton("上一张");
pre.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
cl.previous(cp);
}
});
JButton next=new JButton("下一张");
next.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
cl.next(cp);
}
});
JPanel np=new JPanel();
np.add(pre);
np.add(next);
add(np,BorderLayout.NORTH);
cp.setLayout(cl);
try {
Image img1=ImageIO.read(new File("image/allseeds.png"));
JLabel l1=new JLabel();
l1.setIcon(new ImageIcon(img1));
cp.add(l1,"img1");//对于CardLayout,和其他Layout不一样,要为卡片添加名字img1
Image img2=ImageIO.read(new File("image/menu.png"));
JLabel l2=new JLabel();
l2.setIcon(new ImageIcon(img2));
cp.add(l2,"img2");
Image img3=ImageIO.read(new File("03.jpg"));
JLabel l3=new JLabel();
l3.setIcon(new ImageIcon(img3));
cp.add(l3,"img3");
Image img4=ImageIO.read(new File("04.jpg"));
JLabel l4=new JLabel();
l3.setIcon(new ImageIcon(img4));
cp.add(l4,"img4");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
add(cp,BorderLayout.CENTER);
this.setBounds(200, 200, 800, 800);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
CardDemo cdCardDemo=new CardDemo();
cdCardDemo.init();
}
}
‘肆’ java怎么实现翻页
分页的一般思想:
1.记录总数
2.每页记录数
3.页数(可通过前两个条件算出来,你应该会的吧)
然后在页面控制好当前页的页码去后台拿你想要的数据
以上纯是思路,楼主可以参考一下,如果你想要代码,你自己去网上搜,这种例子到处都是,我就不在这里现眼了。呵。。。
‘伍’ JAVA基础题目:怎么样才能实现“翻页”的功能!点击【NEXT】进入下一个界面;你举个例子可诶
好多方法
‘陆’ JAVA基础题目:怎么样才能实现“翻页”的功能!点击【NEXT】进入下一个界面;你举个例子可诶吗啊
读取你数据库的所有记录,这是总行数,然后你规定一下没页显示几条记录,然后还要记录一下当前的页数!
比如现在一共是30记录,你页显示7条,那么就是5页。(30+7-1)/7=5,你刚进来的时候肯定是第一页,那么就把1传进来,第一页就是显示第1~第7条记录,点下一页传2进来,第二页现实低第8~14条记录!怎么去记录就要看你怎么操作了,如果你是用SQL语句的话就帮不了你了,因为不知道你用的什么数据库!如果在集合里去的话,你可以根据传入的参数来算出本页的开始记录数和结束的记录数,开始是:当前页*每页记录数-没页记录数,结束就是:当前页*没也记录数-1.因为集合的下标是从0开始的,所以要-1.
‘柒’ 问个问题JAVA网络编程的问题,怎么在网页中用java模拟自动翻页并读取页面数据
思路比较简单,说白了就是取指定区域中的数据。
就拿贴吧来说吧:
当你打开一个帖子的时候或者获取指定贴吧中帖子列表时,java后台(其实其他语言也一样)首先查找数据库读取总数目(不知你是否学过sql:select count(*) from),然后根据指定的页面容量(比如一页显示10条20条)计算出一共有多少页,然后根据当前是第几页,就根据这个页码计算需要取哪些数据,例如第二页,每页十条,那么就取从 (2-1)*10+1行 到2*10行之间的记录(select * from (select * from xxx where row < 20) where row >11)
如果是list等数据/集合类型的也一样,先算总数得出页数,然后根据页码去取相应数据
‘捌’ java中做的翻页,如何能在不同页面设置每页输出不同数量的数据,求高手帮忙,小弟在这谢谢了
html
headtitleTree walk test - JScript/titlestylebody { font-family: 宋体; font-size: 9pt }.first { color: gray; text-decoration: none }.later { cursor: hand; color: red; text-decoration: none }/stylemeta name="GENERATOR" content="Microsoft FrontPage 4.0"meta name="ProgId" content="FrontPage.Editor.Document"/head
!--配置说明:width控制当前列的宽度;sortBy排序指向下面的data的tagname;sortType为排序类型,目前支持三种:text,date,number,也可实现自己的类型,只要修改sort函数就可了--XML ID="head"xmldata username width="150" sortBy="username" sortType="text"用户名/username pw width="150" sortBy="pw" sortType="number"密码/pw date width="200" sortBy="date" sortType="date"日期/date/xmldata/XML!--配置说明:isShow,控制此处内容是否显示;isKey是否是主键,1是且内容会在theValue里面显示,0否;--XML ID="data"xmldatarow id isShow="0" isKey="1"1/id username isShow="1" isKey="1"fmzhang1/username pw isShow="1" isKey="1"1/pw date isShow="1" isKey="0"2003-3-3/date/rowrow id isShow="0" isKey="1"2/id username isShow="1" isKey="1"fmzhang11/username pw isShow="1" isKey="1"1/pw date isShow="1" isKey="0"2003-3-3/date/rowrow id isShow="0" isKey="1"3/id username isShow="1" isKey="1"fmzhang2/username pw isShow="1" isKey="1"2/pw date isShow="1" isKey="0"2003-3-7/date/rowrow id isShow="0" isKey="1"4/id username isShow="1" isKey="1"fmzhang3/username pw isShow="1" isKey="1"3/pw date isShow="1" isKey="0"2003-5-3/date/rowrow id isShow="0" isKey="1"5/id username isShow="1" isKey="1"fmzhang4/username pw isShow="1" isKey="1"4/pw date isShow="1" isKey="0"2002-3-3/date/rowrow id isShow="0" isKey="1"6/id username isShow="1" isKey="1"fmzhang5/username pw isShow="1" isKey="1"5/pw date isShow="1" isKey="0"2003-1-3/date/rowrow id isShow="0" isKey="1"7/id username isShow="1" isKey="1"fmzhang6/username pw isShow="1" isKey="1"6/pw date isShow="1" isKey="0"2005-1-3/date/rowrow id isShow="0" isKey="1"8/id username isShow="1" isKey="1"fmzhang7/username pw isShow="1" isKey="1"7/pw date isShow="1" isKey="0"2003-5-3/date/rowrow id isShow="0" isKey="1"9/id username isShow="1" isKey="1"fmzhang8/username pw isShow="1" isKey="1"8/pw date isShow="1" isKey="0"2003-1-8/date/rowrow id isShow="0" isKey="1"10/id username isShow="1" isKey="1"fmzhang9/username pw isShow="1" isKey="1"9/pw date isShow="1" isKey="0"2003-11-3/date/row/xmldata/XMLbody id="objbody" onload="show(‘first‘)"
div id="mydiv"/divtable border="0" cellpadding="2" width="57%" tr td width="13%"input type="button" value="首页" onclick="show(‘first‘)"/td td width="14%"input type="button" value="" onclick="show(‘prov‘)"/td td width="35%"input type="button" value="" onclick="show(‘next‘)"/td td width="14%"input type="button" value="最后一页" onclick="show(‘last‘)"/td td width="40%"input type="text" size="5" maxlength="5" name="pageNum" value onkeydown="if(event.keyCode==13) goPageNum()" onkeyup="value=value.replace(/[^\d]/g,‘‘)" onblur="value=value.replace(/[^\d]/g,‘‘)" onbeforepaste="clipboardData.setData(‘text‘,clipboardData.getData(‘text‘).replace(/[^\d]/g,‘‘))"input type="button" value="go" onclick="goPageNum()"/td /tr tr td width="13%"用户名/td td width="14%"input type="text" name="xm" size="10" value/td td width="35%" nowrap onclick="if(isResult.checked==true) isResult.checked=false;else if(isResult.checked==false) isResult.checked=true"input type="checkbox" name="isResult" onclick="if(this.checked==true) this.checked=false;else this.checked=true;" value="ON"在当前结果中查找/td td width="54%" colspan="2"input type="button" name="search" onclick="search()" value="查找" size="10"/td /tr/tabletable border="0" cellpadding="2" width="100%"/tablenbsp;nbsp;nbsp;nbsp;table id="tableSec" tr td !-- 添加自己的按钮 -- input type="button" value="此处添加自定义按钮" onclick="yourFunction()"/td /tr/table
/body
/htmlscript//下面为初始化参数var datanodes=data.documentElement.childNodes;//下面三行保存副本,供删除以后恢复var xmlDoc=document.all("data").XMLDocument;var xmlDocTemp=new ActiveXObject("MSXML.DOMDocument");xmlDocTemp.appendChild(xmlDoc.documentElement.cloneNode(true));var totalrow=datanodes.length;//总数据行数var pagerow=4;//每页行数var totalpage=0;//总页数if(totalrow!=0) { if(totalrow%pagerow!=0) totalpage=parseInt(totalrow/pagerow)+1; else totalpage=parseInt(totalrow/pagerow);}var currPage=1;//当前页码var checkArr=new Array();//是否选中var theValueArr=new Array();//记录选中记录的checkbox的value值for(var i=0;itotalrow;i++){ checkArr[i]=0;//记录选中的记录0为未选中,1为选中,初始为0 theValueArr[i]="";}var buildArr=new Array();//保存当前页要生成的记录序号var sortOrder=‘asce‘;//保存升序还是降序 mydiv.innerText="一共"+totalpage+"页"+totalrow+"条记录,当前为第1页,当前选中0条记录";var nodes=head.documentElement.childNodes;var nodeslen=nodes.length;var attributes=head.documentElement.firstChild.attributes;var objform=document.createElement("FORM name=‘fjcl‘");var objtable=document.createElement("TABLE bordercolor=‘#1EC600‘ border=‘1‘"); var objtbody=document.createElement("TBODY");objtable.appendChild(objtbody);/scriptscript language="javascript"//生成表格头部function addHead(){var objtr=document.createElement("TR bgColor=‘#FFCCCC‘");objtbody.appendChild(objtr);var objtd=document.createElement("TD");objtd.width="20";objtd.innerText=" ";objtr.appendChild(objtd);for(var i=0;inodeslen;i++){ var objtd=document.createElement("TD onclick=‘‘ onmousemove=‘‘"); objtd.width=head.documentElement.childNodes.item(i).getAttribute("width"); objtd.onmousemove="style.cursor=‘hand‘"; var sortBy=head.documentElement.childNodes.item(i).getAttribute("sortBy"); var sortType=head.documentElement.childNodes.item(i).getAttribute("sortType"); objtd.onclick="sort(‘"+sortBy+"‘,‘"+sortType+"‘,‘"+i+"‘)"; var tdtext=nodes.item(i).text+"→"; var objtext=document.createTextNode(tdtext); objtd.appendChild(objtext); objtr.appendChild(objtd);}objform.appendChild(objtable);objbody.appendChild(objform);objbody.appendChild(tableSec);}//添加符合条件的记录function addAll(){ var childdatanodes=data.documentElement.childNodes.item(0).childNodes; var childtotalrow=childdatanodes.length;//每行下面可能的数据项长度 for(var i=0;ibuildArr.length;i++) {var objtr; if(i%2==0) {objtr=document.createElement("TR onmouseover=‘‘ bgColor=‘#80FF80‘ ‘first‘ onclick=‘changeColor()‘ "); }else { objtr=document.createElement("TR onmouseover=‘‘ bgColor=‘#FFFF80‘ ‘first‘ onclick=‘changeColor()‘ "); } if(checkArr[buildArr[i]-1]==1) objtr.className="later"; objtr.onmouseover="style.cursor=‘hand‘"; var thetd=document.createElement("TD"); var objCheckBox; if(checkArr[buildArr[i]-1]==0){ objCheckBox=document.createElement("input type=‘CHECKBOX‘ name=‘rad‘ value=‘‘ onclick=‘‘"); }else { objCheckBox=document.createElement("input type=‘CHECKBOX‘ name=‘rad‘ value=‘‘ onclick=‘‘ checked"); }objCheckBox.onclick=objCheckBox.onclick+";if(this.checked==true) checkArr["+parseInt(buildArr[i]-1)+"]=‘1‘;else checkArr["+parseInt(buildArr[i]-1)+"]=0"; thetd.appendChild(objCheckBox); objtr.appendChild(thetd); for(var j=0;jchildtotalrow;j++) { var isShow=datanodes.item(buildArr[i]-1).childNodes.item(j).getAttribute("isShow");//是否显示 var isKey=datanodes.item(buildArr[i]-1).childNodes.item(j).getAttribute("isKey"); //是否是主键 if(isShow==‘1‘)//isShow=1 { var objtd=document.createElement("TD onclick=‘‘"); var tdtext=document.createTextNode(datanodes.item(buildArr[i]-1).childNodes.item(j).text); objtd.appendChild(tdtext); objtr.appendChild(objtd);objtd.onclick=objCheckBox.click; } if(isKey==‘1‘) { if(objCheckBox.value=="") objCheckBox.value=objCheckBox.value+datanodes.item(buildArr[i]-1).childNodes.item(j).tagName+"="+datanodes.item(buildArr[i]-1).childNodes.item(j).text; elseobjCheckBox.value=objCheckBox.value+""+datanodes.item(buildArr[i]-1).childNodes.item(j).tagName+"="+datanodes.item(buildArr[i]-1).childNodes.item(j).text; } } theValueArr[buildArr[i]-1]=objCheckBox.value; objtbody.appendChild(objtr); } objform.appendChild(objtable); objbody.appendChild(objform); objbody.appendChild(tableSec);}//翻页按钮操作function show(thePage){ if(totalrow==0) { del(); addHead(); return false; } if(thePage=="first") { del(); addHead(); buildArr=new Array(); if(totalrow=pagerow){ for(var i=1;i=pagerow;i++) buildArr[i-1]=i; }else{ for(var i=1;i=totalrow;i++) buildArr[i-1]=i; } addAll(); currPage=1; }else if(thePage=="prov") { if(currPage==1) return false; del(); addHead(); buildArr=new Array(); for(var i=1;i=pagerow;i++){ buildArr[i-1]=(currPage-2)*pagerow+i; } addAll(); currPage=currPage-1; }else if(thePage=="next") { if(currPage==totalpage) return false; del(); addHead(); buildArr=new Array(); if((currPage+1)*pagerow=totalrow){ for(var i=1;i=totalrow-currPage*pagerow;i++) buildArr[i-1]=currPage*pagerow+i; }else { for(var i=1;i=pagerow;i++) buildArr[i-1]=currPage*pagerow+i; } addAll(); currPage=currPage+1; }else if(thePage=="last") { if(currPage==totalpage) return false;del(); addHead(); buildArr=new Array(); if(totalrow%pagerow==0){ for(var i=1;i=pagerow;i++) buildArr[i-1]=totalrow-pagerow+i; }else{ for(var i=1;i=totalrow%pagerow;i++) buildArr[i-1]=totalrow-totalrow%pagerow+i; } addAll(); currPage=totalpage; } changeMyDiv();}//删除objform下面的所有内容function del(){objform.removeNode(true);objform=document.createElement("FORM name=‘fjcl‘");objtable=document.createElement("TABLE bordercolor=‘#1EC600‘ border=‘1‘"); objtbody=document.createElement("TBODY");objtable.appendChild(objtbody);}//改变颜色function changeColor(){for(var i=0;iobjtbody.childNodes.length-1;i++){ var theRow=buildArr[i]-1; if(checkArr[theRow]==0) { objtbody.childNodes.item(i+1).className="first"; } else { objtbody.childNodes.item(i+1).className="later"; } }changeMyDiv();}function changeMyDiv(){var totalChecked=0;//记录当前选中记录数for(var i=0;itotalrow;i++){ if(checkArr[i]==1) totalChecked+=1;}mydiv.innerText="一共"+totalpage+"页"+totalrow+"条记录,当前为第"+currPage+"页,当前选中"+totalChecked+"条记录"; }
function showValue(){ var str=""; var str2=""; for(var i=0;itotalrow;i++) { str+=checkArr[i]+";"; if(checkArr[i]==1) str2+=theValueArr[i]+";"; } alert(str); alert(str2);}//跳转到某个页function goPageNum(){ var page=pageNum.value; if(totalrow==0) { alert("没有可操作的记录!"); return false; } if(page.length==0) { alert("请输入要跳转的页码!"); return false; } if(parseInt(page)==0
‘玖’ 如何用JAVA实现类似ACDSee中的图片前后翻页
用File.list()貌似,不记得了。
就是取出一个文件夹下面所有的文件,存到一个File数组里。取出来判断是否是图片的后缀名嘛。
翻页就是下标改变。
‘拾’ JAVA大家帮我看下:怎么实现输出输入然后显示翻页的,我的代码如下。初学者不太会,请大家帮帮小弟我。
修改了一下:
importjava.util.*; //导入包,Scanner需要用到
publicclassMyShopping{
//全局变量
staticString[][]commodity={
{"衣服","23","01"},{"鞋子","52","02"},
{"帽子","34","03"},{"围巾","16","04"},
{"腰带","23","05"}
};
publicstaticvoidmain(String[]args){
commodityMenu();
}
staticvoidcommodityMenu(){
intcurrentPage=0; //默认显示页面
intpageSize=2; //页面显示数量
intpageEnd=currentPage*pageSize+pageSize; //页面结束位置
while((pageSize*(currentPage))<=commodity.length){
System.out.println("请选择商品: ");
System.out.println("|商品| |价格| |编号|"); //改用制表符
for(inti=currentPage*pageSize;i<pageEnd;i++){ //重写了一下
System.out.print((i+1)+":");
for(intj=0;j<commodity[i].length;j++){
System.out.print(commodity[i][j]+" ");
}
System.out.println();
}
System.out.println(" *:下一页");
System.out.println("#:返回");
System.out.println("----------------------------------");
System.out.print("请选择操作(*或#):");
//添加输入处理
Scannersc=newScanner(System.in);
Stringchoice=sc.next();
//下一页
if(choice.equals("*")){
currentPage++;
pageEnd=currentPage*pageSize+pageSize;
if(pageEnd>commodity.length){
pageEnd=commodity.length;
}
}
//返回第一页
if(choice.equals("#")){
currentPage=0;
pageEnd=currentPage*pageSize+pageSize;
}
System.out.println();
}
}
}
效果: