Swing JTable setCellRenderer到目前为止是否格式化文本字段?
我有一个SQLite数据库,其日期存储为Swing JTable setCellRenderer到目前为止是否格式化文本字段?,swing,date,jtable,tablecellrenderer,Swing,Date,Jtable,Tablecellrenderer,我有一个SQLite数据库,其日期存储为VARCHAR(yyyy-mm-dd),例如'2013-01-25'。 我的查询从表中检索记录并将其显示为已存储。我需要将我的JTable中的VARCHAR数据显示为“2013年1月25日星期五”。我怀疑对包含VARCHAR的列使用setCellRenderer是一种方法。此外,我认为这将是一个两步的过程:首先,将VARCHAR转换为日期值,然后根据需要格式化日期。如果我从JTable中获取VARCHAR值并将其显示在JTextField中,我可以按如下方
VARCHAR
(yyyy-mm-dd),例如'2013-01-25'
。
我的查询从表中检索记录并将其显示为已存储。我需要将我的JTable
中的VARCHAR
数据显示为“2013年1月25日星期五”。我怀疑对包含VARCHAR的列使用setCellRenderer是一种方法。此外,我认为这将是一个两步的过程:首先,将VARCHAR转换为日期值,然后根据需要格式化日期。如果我从JTable
中获取VARCHAR值并将其显示在JTextField
中,我可以按如下方式进行操作:
MyDate = new SimpleDateFormat("yyyy-MM-dd").parse(rs.getString("My_Date"));
然后根据需要格式化它
MyDateStr = new SimpleDateFormat("EEEE MMMM d, yyyy").format(MyDate);
这一切都很好;但是,我需要
JTable
列中的格式化显示。我从未使用过setCellRenderer
,因此我需要一些入门帮助。由Rob Camick
发布的关于可能会解决您的问题的帖子
更新:
我尝试了一个使用代码的示例(因为我也想在JTable中查看DateFormat
,但到目前为止我还没有这样做)。我给出的输入格式是“2013-01-25”
做一个这样的班
public class DateRenderer extends DefaultTableCellRenderer {
public DateRenderer() { // This is a contructor
DateFormatter formatter = new DateFormatter("yyyy-MM-dd");
}
public class DateFormatter extends SimpleDateFormat { //This another class within a class
public DateFormatter(String pattern) {
super(pattern);
}
}
}
并将其添加到面板>>jTable.setDefaultRenderer(Date.class,new DateRenderer())
谢谢你的帮助!!这正是我克服困难所需要的。欢迎来到StackOverflow!请再解释一下,这个答案是如何改进现有答案的,以及它是如何解决问题的
public class DateRenderer extends DefaultTableCellRenderer {
public DateRenderer() { // This is a contructor
DateFormatter formatter = new DateFormatter("yyyy-MM-dd");
}
public class DateFormatter extends SimpleDateFormat { //This another class within a class
public DateFormatter(String pattern) {
super(pattern);
}
}
}