【发布时间】:2013-06-14 18:29:51
【问题描述】:
我有一个 JTable 和一个自定义表格模型,在某些地方有 Double.class 作为列类。我从数据库中读取,然后将结果插入表中。我希望用 2 位小数呈现数字,所以我使用这个类
public class NumberCellRender extends DefaultTableCellRenderer {
DecimalFormat numberFormat = new DecimalFormat("#.00");
@Override
public Component getTableCellRendererComponent(JTable jTable, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component c = super.getTableCellRendererComponent(jTable, value, isSelected, hasFocus, row, column);
if (c instanceof JLabel && value instanceof Number) {
JLabel label = (JLabel) c;
label.setHorizontalAlignment(JLabel.RIGHT);
Number num = (Number) value;
String text = numberFormat.format(num);
label.setText(text);
}
return c;
} }
问题是当我调用 addRow 时,Double.class 列没有格式化
public void addRowData( IEntity entity ) {
getRowsData().add(entity);
fireTableDataChanged();
}
问题是当我调用它时,我必须调用更多的东西来渲染表格??
【问题讨论】:
-
如需尽快获得更好的帮助,请发帖SSCCE。
-
它们的格式是否正确?
-
您是否将渲染器添加到表格中?是否覆盖了 TAbleModel 的 getColumnClass() 方法。
-
@camickr 没有被覆盖,应该是? ,我没有这样做:S 他们只是给了我这个致命的东西:P,我认为可能是那个
标签: java swing jtable tablecellrenderer