Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

JTable bojenje reda...

[es] :: Java :: JTable bojenje reda...

[ Pregleda: 2851 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mikorkns
Software developer
Novi Sad

Član broj: 35748
Poruke: 26
*.ns.ac.yu.



Profil

icon JTable bojenje reda...07.10.2006. u 21:48 - pre 213 meseci
Pozdrav svima!

Imam problem na koji sam potrosio vec poprilicno dobar deo vremena, a nikako da ga resim. Naime, trebalo bi mi da na osnovu nekog uslova, obojim jedan (ili vise) reda u tabeli (JTable).

Ovo je parce koda koje oboji jednu kolonu, a meni treba da obojim jednu vrstu. Ako neko ima resenje ili koristan link, bio bih jako zahvalan.

import java.awt.Color;
import java.awt.Component;

import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;

public class ColouredCellRenderer extends DefaultTableCellRenderer {

private static final long serialVersionUID = 1;

private Color color;


public ColouredCellRenderer(Color color) {
this.color = color;
}

public Component getTableCellRendererComponent
(JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column)
{
Component cell = super.getTableCellRendererComponent
(table, value, isSelected, hasFocus, row, column);

if (value.toString().compareTo("") == 0) {
cell.setBackground(color);
} else {
cell.setBackground(Color.WHITE);
}

return cell;
}

}
}
 
Odgovor na temu

Toxter
NS

Član broj: 39393
Poruke: 317
*.ADSL.neobee.net.



+6 Profil

icon Re: JTable bojenje reda...08.10.2006. u 19:00 - pre 213 meseci
Recimo da zelis da bojis u crveno.
Kao prvo treba ti custom TableModel (recimo nek se zove MyTableModel)
koji ce imati metodu koja ciji ce potpis recimo biti:
Code:
public boolean isCellRed(int row, int col);


Zatim treba ti custom JTable pa ces override-ovati metodu:
Code:
public Component prepareRenderer(TableCellRenderer renderer,
                                     int row,
                                     int column)


U ovoj gore metodi pozoves:
Code:
if(this.getModel() instanceof MyTableModel && ((MyTableModel)this.getModel()).isCellRed(row,column) ){
            super.prepareRenderer(redRenderer, row, column);
            return (Component)redRenderer;
}else{
            super.prepareRenderer(whiteRenderer, row, column);
            return (Component)whiteRenderer;
}


a redRenderer je definisan kao:

Code:
DefaultTableCellRenderer redRenderer = new DefaultTableCellRenderer(){
            public void setValue(Object aValue) {
                this.setBackground(Color.RED);                             
                super.setValue(aValue);
            }
        };


whiteRenderer: umesto Color.RED -> Color.WHITE

Pozdrav!
Sad mu nije nista, ubio si ga k'o zeca...
 
Odgovor na temu

mikorkns
Software developer
Novi Sad

Član broj: 35748
Poruke: 26
*.ns.ac.yu.



Profil

icon Re: JTable bojenje reda...08.10.2006. u 20:58 - pre 213 meseci
Toxter, hvala ti puno. To je upravo ono sto mi je trebalo.

Pozdrav.
 
Odgovor na temu

[es] :: Java :: JTable bojenje reda...

[ Pregleda: 2851 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.