România
Roportal.ro

probleme in JAVA

Început de pegas, Sâm 10 ian 2009 · 12 răspunsuri · 6.468 vizualizări

astan155 mesaje#11

Nu ti-e clar care e domeniul de valabilitate al membrilor unei clase.

Nu intelegi cum functioneaza clasele interne.

Tu cand schimbi valoare membrilor roSele si pinIndex, schimbarea respectiva nu e valabila doar in functia actionPerformed(). Modficarea se pastreaza din acel moment pe toata durata de viata a obiectului.

Adauga urmatoarea metoda in clasa Banco:

public void displayInfo() {

JOptionPane.showMessageDialog(fer,"Selectat pin " + pinIndex,"Parola info",JOptionPane.INFORMATION_MESSAGE);

JOptionPane.showMessageDialog(fer,"Selectat limba romana " + roSele,"Selectie limba",JOptionPane.INFORMATION_MESSAGE);

}

Modifica codul pentru listner-ul alHelp si cheama metoda displayInfo

alHelp = new ActionListener() {

public void actionPerformed(ActionEvent ae) {

JOptionPane.showMessageDialog(fer,"Apasati Butoanele Azi !","Ce help ma ?",JOptionPane.INFORMATION_MESSAGE);

displayInfo();

}

Ruleaza programul, fa selectia limbii pe romana, introdu un pin valid (exemplu 3333).

Apoi da click pe butonul Help si o sa vezi ca valorile pentru roSele si pinIndex se pastreaza.

Acuma, ne referim la problema ta.

Tu ai niste cod de genul:

if(roSele){

JButton retrag=new JButton(mesRo[2]);

b4.add(retrag);}

else {

JButton retrag=new JButton(mesEn[2]);

b4.add(retrag);

}

La creeare obiectului, roSele are valoarea false. Sa zicem ca tu vrei sa dai click pe butonul de selectiei a limbii romane, sa setezt roSele pe true.

Apoi ai pretentia sa se execute codul:

JButton retrag=new JButton(mesRo[2]);

si sa creezi butonul cu numele "Retragere numerar".

Asta nu o sa se intample, pentru ca pana sa dai tu click pe butonul de selectie a limbii si sa setezi roSele pe true, butonul retrag era creat deja".

Metoda actionScript pentru butonul de selectie a limbii se apeleaza cand dai click pe butonul respectiv. Dar, deja pana atunci, butonul JButton se crease. Sin in momentul in care butonul retrag a fost creat, tu nu dadusei click pe butonul de selectie a limbii, roSele avand inca valoarea false.

In concluzie, valoarile setate pentru roSele si pinIndex se pastreaza pe toata durata existentei unui obiect de tip Banco, numai ca se seteaza mai tarziu decat vrei tu.

In plus, invata sa faci debug pe o aplicatie.

Editat Joi 15 ian 2009 07:35

pegas7 mesaje#12

"In plus, invata sa faci debug pe o aplicatie. "

am sa incerc.

in privinta la ce ai scris mai sus nu comentez si poate sunt prea incapatanat la ora asta sa spun lucruri neverificate dar nu stiu cu ce o sa ma ajute informatia ta interesanta ce-i drept...cert este ca trebuia sa incep proiectul cu ideile mele si sa il fac pana la capat..luandu-ma dupa un model care a fost ceva de gen Last Resort si neramanand calm pe situatie m-am "blocat" .

Merci de ajutor. :spiteful:

astan155 mesaje#13

Well ... e codul tau. Ti-am explicat deja, in detaliu, care e problema cu el.

Succes in continuare.

Editat Joi 15 ian 2009 20:38

← Înapoi la Programare