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

Svi redovi JTable-a bivaju obojeni umesto samo nekih odredjenih

[es] :: Java :: Svi redovi JTable-a bivaju obojeni umesto samo nekih odredjenih

[ Pregleda: 2908 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ha-Nocri

Član broj: 45144
Poruke: 1192
77.46.178.*



+10 Profil

icon Svi redovi JTable-a bivaju obojeni umesto samo nekih odredjenih30.04.2008. u 21:03 - pre 194 meseci
Znaci, prepisao sam prepareRednderer() metod klase JTable da bi obojio samo neke redove i to izgleda ovako:

Code:
JTable table = new JTable() {
            public Component prepareRenderer(TableCellRenderer renderer,
                    int rowIndex, int colIndex) {
                JComponent c = (JComponent)super.prepareRenderer(renderer, rowIndex, colIndex);
                if( kolicina == -1 )
                    c.setBackground( new Color(253, 233, 227) );
                return c;
            } }


Sta ja radim sa tom Tabelom: izbacim sve redove koji ne zadovoljavaju odredjeni logicki uslov, na to dodam neke nove redove koji imaju specificnu vrednost(-1) atributa "kolicina". Te redove sa kolicinom == -1 bojim u boju koju vidite u kodu, svetlo pink. Sve to radi sjajno. Medjutim dalje se vracam na prvobitno stanje tabele, znaci pre bilo kakvog izbacivanja ili dodavanja redova gde kolicine nigde nisu -1, i svi redovi bivaju obojeni u tu pink boju iako ne zadovoljavaju uslov da je kolicina == -1.

Da li neko mozda zna u cemu problem moze biti?

Hvala unapred
H
i5-750 @4GHz with CM Hyper 212+
GTX 580 Lightning XE 3GB
Corsair HX750
CM Sniper
 
Odgovor na temu

bgd2500

Član broj: 55912
Poruke: 226
*.adsl-a-1.sezampro.yu.



+7 Profil

icon Re: Svi redovi JTable-a bivaju obojeni umesto samo nekih odredjenih01.05.2008. u 19:16 - pre 194 meseci
Proveri koju vrednost ima kolicina u pepareRenderer metodi. Dodaj else granu za slucaj kad kolicina nije -1 pa setuj pozadinu na belo/sivo ili koju vec hoces boju.
 
Odgovor na temu

Ha-Nocri

Član broj: 45144
Poruke: 1192
77.46.207.*



+10 Profil

icon Re: Svi redovi JTable-a bivaju obojeni umesto samo nekih odredjenih01.05.2008. u 23:25 - pre 194 meseci
Da da, to radi. Hvala. Ali nastaje novi problem koji sam ranije vec sretao i nisam znao da ga resim. Boja selekcije( JTable.setSelectionBackground() ) ne postoji. Nadam se da razumete. Kada selekrujem(kliknem na) neki red on je selektovan, ali boja se ne menja. Da li mozda da postavim novu temu za ovaj problem?

Inache, kod za prethodni deobi izgledao:

Code:
JTable table = new JTable() {
            public Component prepareRenderer(TableCellRenderer renderer,
                    int rowIndex, int colIndex) {
                JComponent c = (JComponent)super.prepareRenderer(renderer, rowIndex, colIndex);
                if( kolicina == -1 )
                    c.setBackground( new Color(253, 233, 227) );
        else c.setBackground(mTable.getBackground());
                return c;
            } 
};

i5-750 @4GHz with CM Hyper 212+
GTX 580 Lightning XE 3GB
Corsair HX750
CM Sniper
 
Odgovor na temu

Toxter
NS

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



+6 Profil

icon Re: Svi redovi JTable-a bivaju obojeni umesto samo nekih odredjenih02.05.2008. u 22:38 - pre 194 meseci
Treba ti custom CellEditor. Znaci klasa koja implementira TableCellEditor interfejs (ili prosiruje DefaultCellEditor klasu).

Pozdrav.

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

Ha-Nocri

Član broj: 45144
Poruke: 1192
79.101.143.*



+10 Profil

icon Re: Svi redovi JTable-a bivaju obojeni umesto samo nekih odredjenih04.05.2008. u 22:18 - pre 194 meseci
Izvini, mozes li da budes precizniji? Zasto bi pravio svoj cellEditor za selektovanje redova da radi, ne kontam?
i5-750 @4GHz with CM Hyper 212+
GTX 580 Lightning XE 3GB
Corsair HX750
CM Sniper
 
Odgovor na temu

Toxter
NS

Član broj: 39393
Poruke: 317
...vl-edge-dnevnik.neobee.net.



+6 Profil

icon Re: Svi redovi JTable-a bivaju obojeni umesto samo nekih odredjenih05.05.2008. u 07:56 - pre 194 meseci
Citat:
Ha-Nocri: Izvini, mozes li da budes precizniji? Zasto bi pravio svoj cellEditor za selektovanje redova da radi, ne kontam?


Tacno, ne moras. Ja imam neki slozeniji projekat pa sam pravio custom celleditor i tu sam definisao pozadinu selekcije.
U tvom slucaju ti mozes da napravis samo custom TableCellRenderer.

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

Ha-Nocri

Član broj: 45144
Poruke: 1192
79.101.207.*



+10 Profil

icon Re: Svi redovi JTable-a bivaju obojeni umesto samo nekih odredjenih05.05.2008. u 12:29 - pre 194 meseci
Imam vec moj cellRenderer. Here it is:

Code:
class IconedTableCellRenderer extends DefaultTableCellRenderer {
    public void setValue(Object value) {
        if (value instanceof IconData) {
            IconData ivalue = (IconData)value;
            setIcon(ivalue.mIcon);
            setText(ivalue.mData.toString());
            setIconTextGap(10);
        }
        else super.setValue(value);
    }
}


U ovom primeru renderer je JLabel sa iconom i textom cisto radi razjasnjenja ako nekog zanima. IconData je moja cusstom clasa.

U kojoj metodi da definishem boju selekcije?
i5-750 @4GHz with CM Hyper 212+
GTX 580 Lightning XE 3GB
Corsair HX750
CM Sniper
 
Odgovor na temu

Toxter
NS

Član broj: 39393
Poruke: 317
...vl-edge-dnevnik.neobee.net.



+6 Profil

icon Re: Svi redovi JTable-a bivaju obojeni umesto samo nekih odredjenih05.05.2008. u 12:42 - pre 194 meseci
U ovoj:
http://java.sun.com/j2se/1.4.2...bject,%20boolean,%20int,%20int)

ako je isSelected == true

tada vratis recimo JTextField kome setujes background.

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

Ha-Nocri

Član broj: 45144
Poruke: 1192
79.101.143.*



+10 Profil

icon Re: Svi redovi JTable-a bivaju obojeni umesto samo nekih odredjenih05.05.2008. u 15:19 - pre 194 meseci
Da, da. Ovo sam trebao da znam:

Code:
class IconedTableCellRenderer extends DefaultTableCellRenderer {
    public void setValue(Object value) {
        if (value instanceof IconData) {
            IconData ivalue = (IconData)value;
            setIcon(ivalue.mIcon);
            setText(ivalue.mData.toString());
            setIconTextGap(10);
        }
        else super.setValue(value);
    }

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

        if(isSelected) c.setBackground(table.getSelectionBackground());
        else if(row%2 == 0) c.setBackground( new Color(240, 240, 240) );
        else c.setBackground(table.getBackground());
        return c;
    }
}


Kao sto vidis obojio sam svaki drugi red i selekcija radi. Savrseno.Veliko hvala :-)
i5-750 @4GHz with CM Hyper 212+
GTX 580 Lightning XE 3GB
Corsair HX750
CM Sniper
 
Odgovor na temu

Ha-Nocri

Član broj: 45144
Poruke: 1192
79.101.143.*



+10 Profil

icon Re: Svi redovi JTable-a bivaju obojeni umesto samo nekih odredjenih05.05.2008. u 15:49 - pre 194 meseci
Posto si pomenuo custom editor ima jedno pitanje uvezi editovanja celija, a da ne bih otvarao novu temu pitacu ovde.

Kako da znam kada se neka celija edituje? Na primer da postoji metoda izgledala bi nesto kao: cell.isBeingEdited() ili slicno.
U metodi getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) argument hasFocus je nesto drugo.

Ovo pitam zato sto bi voleo da vezem JPopupMenu sa celijom koja se edituje zbog "Copy", "Paste" i "Cut" opcija.
Nadam se da ste razumeli pitanje.

Hvala unapred
H
i5-750 @4GHz with CM Hyper 212+
GTX 580 Lightning XE 3GB
Corsair HX750
CM Sniper
 
Odgovor na temu

Ha-Nocri

Član broj: 45144
Poruke: 1192
79.101.143.*



+10 Profil

icon Re: Svi redovi JTable-a bivaju obojeni umesto samo nekih odredjenih05.05.2008. u 21:55 - pre 194 meseci
Uradio, sam XD

Ako nekog zanima resenje nek kaze i postovacu ga...
i5-750 @4GHz with CM Hyper 212+
GTX 580 Lightning XE 3GB
Corsair HX750
CM Sniper
 
Odgovor na temu

[es] :: Java :: Svi redovi JTable-a bivaju obojeni umesto samo nekih odredjenih

[ Pregleda: 2908 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

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