java中表格分页技术.docx
《java中表格分页技术.docx》由会员分享,可在线阅读,更多相关《java中表格分页技术.docx(8页珍藏版)》请在冰点文库上搜索。
java中表格分页技术
实验十表格
1.实验目的:
掌握表格的创建和表格模型的创建以及在按钮的添加和监听事件,掌握分页技术的原理。
2.实验题目:
在一个框架中添加一个表格和四个按钮:
首页,前一页,后一页,末页。
点击按钮达到分页的目的
3.实验代码:
packageJTabel;
importjava.awt.*;
importjava.awt.event.*;
importjava.util.Vector;
importjavax.swing.*;
importjavax.swing.table.*;
publicclassJavaHomework
{
staticintcurrentPageNumber;
staticintpagesize=5;//每一页有五行数据
staticintmaxPageNumber;//总的页数
publicstaticvoidmain(Stringargs[])
{
finalJFrameframe=newJFrame("表格的分页");
frame.setBounds(300,300,300,300);
VectorcolumnName=newVector();
columnName.add("序号");
columnName.add("平方数");
Vector>rowData=newVector>();
for(inti=0;i<23;i++)
{
VectoraddEveryRowdata=newVector();
addEveryRowdata.add(String.valueOf(i));
addEveryRowdata.add(String.valueOf(i*i));
rowData.add(addEveryRowdata);
}
finalDefaultTableModeltablemodel=newDefaultTableModel(rowData,columnName);
finalJTabletable=newJTable(tablemodel);
frame.add(newJScrollPane(table));
//添加四个按钮
JPanelpanel=newJPanel();
finalJButtonhomepagebutton=newJButton("首页");
finalJButtonpreviouspagebutton=newJButton("前一页");
finalJButtonthenextpagebutton=newJButton("后一页");
finalJButtonendpagebutton=newJButton("末页");
panel.add(homepagebutton);
panel.add(previouspagebutton);
panel.add(thenextpagebutton);
panel.add(endpagebutton);
maxPageNumber=(int)Math.ceil(tablemodel.getRowCount()/(pagesize-1));
System.out.println(maxPageNumber);
homepagebutton.addActionListener(newActionListener()
{
publicvoidactionPerformed(ActionEvente)
{
currentPageNumber=1;
Vectordatavector=tablemodel.getDataVector();
DefaultTableModelnewmodel=newDefaultTableModel();
newmodel.setColumnIdentifiers(newObject[]{"序号","平方数"});
for(inti=0;i<5;i++)
{newmodel.addRow((Vector)datavector.elementAt(i));
}
table.setModel(newmodel);
homepagebutton.setEnabled(false);
previouspagebutton.setEnabled(false);
thenextpagebutton.setEnabled(true);
endpagebutton.setEnabled(true);
}
}
);
previouspagebutton.addActionListener(newActionListener()
{
publicvoidactionPerformed(ActionEvente)
{
currentPageNumber--;
Vectordatavector=tablemodel.getDataVector();
DefaultTableModelnewmodel=newDefaultTableModel();
newmodel.setColumnIdentifiers(newObject[]{"序号","平方数"});
for(inti=0;i{
newmodel.addRow((Vector)datavector.elementAt((int)(pagesize*(currentPageNumber-1)+i)));
}
table.setModel(newmodel);
if(currentPageNumber==1)
{
homepagebutton.setEnabled(false);
previouspagebutton.setEnabled(false);
}
thenextpagebutton.setEnabled(true);
endpagebutton.setEnabled(true);
}
}
);
thenextpagebutton.addActionListener(newActionListener()
{
publicvoidactionPerformed(ActionEvente)
{
currentPageNumber++;
Vectordatavector=tablemodel.getDataVector();
DefaultTableModelnewmodel=newDefaultTableModel();
newmodel.setColumnIdentifiers(newObject[]{"序号","平方数"});
if(currentPageNumber==maxPageNumber)
thenextpagebutton.setEnabled(false);
endpagebutton.setEnabled(false);
}
else
{
for(inti=0;inewmodel.addRow((Vector)datavector.elementAt((int)(pagesize*(currentPageNumber-1)+i)));
}
table.setModel(newmodel);
homepagebutton.setEnabled(true);
previouspagebutton.setEnabled(true);
}
}
);
endpagebutton.addActionListener(newActionListener()
{
publicvoidactionPerformed(ActionEvente)
{
currentPageNumber=maxPageNumber;
Vectordatavector=tablemodel.getDataVector();
DefaultTableModelnewmodel=newDefaultTableModel();
newmodel.setColumnIdentifiers(newObject[]{"序号","平方"});
intendpagesize=(int)(tablemodel.getRowCount()-pagesize*(maxPageNumber-1));
if(endpagesize==5)
{
for(inti=0;inewmodel.addRow((Vector)datavector.elementAt((int)(pagesize*(maxPageNumber-1)+i)));
}
else
{
for(inti=0;i}
table.setModel(newmodel);
homepagebutton.setEnabled(true);
previouspagebutton.setEnabled(true);
thenextpagebutton.setEnabled(false);
endpagebutton.setEnabled(false);
}
}
);
frame.add(panel,BorderLayout.SOUTH);
frame.setVisible(true);
}
}
4:
编译结果
首页
第二页
第三页
第四页