problem v Java

Programovacie jazyky, rady, poradňa...
nolentak
Amateur
Amateur
Príspevky: 11
Registrovaný: 29 okt 2008, 19:28

problem v Java

Príspevok od používateľa nolentak »

Zdravim.

Mam nasledovny problem:
V jednej triede su 2 buttony a ako obsluha udalosti (stlacenie buttonu) sa musi vyuzivat ina vonkajsia trieda - Obsluha.

Ako sa da zaregistrovat buttonu2 konkretny objekt triedy Obsluha, (ako posluchac) taky, ktory vznikol pri stlaceni buttonu1?

nieco na sposob:
button1.addActionListener(Obsluha o = new obsluha);
button2.addActionListener(o);
//uvedeny sposob samozrejme neprejde kompilaciou

Teda pri kazdom stlaceni buttonu1 sa vytvori novy objekt triedy Obsluha a tento novy objekt sa zaregistruje ako posluchac buttonu2
Nestretol sa s tym uz niekto?
zaggi
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 314
Registrovaný: 04 feb 2007, 19:32

Príspevok od používateľa zaggi »

okrem toho ze ti za new

cele zle
bud:

Kód: Vybrať všetko

Obsluha o = new Obsluha();
button1.addActionListener(o); 
button2.addActionListener(o);
alebo taky debilny zapis ktorby by som osobne nikdy radsej nepouzil lebo si nemozes byt isty ze button1 ma na sebe len jeden listener:

Kód: Vybrať všetko

button1.addActionListener(new Obsluha()); 
button2.addActionListener(button1.getActionListeners()[0]);
nolentak
Amateur
Amateur
Príspevky: 11
Registrovaný: 29 okt 2008, 19:28

Príspevok od používateľa nolentak »

Zdar zaggi.

To prve nie, lebo button1 ma kazdym stlacenim vytvarat novy objekt,
ale to druhe mi pomohlo :)
Ked nepridem na nieco lepsie, tak to necham zatial takto.

Diky pekne.
zaggi
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 314
Registrovaný: 04 feb 2007, 19:32

Príspevok od používateľa zaggi »

nolentak napísal:Zdar zaggi.

To prve nie, lebo button1 ma kazdym stlacenim vytvarat novy objekt,
ale to druhe mi pomohlo :)
Ked nepridem na nieco lepsie, tak to necham zatial takto.

Diky pekne.
tak to si sa trosku oje***, pretoze ani jeden zo zapisov nesposobi to, ze pri kazdom stlaceni bude vytvoreny novy objekt ... tie zapisy su technicky IDENTICKE, je to len o tom ktory je krajsi na pohlad ...
moj osobny zapis na akcie na butonoch je nasledovny

Kód: Vybrať všetko

button1.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent e)
  {
     //kod ktory sa vykona pri kliknuti na button, napr chcem
     //pri kazdom kliknuti vytvorit novu obsluhu
     new Obsluha();
  }
});
nolentak
Amateur
Amateur
Príspevky: 11
Registrovaný: 29 okt 2008, 19:28

Príspevok od používateľa nolentak »

pravdu mas, okabatil som sa. :) No v programe mi to fungovalo, ale z inych dovodov..

neviem, ci mi je jasno s tymto - button2.addActionListener(button1.getActionListeners()[0]);

znamena to, ze button1 ak si postupne registruje posluchacov, tak ti sa ukladaju do akehosi pola a tymto zapisom ziskam prveho posluchaca buttona1?
zaggi
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 314
Registrovaný: 04 feb 2007, 19:32

Príspevok od používateľa zaggi »

nolentak napísal:znamena to, ze button1 ak si postupne registruje posluchacov, tak ti sa ukladaju do akehosi pola a tymto zapisom ziskam prveho posluchaca buttona1?
true [viz moja poznamka vyssie ze by som to nikdy nepouzil]
nolentak
Amateur
Amateur
Príspevky: 11
Registrovaný: 29 okt 2008, 19:28

Príspevok od používateľa nolentak »

jo, mam to uz davno zmenene, ale vzdy je dobre vediet o moznostiach.
Dufam, ze sa nebudem viac motat a zvladnem dalsie veci sam :)
zatim dik za helpy
Napísať odpoveď