有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java格式JTable单元

我有一个JTable 6列,第1列和第2列单元格有JDateChooserCellEditor(),我得到如下值,如2016年3月11日、2016年3月12日。但我想格式化JDateChooserCellEditor()以显示类似于2016年3月11日HH:mm和2016年3月12日HH:mm的内容。我的第三个单元格必须给出时间差的结果。24小时。我的JTable是这样的。请看图片和代码

image of table

  // 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()); 

共 (2) 个答案

  1. # 1 楼答案

    找到格式为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());