我有一个JTable 6列,第1列和第2列单元格有JDateChooserCellEditor(),我得到以下值,如2016年3月11日,2016年3月12日。但我想格式化JDateChooserCellEditor()来显示类似的东西2016年3月11日HH:mm和2016年3月12日HH:mm。我的第三个细胞必须给出时间差异的结果.24小时.JTable看起来像这样。请看图像和代码。
// column 1---
TableColumn col1=DailyTbl.getColumnModel().getColumn(1);
col1.setPreferredWidth(150);
DailyTbl.setDefaultEditor(java.util.Date.class, new JDateChooserCellEditor());
// Column 2------
TableColumn col1=DailyTbl.getColumnModel().getColumn(1);
col1.setPreferredWidth(150);
DailyTbl.setDefaultEditor(java.util.Date.class, new JDateChooserCellEditor());
答案 0 :(得分:1)
根据我在此链接中找到的一些代码:http://grepcode.com/file/repo1.maven.org/maven2/com.luuuis/jcalendar-tz/1.3.3-3/com/toedter/calendar/JDateChooser.java
我发现了一条评论,建议您可以使用以下内容执行您想要的操作:
dateChooser.setDateFormatString("yyyy-MM-dd HH:mm");
也许只会更改渲染器,而不是编辑器。我不知道,因为我从未使用过这门课。
答案 1 :(得分:0)
找到格式化JDateChooserCellEditor()
的已解答答案enter code here
public class JDateChooserCellEditor1 extends AbstractCellEditor implements
TableCellEditor {
private static final long serialVersionUID = 917881575221755609L;
private JDateChooser dateChooser = new JDateChooser();
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
Date date = null;
if (value instanceof Date)
date = (Date) value;
dateChooser.setDate(date);
dateChooser.setDateFormatString("yyyy-MM-dd HH:mm");
return dateChooser;
}
public Object getCellEditorValue() {
return dateChooser.getDate();
}
}
//和TableCellRender
class DateRenderer implements TableCellRenderer
{
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
JPanel c = new JPanel();
//JTextField c=new JTextField();
if (value instanceof Date)
{
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
c.add(new JLabel(dateFormat.format(value)));
c.setOpaque(true);
}
return c;
}
}
//最终调用类
TableColumn col1=DailydatasTbl.getColumnModel().getColumn(1);
col1.setPreferredWidth(200);
Table.setDefaultEditor(java.util.Date.class, new JDateChooserCellEditor1());
Table.getColumnModel().getColumn(1).setCellRenderer(new DateRenderer());