23. oktober 2002 - 11:41
Der er
2 kommentarer og
1 løsning
Sætte farven på en enkelt celle i JTable!
Hejsa!
Jeg har et problem med at jeg har nogle udvalgte celler i et JTable som skal farves røde og grønne!
Men hvordan gør man det??
Jeg har forsøgt med setBackground-metoden men den sætter selvfølgelig farven på hele tabellen!
Er der nogen der har et simpelt eksempel på hvordan man løser ovenstående?
Kasper
23. oktober 2002 - 11:50
#1
JTable myTable = new JTable(...);
class GridTableCellRenderer extends JLabel implements TableCellRenderer{
public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
if(row == 2) {
setBackground(Color.green);
} else {
if(row == 4 && column == 1) {
setBackground(Color.red);
}
}
}
}
myTable.setDefaultRenderer(JLabel.class,new GridTableCellRenderer());
Dette burde virke! Prøv det! :)
25. oktober 2002 - 11:21
#2
Man måste æven ændra i getColumnClass(int columnIndex) och dær returnera JLabel.class før den aktuella columnen. Annars vet inte JTable nær den skall anvænda den nya renderern.
Man kan æven byta ut JLabel.class i ovanstående (och i getColumnClass(int columnIndex)) mot vilken klass man vill, f.eks. String.class eller en egen klass.