Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swing JTable setCellRenderer到目前为止是否格式化文本字段?_Swing_Date_Jtable_Tablecellrenderer - Fatal编程技术网

Swing JTable setCellRenderer到目前为止是否格式化文本字段?

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中,我可以按如下方

我有一个SQLite数据库,其日期存储为
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);
        }
    }
}