例如,我有一个日期存储为VARCHAR(yyyy-mm-dd)的SQLite数据库'2013-01-25'.我的查询从表中检索记录并将其显示为存储.我需要VARCHAR在JTable"2013年1月25日星期五"中显示数据.我怀疑使用setCellRenderer作为包含VARCHAR的列是可行的方法.此外,我认为这将是一个两步过程:首先,将VARCHAR转换为日期值,然后根据需要格式化日期.如果我从中获取VARCHAR值JTable并在以下位置显示它,我可以这样做JTextField:
MyDate = new SimpleDateFormat("yyyy-MM-dd").parse(rs.getString("My_Date"));
Run Code Online (Sandbox Code Playgroud)
然后根据需要格式化它
MyDateStr = new SimpleDateFormat("EEEE MMMM d, yyyy").format(MyDate);
Run Code Online (Sandbox Code Playgroud)
这一切都很好,也很好; 但是,我需要JTable列中的格式化显示.我从未使用过setCellRenderer,所以我可以使用一些帮助入门.
我有一个包含几个按钮的对话框.单击某个特定按钮时,它的ActionListener会启动一个需要几秒钟才能完成的过程.在此期间,我想向用户提供一些反馈.采取一种简单的方法,我在"计算..."对话框中有一个标签,该标签最初是不可见的.代码段看起来像这样
button_OpenHoursReport.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
lbl_Computing.setVisible(true);
new runAndRenderReport();
RunAndRenderReport.main(null);
lbl_Computing.setVisible(false);
}
});
Run Code Online (Sandbox Code Playgroud)
问题是,在RunAndRenderReport完成之前,lbl_Computing文本不可见.显然,这对用户没什么帮助.不知道从哪里开始.这与线程有关吗?如果是这样,我可以使用一些指导如何开始.