JTable中双击时间出现数值变大的问题?

jinggangshi 2019-05-06 07:09:43
JTable控件中有一列数据是Date类型的,大未进行任何Renderer和格式的情况下,双击单元格后时间的值会出现变化,主要是日或时这两个数据会变。这个问题很奇怪,不知有没有碰到的。
Date所有列未加Renderer、格式,也未加编辑的Editor。
这是模拟生成的数据方法:

public static List<ProcessInfo> creadtdata2(int size, int cols) {
List<ProcessInfo> pif = new ArrayList<ProcessInfo>();

for (int i = 0; i < 3 * size; i++) {
ProcessInfo pi = new ProcessInfo();
pi.setPidForInteger(i);
pi.setpName("进程" + i);
pi.setUser("2019-05-06" );
pi.setFoundTime(new Date(/*System.currentTimeMillis()*//*+(int) (Math.random()*10000)*/));
//System.out.println(pi.getFoundTime().toString());
pi.setpPath("路径"+i);
pi.setIcon(new ImageIcon("D:/20181005zwj/20181001_150107.jpg"));
pi.setColor(Color.black);

pif.add(pi);
}
return pif;
}

这是TableModel

public DiamondTableMoDel(Object[][] data, String[] headNames,
Class<?>[] typeArray, int[] allowEditColumns) {
setTableData(data);
setHeadnames(headNames);
setTypeArray(typeArray);
setAllowEditColumns(allowEditColumns);
setDataVector(data, headNames);
}


以下是JTable创建代码,tableData为Object[][],其中有一列数据为Date 类型

table = new JTable(new DiamondTableMoDel(this.tableData, this.colNames,
this.typeArray, this.allowEditColumns));
setTableActions(table);

开始我以为是Render的问题,后来我注释掉本列的Renderer,并且不作任何格式,也关掉了Editor,只允许编辑,但仍然双击时值会变。
请问是怎么加事?
难道Date这个对象在JTable中不能直接用,非要转换成字符串????
...全文
108 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
reddiamond127 2019-06-21
  • 打赏
  • 举报
回复
时间类中数值是相差1的

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧