24 Aralık 2018 Pazartesi

Swing DefaultTableCellRenderer Sınıfı

Giriş
Şu satırı dahil ederiz.
import javax.swing.table.DefaultTableCellRenderer;
TableCellRenderer arayüzünden kalıtır.

getTableCellRendererComponent metodu
İmzası şöyle. value nesnesi TableModel nesnesinin valueAt (row,index) çağrısının döndürdüğü nesnedir. Bu metod null dönebiliyor ve uygulama çalışmaya devam ediyor.
public Component getTableCellRendererComponent(JTable table,
        Object value,
        boolean isSelected,
        boolean hasFocus, 
        int row, int column) 
Örnek
Şöyle yaparız.
Component cell = super.getTableCellRendererComponent(table, value, isSelected, hasFocus,
  row,column);
JLabel label = (JLabel)(cell);
...
return cell;
Örnek
Arka plan rengi atamak için şöyle yaparız.
if (isSelected) {
  cell.setBackground(Color.blue);
} else {
  cell.setBackground(null);
}
Örnek
Hücreye tooltip atamak için şöyle yaparız.
public Component getTableCellRendererComponent(
                        JTable table, Object value,
                        boolean isSelected, boolean hasFocus,
                        int row, int column) {
  JLabel label = (JLabel)super.getTableCellRendererComponent(table,value,isSelected,
    hashFocus,row,column);
  
  String tooltip = ...;
  label.setToolTipText(pathValue);
  // ...OR this probably works in your case:
  label.setToolTipText(label.getText());
  return label;
}
Diğer
JTable nesnesine renderer atamak için şöyle yaparız.
table.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() {
  ...
});
Bir TableColumn nesnesine renderer atamak için şöyle yaparız.
table.getColumnModel().getColumn(0).setCellRenderer(new MyRenderer());

Hiç yorum yok:

Yorum Gönder