📄 arraylisttablemodel.java
字号:
package com.tarena.abs.server;import java.lang.reflect.Field;import java.util.ArrayList;import java.util.*;import javax.swing.table.AbstractTableModel;public class ArrayListTableModel extends AbstractTableModel{ private ArrayList arr; public ArrayListTableModel(ArrayList arr){ this.arr=arr; } //获得列名,即属性名 public String getColumnName(int arg0) { Class c=arr.get(0).getClass(); Field[] fs = c.getDeclaredFields(); return fs[arg0].getName(); } //获得列数,即属性数 public int getColumnCount() { Class c=arr.get(0).getClass(); return c.getDeclaredFields().length; } //获得行数,即元素个数 public int getRowCount() { return arr.size(); } //获得指定索引的值 //行,对象, 列,属性 public Object getValueAt(int rowIndex, int columnIndex) { Class c=arr.get(0).getClass(); //arr类型 Field[] fs = c.getDeclaredFields(); //Field f = fs[columnIndex] 按索引返回属性列表中某个属性 //Object o = f.get(obj)返回指定对象(obj)上此 Field 表示的字段的值o //Object o = arr.get(rowIndex)返回数组中索引处的对象 //设置所有访问属性 for(int i=0;i<fs.length;i++){ fs[i].setAccessible(true); } try { Field f = fs[columnIndex]; Object o = arr.get(rowIndex); Object col = f.get(o); //属性字段的对象 if(col==null)return " —— "; if(col.getClass()==java.util.GregorianCalendar.class){ Calendar cal = (Calendar)col; StringBuffer sb = new StringBuffer(); sb.append(cal.get(Calendar.YEAR)+"年 "); sb.append(cal.get(Calendar.MONTH)+"月 "); sb.append(cal.get(Calendar.DAY_OF_MONTH)+"日"); return sb; }else{ //把值转化为string return f.get(arr.get(rowIndex))+""; } } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } return null; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -