「java翻页比较」java翻页效果
本篇文章给大家谈谈java翻页比较,以及java翻页效果对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java中swing做表格翻页用什么类做
- 2、java如何实现翻页
- 3、java中做的翻页,如何能在不同页面设置每页输出不同数量的数据,求高手帮忙,小弟在这谢谢了
- 4、使用JAVA脚本(JavaScript)控制翻页
java中swing做表格翻页用什么类做
Swing中一般用JScrollPan来进行滚动,不需要使用翻页。
如果非要翻页,有两种方式:
一次检索出全部数据,放到TableModel中,这时可以设计另一个TableModel做成一个类似滑动窗口的方式,每次在窗口Model中只映射原Model的部分数据。
一次检索出一页数据,这与网页中的翻页完全相同。
对第一种情况,下面给出一个实现:
public class 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=mod0?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(firstRow0)firstRow=0;
lastRow=getThisModelRow(e.getLastRow());
if(lastRow0)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中,翻页比较头疼,下面是我写的一个实现翻页功能的类
请高手指正。
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脚本(JavaScript)控制翻页
这个要配合数据库的分页的,前台异步发送请求,后台根据你的参数,如当前页,是下一页还是什么的,然后传数据到前台。
java翻页比较的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java翻页效果、java翻页比较的信息别忘了在本站进行查找喔。