JTable我如何创建自定义列渲染器

问题描述

static class DateRenderer extends DefaultTableCellRenderer {
        DateFormat formatter = new SimpleDateFormat("dd.MM.yyyy");
        public DateRenderer() { super(); }

        public void setValue(Object value) {
            if (formatter==null) {
                formatter = DateFormat.getDateInstance();
            }
            setText((value == null) ? "" : formatter.format(value));
        }
    }

我使用此代码来呈现日期。我找到了它,但是现在我还需要其他东西。我有一列这样的数字(1234.56)。我想将数字呈现为(1234.56 TL)。但是我有点初学者,所以我找不到办法。

解决方法

TableColumnModel m = table.getColumnModel();
m.getColumn(5).setCellRenderer(new TableRendererExample());
 class TableRendererExample extends DefaultTableCellRenderer {
        @Override
        public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column) {
          Component c = super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
          if (column == 5) {
            setText(value.toString()+" TL");
          }
          return this;
        }
      }

此代码可以很好地解决问题。