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

Kako dobiti referencu na objekat pomoću naziva (Stringa) objekta?

[es] :: Java :: Kako dobiti referencu na objekat pomoću naziva (Stringa) objekta?
(Zaključana tema (lock), by hyle)
Strane: 1 2

[ Pregleda: 7502 | Odgovora: 33 ] > FB > Twit

Postavi temu

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

hyle
Perica Milošević
Belgrade

Član broj: 30030
Poruke: 150
82.117.193.*

Sajt: www.linkedin.com/in/peric..


+4 Profil

icon Re: Kako dobiti referencu na objekat pomoću naziva (Stringa) objekta?21.06.2006. u 08:58 - pre 217 meseci
Nemoj se sada nervirati :)
Pa ovo ti je standardni problem koji se javlja ukoliko tražiš odgovor na forumu. Naravno da ne možeš u par redova precizno da definišeš problem, svako to protumači na svoj način i diskusija lako skrene.

U svakom slučaju, među odgovorima koje si dobio nalaze se 3 alternativna rešenja pa ti proceni da li ti nešto od toga odgovara.
(meni se čini da si se ti uhvatio za najgore rešenje od ta 3 ali to je tvoja stvar)

Srećan rad!
 
0

anon315

Član broj: 315
Poruke: 1657
*.yubc.net.



+13 Profil

icon Re: Kako dobiti referencu na objekat pomoću naziva (Stringa) objekta?21.06.2006. u 10:36 - pre 217 meseci
Hvala :)

Da, najgore resenje (zato sam i trazio savet), ali i jedino realno u ovom slucaju, kako stvari stoje.

Mislim da je, generalno, potrebno pogledati i profil osobe koja pita nesto da bi se stekao makar neki utisak, pa i to uzeti u obzir prilikom odgovora ;) (da se moderatori ne bi mucili da objasnjavaju sta je to niz ljudima koji to vec znaju, npr. :P)

Tnx
V
 
0

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: Kako dobiti referencu na objekat pomoću naziva (Stringa) objekta?21.06.2006. u 17:28 - pre 217 meseci
Citat:
Nisu Degojs...


Kako nisu?

Koliko vidim, Netbeans baš u tom "zaključanom" kodu vrši ovo dodavanje "child" komponenti u neku kolekciju kod "roditelja"?

Možeš li da postaviš deo koda, posebno tog "zaključanog" što generiše NB i gde kažeš da vrši instanciranje tih tvojih binova?
Commercial-Free !!!
 
0

anon315

Član broj: 315
Poruke: 1657
*.yubc.net.



+13 Profil

icon Re: Kako dobiti referencu na objekat pomoću naziva (Stringa) objekta?21.06.2006. u 17:54 - pre 217 meseci
Pa Degojs, moze, ali onda bih morao za svako npr. linija.setbound da menjam u lista.bla.bla.setbounds itd. na taj nacin bih imao veci posao nego da rucno idem od jedan do n, kapiras?
 
0

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: Kako dobiti referencu na objekat pomoću naziva (Stringa) objekta?21.06.2006. u 18:54 - pre 217 meseci
Jok :)

Ne kapiram zašto ne možeš da u petlji prođeš kroz sve komponente na tom npr. JPanelu i pozoveš setbound samo za komponente koje su potrebnog tipa (nešto kao if ( x instanceof MojaKlasa) x.setbound ... ).

Otprilike onako kako sam ja u primeru gore pozvao .getText() u petlji za svako dugme na JPanelu. Mogao sam da imam 1 ili 1000 dugmića na formi.. ostaje 2 linije koda jer je u pitanju petlja.

Naravno, ja sam u tom primeru u dizajneru dodao 2 dugmića, pa sam i znao unapred kog tipa (JButton) će da budu, ali i da nisam znao jedan instanceof rešava dilemu..



[Ovu poruku je menjao degojs dana 21.06.2006. u 20:13 GMT+1]
Commercial-Free !!!
 
0

anon315

Član broj: 315
Poruke: 1657
*.adsl.sezampro.yu.



+13 Profil

icon Re: Kako dobiti referencu na objekat pomoću naziva (Stringa) objekta?21.06.2006. u 21:16 - pre 217 meseci
Problem je u tome sto je jedan signal sagradjen od vise horizontalnih i vertikalnih linija, pa se npr tamo neki signal sastoji od 4 linije, a drugi od 10, dakle ja ne treba da pozivam metodu za SVE, nego samo za grupacije koje cine jedan signal itd.
 
0

anon315

Član broj: 315
Poruke: 1657
*.adsl.sezampro.yu.



+13 Profil

icon Re: Kako dobiti referencu na objekat pomoću naziva (Stringa) objekta?21.06.2006. u 21:18 - pre 217 meseci
Dakle, pomocu tvog koda bih dohvatio sve linije npr, ali ja ne treba za sve njih da zovem metodu, nego po nekom logickom redosledu, a to znaci da mi tvoje resenje ne bi pomoglo, kao ni instanceof itd...

Jel sad ok?
 
0

degojs

Član broj: 4716
Poruke: 5096



+51 Profil

icon Re: Kako dobiti referencu na objekat pomoću naziva (Stringa) objekta?21.06.2006. u 22:16 - pre 217 meseci
Pošto su u pitanju "ručno" urađeni binovi, sigurno možeš da svakom binu dodaš neko polje tipa:

private String tag;
...
public String getTag() { return this.tag; }
..
public void setTag( String tag ) { this.tag = tag; }

gde ovu vrednost možeš da postaviš u konstruktoru..

a onda u petlji samo proveravaš da li je to polje na vrednosti koja ti treba, nakon što si uradio proveru sa instanceof. Nešto tipa:

if ( x instanceof MojaKlasa )
if ( ((MojaKlasa)x).getTag().equals( "XYZ" )
x.metod();

sve to u petlji..

Najbolje bi bilo prethodno prebaciti reference u neku (sortiranu) Map-u gde bi onda jednostavno mogao da pozivaš metode objekata u određenom redosledu..

MADA, sve to je "štap i kanap": ako su ti objekti u različitim grupama, onda trebaš, za svaku grupu, da već imaš kolekciju (ili niz) koja sadrže reference na te objekte iz grupe. Objekti bi mogli sami da se dodaju u potrebnu kolekciju u konstruktoru.

Toliko od mene..


[Ovu poruku je menjao degojs dana 22.06.2006. u 05:47 GMT+1]
Commercial-Free !!!
 
0

anon315

Član broj: 315
Poruke: 1657
*.adsl.sezampro.yu.



+13 Profil

icon Re: Kako dobiti referencu na objekat pomoću naziva (Stringa) objekta?22.06.2006. u 10:37 - pre 217 meseci
Upravo tako!

Ali kada sam razmisljao da li da koristim to ili ovo moje "lose programersko resenje", ipak sam se odlucio za ovo poslednje, jer bih i za prvu varijantu za svaki bean morao u Netbeansu da mu setujem property kojoj grupi pripada, pored gore navedenog posla, sto mu kada se sabere dodje vise nego da radim ovako rucno ;)

Btw, izvinjavam se sto nisam bio precizan na pocetku i hvala svima na diskusiji!

Poz.
V

[Ovu poruku je menjao Vanja Petreski dana 22.06.2006. u 15:06 GMT+1]
 
0

anon315

Član broj: 315
Poruke: 1657
*.adsl.sezampro.yu.



+13 Profil

icon Re: Kako dobiti referencu na objekat pomoću naziva (Stringa) objekta?22.06.2006. u 15:12 - pre 217 meseci
Problem resen na sledeci nacin:

Umesto da kucam:

Code:

        sigIRIF23_1.oboji(TestiranjeBlokova.IRIF1_bits[0]);
        sigIRIF23_2.oboji(TestiranjeBlokova.IRIF1_bits[0]);
        sigIRIF23_3.oboji(TestiranjeBlokova.IRIF1_bits[0]);
        sigIRIF23_4.oboji(TestiranjeBlokova.IRIF1_bits[0]);
        sigIRIF23_5.oboji(TestiranjeBlokova.IRIF1_bits[0]);
        sigIRIF23_6.oboji(TestiranjeBlokova.IRIF1_bits[0]);
        sigIRIF23_7.oboji(TestiranjeBlokova.IRIF1_bits[0]);


, da bih obojio samo jedan signal koji se sastoji od 7 linija u ovom slucaju, sada koristim:

Code:

Object[] sigIRIF23 = { sigIRIF23_1, sigIRIF23_2, sigIRIF23_3, sigIRIF23_4, sigIRIF23_5, sigIRIF23_6, sigIRIF23_7 };
akcija(sigIRIF23, TestiranjeBlokova.IRIF1_bits[0]);

, gde je akcija:

Code:

    private static void akcija(Object[] o, boolean sig) {
        for(int i=0; i<o.length; i++) {
            if(o[i] instanceof LinijaHor) {
                LinijaHor linH = (LinijaHor)o[i];
                linH.oboji(sig);
            }
            else if(o[i] instanceof LinijaVert) {
                LinijaVert linV = (LinijaVert)o[i];
                linV.oboji(sig);
            }
            else return;
        }
        
    }


Pozdrav!
 
0

hyle
Perica Milošević
Belgrade

Član broj: 30030
Poruke: 150
*.ADSL.neobee.net.

Sajt: www.linkedin.com/in/peric..


+4 Profil

icon Re: Kako dobiti referencu na objekat pomoću naziva (Stringa) objekta?22.06.2006. u 18:56 - pre 217 meseci
Ne znam koji komponentu nasledjuju klase LinijaHor i LinijaVert, pretpostavljam da je JLabel ili nešto slično.

Ako uvedeš apstraktnu klasu LinijaApstr koja nasleđuje komponentu koju si koristio i ima metodu oboji(boolean sig), npr.
Code:

  public abstract class LinijaApstr extends JLabel {

    public abstract void oboji(boolean sig);

  }


i navedeš da tvoje klase LinijaHor i LinijaVert nasleđuju LinijaApstr onda ostatak koda može da izgleda ovako:
Code:

  LinijaApstr[] sigIRIF23 = { sigIRIF23_1, sigIRIF23_2, 
                                     sigIRIF23_3, sigIRIF23_4, 
                                     sigIRIF23_5, sigIRIF23_6, sigIRIF23_7 };
  akcija(sigIRIF23, TestiranjeBlokova.IRIF1_bits[0]);


gde je metoda akcija(LinijaApstr[], boolean) definisana na sledeći način:
Code:

  private static void akcija(LinijaApstr[] la, boolean sig) {
    for(int i=0; i < la.length; i++)
      la[i].oboji(sig);
  }

Na taj način bi upotrebom polimorfizma izbegao nepotrebno korišćenje instanceof operatora, kastovanje i grananje pomoću if naredbe.


Vidim da si se na kraju ipak odlučio za korišćenje niza, zbog čega si odustao od ideje da pristupaš instancama preko imena promenljive?
 
0

anon315

Član broj: 315
Poruke: 1657
*.adsl.sezampro.yu.



+13 Profil

icon Re: Kako dobiti referencu na objekat pomoću naziva (Stringa) objekta?22.06.2006. u 19:06 - pre 217 meseci
Tako je, u medjuvremenu sam upravo to i uradio sa apstraktnom klasom etc. ;)

Na kraju sam pristupio ovom resenju jer ipak skracuje posao, ne mnogo (jer moram da pravim mnogo grupacija) , ali skracuje.

Mene je, prvobitno, interesovalo "kako dobiti referencu na instancirani objekat pomocu naziva objekta" jer bi onda resenje bilo jos krace (najkrace), dakle to je bila poenta mog pitanja, ali, ocigledno, to ne moze!
 
0

anon315

Član broj: 315
Poruke: 1657
*.adsl.sezampro.yu.



+13 Profil

icon Re: Kako dobiti referencu na objekat pomoću naziva (Stringa) objekta?22.06.2006. u 19:13 - pre 217 meseci
Mada sad razmisljam, mozda cu ipak i vratiti resenje sa instanceof, jer cu, kasnije, imati potrebu da u akciji pozivam i neke metode nekih drugih klasa, na primer JLabel setText kako bih prikazao stanja magistrala i grupa linija, pa je mozda lepse da imam jednu metodu sa grananjem i instanceof gde pokrivam sve, nego vise takvih metoda bez ili jednu sa miksovanim grananjem po apstraktnim klasama, jer mi je brze da uradim tako nego da sada menjam sve beanove i saljem ponovo ljudima koji rade samnom u grupi kako bih postigao to o cemu pricas... ;)

Ali sada smo vec totalno otisli u offtopic (jel to pokriveno nekim vasim pravilnikom?) posto je gospodin moderator raspolozen za drzanje bazicnog Java kursa, danas na dnevnom redu - polimorfizam!

Jeeeeee :P

[Ovu poruku je menjao Vanja Petreski dana 22.06.2006. u 20:26 GMT+1]
 
0

hyle
Perica Milošević
Belgrade

Član broj: 30030
Poruke: 150
*.ADSL.neobee.net.

Sajt: www.linkedin.com/in/peric..


+4 Profil

icon Re: Kako dobiti referencu na objekat pomoću naziva (Stringa) objekta?22.06.2006. u 19:51 - pre 217 meseci
Neće se ljudi ljutiti što smo otišli malo u offtopic.

Videli su svi da ti nisu bili jasni neki osnovni pojmovi pa će ovih par postova biti od koristi tebi i drugim početnicima.

Drago mi je što sam mogao da ti pomognem.
 
0

[es] :: Java :: Kako dobiti referencu na objekat pomoću naziva (Stringa) objekta?
(Zaključana tema (lock), by hyle)
Strane: 1 2

[ Pregleda: 7502 | Odgovora: 33 ] > FB > Twit

Postavi temu

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