2016-04-05 12 views
0

私は、必要なテーブルにアイコンを入れるためにオーバーライドするJTableを作成しています。これは私がやったことです。しかし結果は、最初のセルだけでなく、すべてのセルにアイコンを印刷し、私が望むものではありません。ここで結果ているものです。アイコンの繰り返しを停止する

enter image description here

import com.skype.User; 

import javax.swing.*; 
import javax.swing.table.DefaultTableCellRenderer; 
import java.awt.*; 

class BoardTableCellRenderer extends DefaultTableCellRenderer { 


    public Component getTableCellRendererComponent(JTable table, Object value, 
                boolean isSelected, boolean hasFocus, int row, int col) { 

     Component c = super.getTableCellRendererComponent(table, value, 
       isSelected, hasFocus, row, col); 
     JLabel label = (JLabel)super.getTableCellRendererComponent(table, value,isSelected, hasFocus,row, col); 
     //row is the username 
     if(col == 0) { 
      try { 
       User temp = Functions.returnUser(value.toString()); 
       ImageIcon imageIcon = new ImageIcon(getClass().getResource("/" + temp.getStatus().toString() + ".png")); 
       label.setIcon(imageIcon); 
      } catch (Exception ex) { 
      } 
      return label; 
     }else{ 
      return c; 
     } 

    } 
} 

答えて

1

は、そうでない場合は、あなただけの詳細

ため

参照Concepts: Editors and Renderersに、それは最後に設定したものは何でも戻っている、あなたのelseブロックにlabel.setIcon(null);を追加

関連する問題