0

JTableユーザーが数字を入力した後にアイコンを更新する必要がありますJTextField

ステップバイステップ:

  • ユーザーは連続してクリックし、JTableその後、JFrameコンテンツを編集するために を開きます。
  • ユーザーが 0 から 100 までの数字を入力JTextFieldした場所があります。その数字は、ユーザーが閉じた後に JTable 行に表示されるアイコンを変更します。EditFrameEditFrame

ここでドキュメントを読みました。アプローチを変更しました。レンダラーを強制終了し、食事クラスに静的アイコンを作成し、次のようなメソッドを作成しました。

  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.

4

1 に答える 1