【发布时间】:2014-04-18 08:17:43
【问题描述】:
我使用自定义表格模型 (MyTableModel.java) 创建了一个 JTable,并使用了一些 CellRenderer 类来查看单元格的效果。我使用CustomTableCellRenderer 类将当前单元格更改为绿色背景。它工作得很好。同时,我创建了一个RenderPrice 类来以十进制类型显示单元格,如果我编辑未更新的单元格,它会在我第一次执行时采用十进制值,它将显示$ 符号作为前缀。我想解决这个问题。请尽快给出一些解决方案。谢谢
RenderPrice 类代码
class RenderPrice extends DefaultTableCellRenderer {
Object result;
RenderPrice() {
setHorizontalAlignment(SwingConstants.RIGHT);
}
public void setValue(Object aValue) {
result = aValue;
if ((aValue != null) && (aValue instanceof Number)) {
Number numberValue = (Number)aValue;
NumberFormat formatter = NumberFormat.getCurrencyInstance();
result = formatter.format(numberValue.doubleValue());
}
super.setValue(result);
}
}
我的 Tableclass (Accept.java) 的前面代码
gradeColumn = jTable1.getColumnModel().getColumn(2);
gradeColumn.setCellRenderer(new RenderPrice());
gradeColumn = jTable1.getColumnModel().getColumn(0);
gradeColumn.setCellEditor(new IntegerEditor(1,100));
gradeColumn = jTable1.getColumnModel().getColumn(0);
gradeColumn.setCellRenderer(new CustomTableCellRenderer());
gradeColumn = jTable1.getColumnModel().getColumn(1);
gradeColumn.setCellEditor(new ComboBoxCellEditor(comboBox));
【问题讨论】:
-
一切都在你的代码的大部分/其余部分,为了更好的帮助,尽快发布一个 SSCCE 或 MCVE 或 MCTRE,简短,可运行,可编译,只是 JFrame 中的 JTable,硬编码值存储在本地变量中JTable/XxxTableModel
-
看不懂,请详细说明
标签: java swing jtable tablecellrenderer tablecelleditor