JTable
在用户输入数字后,我需要更新图标JTextField
。
一步步:
- 用户
JTable
连续单击,然后打开 aJFrame
以编辑其内容。 - 用户在
JTextField
其中EditFrame
输入了一个从 0 到 100 的数字。该数字将在用户关闭后更改我的 JTable 行中显示的图标EditFrame
。
我在这里阅读了文档。我改变了我的方法。我杀死了渲染器并在我的 Meal 类中创建了静态图标并创建了一个这样的方法:
public ImageIcon getIconByValue(int value){
if(value==0)
return ONESTAR;
else
return ...;
}
并在我的表模型中进行了一些更改(以存储 ImageIcon):
public Class<?> getColumnClass(int columnIndex) {
switch (columnIndex) {
case RATING:
return ImageIcon.class;
...}
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
//..other cases....//
case RATING:
meal.getIconByValue((int)aValue);
break;
}
public void setData(List<Meal> list){
this.meals.clear();
for(Meal m:list){
Meal meal=new Meal();
//...other sets..//
meal.getIconByValue(m.getRating());
}
this.meals.add(meal);
}
但是我的评分空间(应该在哪里显示星星)完全是空白的。注意:我也阅读了其他主题,但是对于如何更改 OnTheFly 中的图标没有任何帮助JTable
。