[ Valerij Zajcev @ 09.02.2009. 12:10 ] @
Imam metod koji moram da pozovem sa donjeg sloja aplikacije. Da li mogu nekako taj metod (referencu na njega) da prosledim prilikom pravljenja instance klase koja treba da pozove taj metod? Znam da je u .NET_u to delegat ali u javi nemam pojma kako se ovo realizuje :(
[ Java Beograd @ 09.02.2009. 12:17 ] @
Delegati, onakvi kakvi su u .NET platformi ne postoje u javi. Ipak, možda bi mogao da rešiš problem koristeći reflection. Pogledaj package java.lang.reflect.
[ gajo2 @ 09.02.2009. 12:39 ] @
Napravi interfejs sa zeljenom metodom, i nek ti klasa implementira taj interfejs. Posle prilikom pravljenja instance nemoj proslediti metodu, vec instancu klase koja implementira taj interfejs.
[ Valerij Zajcev @ 10.02.2009. 07:47 ] @
Citat:
gajo2: Napravi interfejs sa zeljenom metodom, i nek ti klasa implementira taj interfejs. Posle prilikom pravljenja instance nemoj proslediti metodu, vec instancu klase koja implementira taj interfejs.


Ovo mi se svidja ;), ali negde nesto zajebem...

Ovo mi je interface
Code:

public interface ICallBack {
    public void CallBackMethod(String par);
}

Ovo mi je glavna forma, promenljivoj 'getMess' prosledjujem pomocu 'this' ovu formu, ok?
public class frmMain extends MIDlet implements CommandListener, ICallBack {

private Command exitCommand;
...
...
...
private clsGetMessage getMess = new clsGetMessage(this);
[/code]

Ovo je klasa koja mi sadrzi neku logiku i koja kada odradi svoj posao treba da mi pozove taj CallBack method i u njega prosledi odredjeni parametar koji treba da mi se pojavi u GUI layer-u.
mm sam napravio kao instancu glavne forme da bih pozvao callback odnekle, mislim da sam ovde pogresio ali ne znam kako da resim?

Code:

public class clsGetMessage 
{ ...
... 
...
private frmMain mm = new frmMain();
...
public clsGetMessage(frmMain o)
    {
        service = new ServiceSoap_Stub();
        mm = o;
    }
...
mm.CallBackMethod(msgFromWebService);
[ gajo2 @ 10.02.2009. 10:26 ] @
Hmm pa evo ti ideje, valjda pomogne:
Code:
public class frmMain extends MIDlet implements CommandListener, ICallBack {
    public void CallBackMethod(String par) {
        // implementacija metode
    }
}

// -----------------------------------------------------

public class clsGetMessage {
    private frmMain mm;

    public clsGetMessage(frmMain o) {
       this.mm = o;
    }

    public void nekaDrugaMetoda(String msgFromWebService) {
        if (mm != null) mm.CallBackMethod(msgFromWebService);
    }
}
[ Valerij Zajcev @ 10.02.2009. 12:45 ] @
hmm... pa to je isto ovo sto sam gore napisao. Isti problem :(
[ gajo2 @ 11.02.2009. 08:46 ] @
Pa nista, na pravom si putu barem, sad samo nadji gresku