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

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

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

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,则显示“单位”。但是,该列未填充(执行时显示为空白)。我做错了什么或我是怎么做的?

最佳答案

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

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);
    }
    });

10-06 02:44