about Date format in JTable

chinaredflag 2002-10-07 08:35:21
我要把Date型的变量加到JTable中,但是我不知道怎么控制JTable的日期显示格式。
...全文
40 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
binriyue 2002-11-08
  • 打赏
  • 举报
回复
显示只是DefaultTableCellRenderer,
要显示格式,直接继承DefaultTableCellRenderer,
重载方法 public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column)即可。
如果要求在JTable中编辑数据,并且要求格式相符就要继承:
DefaultCellEditor,重载方法:public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected,
int row, int column)
hongbo_liu 2002-11-08
  • 打赏
  • 举报
回复
gz
namowen 2002-11-08
  • 打赏
  • 举报
回复
class DateRenderer extends DefaultTableCellRenderer {
public DateRenderer() {
super();
setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
}
public void setValue(Object value) {
if ((value != null) && (value instanceof java.util.Date)) {
java.util.Date dateValue = (java.util.Date) value;
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd");//这里可以改为你需要的格式
value = formatter.format(dateValue);
}
super.setValue(value);
}
}

table.setDefaultRenderer(java.util.Date.class,new DateRenderer());

并重载TableModel中的getColumnClass
fastmask 2002-11-08
  • 打赏
  • 举报
回复
最简单的方法是先用dateformat转成字符串再显示。
chinaredflag 2002-10-10
  • 打赏
  • 举报
回复
up
chinaredflag 2002-10-08
  • 打赏
  • 举报
回复
up
chinaredflag 2002-10-07
  • 打赏
  • 举报
回复
这个方法我有,我的问题是:例如,我想显示的格式是yyyy-MM-dd mm:ss 或yyyyMMddmmss。我怎么让JTable 显示的格式和我要的一致?(只能加Date,因为还要排序,并且排序的方法不能变)。
WQmeng 2002-10-07
  • 打赏
  • 举报
回复
在你的TableModel中的添加getColumnClass(int column)方法。
public Class getColumnClass(int column){
Class dataType = super.getColumnClass(column);
if(column == TYPE_OF_DATE){ //确认是否为日期类型。
dataType = java.util.Date.class;
}
return dataType;
}
chinaredflag 2002-10-07
  • 打赏
  • 举报
回复
up
chinaredflag 2002-10-07
  • 打赏
  • 举报
回复
如感到100不够,可以加呀

62,614

社区成员

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

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