[ Valerij Zajcev @ 23.03.2010. 09:35 ] @
Prilicno jednostavno pitanje, zanima me da li kada imam dugme i zelim da za njega prikazcim neki event uvek moram da implementiram klasu 'ActionListener ' pa da iskoristim metod 'actionPerformed()' ili ima neki nacin kada dugmetu prikacim event nekako:

pseudo code:
Code:

Jbutton btnSubmit = new JButton();
btnSubmit.addEventHandler(handlerMethod);

...

private void handlerMethod(evt:Event)
{
    ...
}

[ staleks @ 23.03.2010. 09:59 ] @
Ono sto je sigurno je da JButton nema addEventHandler metodu (ali to nisi ni ocekivao jer si pisao pseudo code).

Razmisljanje ti je dobro zato sto si na dobrom putu, JButton ima addActionListener koji ima za parametar klasu koja implementira ActionListener interface.

Tako da bi onda potpuni odgovor na tvoje pitanje bilo,

DA moze da se razdvoji.

Primer:
Code:

    JButton loadFaultMessagesBtn = new JButton("Load...");
    loadFaultMessagesBtn.addActionListener(new LoadFaultMessageListener());


a onda negde kasnije imas jos klasu

Code:

    private class LoadFaultMessageListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            log.trace("loadFaultBtn clicked ...");
        }
    }


Nadam se da je od pomoci
[ Valerij Zajcev @ 23.03.2010. 10:06 ] @
Aha, super, ja sam do sada radio u programskom jeziku koji ima addEventListener(metodaKojaGaHendla), pa sam mislio da nema java slicno, ali ovo je super :) Hvala
[ Man-Wolf @ 23.03.2010. 17:29 ] @
Mozes i ovako (kako radi NetBeans):

Code (java):


JButton button = new JButton("....");

button.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent e) {
     // Pozovi neku svoju metodu
     buttonHandler(e);
  }
});





// Metoda
private void buttonHandler(ActionEvent e) {
  // Neka logika .....
}

 
[ biske86 @ 23.03.2010. 22:32 ] @
Ovo nije netbins već "anonimna unutrasnja klasa". To je u stvari način da se skrati kod. Anonimna potiče zato što se kreira klasa koja implementira interfejs ActionListener a pri tome nema ime. Referenca te klase se predaje metodi addActionListener. Imaš ovo potanko i lepo objašnjeno u knjizi Core Java, tom I. Na ovo se treba navikavati zato što iskusniji programeri uglavnom ovako skraćuju kod a pošto ćeš često pregledati tuđi kod moraćeš da naučiš da ga čitaš..
[ Man-Wolf @ 24.03.2010. 09:11 ] @
Mozda sam se lose izrazio, tako da, izvinjavam se na nesporazumu :-)

Hteo sam da kazem da - ovakav kod generise "NetBeans" IDE i definitivno mi se cini kao najbolje resenje koje sam video do sad (tek od skoro sam krenuo da se "igram" sa Javom).