我正在尝试通过使用网格(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);
}
});