javaJtable经典列设置+表格颜色Word文档下载推荐.docx
- 文档编号:17117554
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:10
- 大小:45.47KB
javaJtable经典列设置+表格颜色Word文档下载推荐.docx
《javaJtable经典列设置+表格颜色Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《javaJtable经典列设置+表格颜色Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。
staticJTabletable=null;
staticDefaultTableModeltabledtm=newDefaultTableModel();
/*
*intcomplete=0;
staticintrow=0;
*/
staticJScrollPanescrollPane=null;
//定义table中的内容不可编辑,DefaultTableModel是Jtable的一个方法
publicbooleanisCellEditable(){
returnfalse;
}
//GUi的方法
publicGUI(){
frame=newJFrame();
frame.setBounds(200,200,500,500);
panel=newJPanel();
panel.setBackground(Color.white);
String[]temp=newString[5];
Vector<
String>
title=newVector<
();
title.add("
文件名"
);
发件人"
收件人"
收件时间"
完成百分比"
每秒接收"
//在表格中添加标题
tabledtm=newDefaultTableModel(null,title);
//用来设定dtm中表格数据不可修改(查看isCellEditable)
table=newJTable(tabledtm){
publicbooleanisCellEditable(introw,intcolumn){
returnfalse;
}
};
table.setModel(tabledtm);
JScrollPanescrollPane=newJScrollPane(table);
//在滚动框中加入table
scrollPane.setPreferredSize(newDimension(400,300));
//大小设置
DefaultTableCellRenderersend=newDefaultTableCellRenderer();
send.setHorizontalAlignment(SwingConstants.CENTER);
//设置每行的高度为25
table.setRowHeight(25);
//设置相邻两行单元格的距离
table.setRowMargin(0);
//可选择行
table.setRowSelectionAllowed(true);
//选择行背景色
table.setSelectionBackground(newColor(189,252,201));
//薄荷绿
///选择行前景色
table.setGridColor(newColor(200,200,200));
//是否显示这个网格
table.setShowGrid(true);
//是否显示水平网格
table.setShowHorizontalLines(true);
//是否显示垂直网格
table.setShowVerticalLines(true);
//表格背景色
table.setBackground(Color.yellow);
DefaultTableCellRenderertcr=newDefaultTableCellRenderer();
tcr.setHorizontalAlignment(SwingConstants.CENTER);
table.getColumn("
).setCellRenderer(tcr);
panel.add(scrollPane,BorderLayout.CENTER);
frame.add(panel);
frame.setVisible(true);
frame.setResizable(true);
//*********写个数据传入表格的方法这个比较重要,以为涉及到数据在表格中的显示*******************************
publicstaticvoidshowTableInfo(List<
TableInfo>
table_info){
//正在运行行索引列表,
List<
Integer>
runningRowIndexes=newArrayList<
for(inti=0;
i<
table_info.size();
i++){
//保存正在运行的行索引,到runningRowIndexes,加个判断:
判断i,完成百分比不等于0,索引到这行,添加到
//runningRowIndexes中
if(!
table_info.get(i).getFinishPercent().equals("
0"
)){
runningRowIndexes.add(i);
}
//在测试类中设置list的值,将值穿进去
for(inti=0;
i<
i++){
String[]sendDate={
table_info.get(i).getFileName(),//文件名
table_info.get(i).getSender(),//发件人
table_info.get(i).getReceiver(),//收件人
table_info.get(i).getFileSize(),
table_info.get(i).getFinishPercent(),//完成百分比
table_info.get(i).getSendSpeed()};
//速度
//完成插入在表格后
tabledtm.insertRow(tabledtm.getRowCount(),sendDate);
//表格插入数据,将date的数据传入row中
tabledtm.getRowCount();
}
//渲染正在运行的行颜色
//重要的是以下的代码。
。
for(inti=0;
i<
table.getColumnCount();
i++){
table
.getColumnModel()
.getColumn(i)
.setCellRenderer(newRowColorRenderer_Running(//创建一个RowColorRenderer_Running的类
runningRowIndexes,tabledtm
));
}
第二个类,就是getset的方法,将传值的类型等写好
publicclassTableInfo{
privateStringsender;
//发件人
privateStringreceiver;
//收件人
privateStringsendTime;
//发送时间
privateStringfileSize;
//文件大小,int范围0-21亿如果大文件的话就可能不行,所以采用long
privateStringfinishPercent;
//完成百分比
privateStringsendSpeed;
//发送速度
privateStringfileName;
publicStringgetSender(){
returnsender;
publicvoidsetSender(Stringsender){
this.sender=sender;
publicStringgetReceiver(){
returnreceiver;
publicvoidsetReceiver(Stringreceiver){
this.receiver=receiver;
publicStringgetSendTime(){
returnsendTime;
publicvoidsetSendTime(StringsendTime){
this.sendTime=sendTime;
publicStringgetFileSize(){
returnfileSize;
publicvoidsetFileSize(StringfileSize){
this.fileSize=fileSize;
publicStringgetFinishPercent(){
returnfinishPercent;
publicvoidsetFinishPercent(StringfinishPercent){
this.finishPercent=finishPercent;
publicStringgetSendSpeed(){
returnsendSpeed;
publicvoidsetSendSpeed(StringsendSpeed){
this.sendSpeed=sendSpeed;
publicStringgetFileName(){
returnfileName;
publicvoidsetFileName(StringfileName){
this.fileName=fileName;
publicTableInfo(Stringsender,Stringreceiver,StringsendTime,
StringfileSize,StringfinishPercent,StringsendSpeed,
StringfileName){
super();
第三个类:
RowColorRenderer_Running
importjava.awt.Component;
//类继承DefaultTableCellRenderer渲染器的方法哦
publicclassRowColorRenderer_RunningextendsDefaultTableCellRenderer{
privateList<
runningRowIndexes;
privateDefaultTableModeldtm;
//一个有参的构造函数
publicRowColorRenderer_Running(List<
runningRowIndexes,DefaultTableModeldtm){
this.runningRowIndexes=runningRowIndexes;
this.dtm=dtm;
//下面就是索引到你想要设置某行的颜色了(注意JTable**这是你的table名,我只是命名了tabel方便识别)
publicComponentgetTableCellRendererComponent(JTabletable,Objectvalue,booleanisSelected,booleanhasFocus,
introw,intcolumn){
if(runningRowIndexes.indexOf(row)>
-1){
setBackground(Color.RED);
}else{
setBackground(newColor(115,240,2445));
}
return
//super.super.getTableCellRendererComponent(这里的table要看你自己的table名,)
super.getTableCellRendererComponent(table,dtm.getValueAt(row,column),
isSelected,hasFocus,row,column);
第4个类就是测试类,在这里要把数值传进去
publicclassTestFrame{
publicstaticvoidmain(String[]args){
newGUI();
List<
table_info=newArrayList<
//文件名,发件人,收件人,时间,百分比,每秒接受
TableInfot1=newTableInfo("
1"
"
2"
3"
12"
TableInfot2=newTableInfo("
13"
TableInfot3=newTableInfo("
TableInfot4=newTableInfo("
TableInfot5=newTableInfo("
212"
TableInfot6=newTableInfo("
TableInfot7=newTableInfo("
TableInfot8=newTableInfo("
TableInfot9=newTableInfo("
TableInfot10=newTableInfo("
TableInfot11=newTableInfo("
table_info.add(t1);
table_info.add(t2);
table_info.add(t3);
table_info.add(t4);
table_info.add(t5);
table_info.add(t6);
table_info.add(t7);
table_info.add(t8);
table_info.add(t9);
table_info.add(t10);
table_info.add(t11);
GUI.showTableInfo(table_info);
//GUi调用Show的方法来、//显示
}效果窗
口:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- javaJtable 经典 设置 表格 颜色