使用LinkedHashMap中的单元格格式化程序将数值转换为其对应的标签

时间:2019-07-03 07:34:33

标签: java gwt casting smartgwt

我试图通过使用网格(PaginatedGrid)列上的键来显示LinkedHashMap中的值。

在网格中,我尝试将public String format()中的值转换为简写。

在网格中,以下是我尝试过的代码

grid.getField(MerchandiseSellerTargetsDS.FLD_TARGETTYPE).setCellFormatter(new CellFormatter() {

            @Override
            public String format(Object value, ListGridRecord record, int rowNum, int colNum) {
                short messageValue = ((Integer) value).shortValue();
                return Messages.targetTypeMap.get(messageValue);
            }
        }); 

在Messages.java

public static LinkedHashMap<Number, String> targetTypeMap;

targetTypeMap=new LinkedHashMap<>();
        targetTypeMap.put((short)1,"Value");
        targetTypeMap.put((short)2,"Unit");

我希望该列填充地图中的值,例如如果键为1,则显示“值”;如果键为2,则显示“单位”。但是,该列未填充(执行时显示为空白)。我可能做错了什么,或者我是怎么做的?

1 个答案:

答案 0 :(得分:0)

好吧,问题出在我的表演方式上。在这里,我将值转换为字符串,然后将其转换为短类型

grid.getField(MerchandiseSellerTargetsDS.FLD_TARGETTYPE).setCellFormatter(new CellFormatter() {         
    @Override
    public String format(Object value, ListGridRecord record, int rowNum, int colNum) {
        short targetTypeMapKey = Short.valueOf((String)value);
        return Messages.targetTypeMap.get(targetTypeMapKey);
    }
    });