Documente Academic
Documente Profesional
Documente Cultură
O fi electronic conine informaii despre persoane, precum nume, prenume, adres i numr de telefon. S se scrie o clas Fisa care implementeaz aceste informaii si furnizeaz metode publice prin care se pot obine informaii despre o persoan. Informaiile sunt preluate din fiierul fise.txt cu urmtorul coninut Ionescu !op"#leea rozelor"$%&&'("ionescu.pop)gmail.com !opescu Ion"Strada Sperantei"&'(*+$"pion),a-oo.com .arinescu .arin"Strada Ste/arului"+&%+$0"marin"marinescu),a-oo.com 1lasa Fisa este folosit 2mpreun cu o colecie de obiecte 3reeSet pentru a scrie o clas numit #genda3elefonica care furnizeaz metode ce implementeaz urmtoarele operaii - afiarea fielor 2n ordine alfabetic dup numele persoanelor, - cutarea unei fie dup numele unei persoane, - adugarea unei fie noi, - tergerea unei fie. !rogramul folosete interfee grafice ce permit realizarea operaiilor enumerate mai sus. #stfel, interfaa principal a programului este prezentat 2n figura alaturata. 14nd utilizatorul apas butonul 51reaza fisa noua, se afieaz fereastra 5#dauga o fisa noua 2n care utilizatorul introduce de la tastatur informaiile cerute prenume, nume, adresa i numrul de telefon al persoanei.
6up aceea, utilizatorul apas butonul O7 i programul creaz un obiect Fisa pe care 2l memoreaz 2n colecia de obiecte folosit de program. 8tilizatorul poate 9edea informaii coninut 2ntr:o fi, dac introduce numele i prenumele persoanei cutate i apas ;nter 2n c4mpul de text al ferestrei 51auta o fisa. #ceast fereastr este afiat c4nd utilizatorul apas butonul 51auta fisa a ferestrei principale.
14nd utilizatorul apas butonul 5Sterge fisa a ferestrei principale, programul afieaz interfa grafic 5Sterge o fisa.
14nd utilizatorul apas butonul 5#rata continut agenda telefonica, programul afieaz fereastra 5#genda telefonica.
14nd utilizatorul apas butonul 5Sal9eaza toate fisele, programul descarc elementele coleciei dinamice 2n fiierul fise.txt astfel 2nc4t acesta conine agenda actualizat de fie.
public class Fisa implements 1omparable<Fisa=> pri9ate String nume, prenume, adresa, numar3elefon, , adresa;mail? public Fisa@String nume, String prenume, String adresa, String nt, String aeA> t-is.numeBnume? t-is.prenumeBprenume? t-is.adresaBadresa? numar3elefonBnt? adresa;mailBae? C public String getDume@A> return numeEF FEprenume? C public String toString@A>return prenumeEF"FEnumeEF"FEadresaEF"FEnumar3elefonEF"FEadresa;mail? C public int compare3o@Fisa oA> return @numeEF FEprenumeA.compare3o@o.getDume@AA? C C import /a9a.util.G?import /a9a.io.G? import /a9ax.sHing.G? public class AgendaTelefonica> pri9ate 3reeSet<Fisa= ts? pri9ate IufferedJeader br? pri9ate !rintKriter pH? pri9ate String l? pri9ate Fisa fisa? pri9ate static #genda3elefonica instanta? pri9ate #genda3elefonica@A> File fBneH File@Ffise.txtFA? tsBneH 3reeSet<Fisa=@A? StringLM s, sN? String ae? if @f.exists@AA> tr,>
brBneH IufferedJeader@neH FileJeader@fAA? H-ile @@lBbr.readOine@AAPBnullA> sBl.split@F"FA? sNBsL*M.split@F FA? aeBsL0M? if@s.lengt-=$A aeEBF"FEsL$M? fisaBneH Fisa@sNL*M, sNLNM, sLNM, sLQM, aeA? ts.add@fisaA? C Ccatc-@IO;xception ioeA>ioe.printStacR3race@A?C C else S,stem.out.println@FFisierul nu existaFA? C public String getFise@A> String rezBFF? Iterator<Fisa= itBts.iterator@A? H-ile @it.-asDext@AA rezEBit.next@AEFSnF? return rez? C public 9oid adaugaFisa@String nume, String prenume, String adresa, String numar, String aeA> fisaBneH Fisa@nume, prenume, adresa, numar, aeA? if @ts.contains@fisaAA > TOption!ane.s-oH.essage6ialog@null, FFisa electronica exista de/a in agenda telefonicaF, F#lertF, TOption!ane.;JJOJ".;SS#U;A? return? C ts.add@fisaA? TOption!ane.s-oH.essage6ialog@null, F# fost adaugata o noua fisa electronicaF, FInformationF, TOption!ane.IDFOJ.#3IOD".;SS#U;A? C public String cautaFisa@String numeA> for@Fisa f tsA if@nume.eVuals@f.getDume@AAA return f.toString@A? return Fnu exista nicio fisa cu numele FE nume? C public 9oid stergeFisa@String numeA> Iterator<Fisa= itBts.iterator@A? H-ile @it.-asDext@AA > if@nume.eVualsIgnore1ase@it.next@A.getDume@AAA > it.remo9e@A? TOption!ane.s-oH.essage6ialog@null, FFisa a fost stearsa din agenda telefonicaF, FInformationF, TOption!ane.IDFOJ.#3IOD".;SS#U;A? return? C C TOption!ane.s-oH.essage6ialog@null, FFisa nu se gaseste in agenda telefonicaF, F#lertF, TOption!ane.;JJOJ".;SS#U;A? C public 9oid sal9eaza@A> tr,> pHBneH !rintKriter@neH FileKriter@Ffise.txtFAA? for@Fisa f tsA pH.println@fA? pH.close@A? Ccatc-@IO;xception eA>e.printStacR3race@A?C C public static #genda3elefonica getInstanta@A> if @instantaBBnullA instantaBneH #genda3elefonica@A? return instanta? CC import /a9a.aHt.G?import /a9a.aHt.e9ent.G? public class FisaNouaFrame extends Frame> pri9ate Uestor;9enimenteFDF ec? pri9ate 3extField ft, lt, at, tt, aet?
pri9ate Iutton oR, cancel? public FisaDouaFrame@A> super @F#dauga o fisa nouaFA? !anel pBneH !anel@A? p.setOa,out@neH UridOa,out@%,Q,N*,N*AA? p.setIacRground@1olor.lig-tUra,A? p.add@neH Oabel@F!renumeFAA? ftBneH 3extField@N*A? p.add@ftA? p.add@neH Oabel@FDumeFAA? ltBneH 3extField@N*A? p.add@ltA? p.add@neH Oabel@F#dresaFAA? atBneH 3extField@N*A? p.add@atA? p.add@neH Oabel@FDumar telefonFAA? ttBneH 3extField@N*A? p.add@ttA? p.add@neH Oabel@F#dresa e:mailFAA? aetBneH 3extField@N*A? p.add@aetA? add@pA? ecBneH Uestor;9enimenteFDF@A? pBneH !anel@A? oRBneH Iutton@FO7FA? oR.add#ctionOistener@ecA? p.add@oRA? cancelBneH Iutton@F1ancelFA? cancel.add#ctionOistener@ecA? p.add@cancelA? add@p, IorderOa,out.SO83WA? setOocation@0**,0**A? C pri9ate class GestorEvenimenteFNF implements #ctionOistener> pri9ate #genda3elefonica tnb? Uestor;9enimenteFDF@A>tnbB#genda3elefonica.getInstanta@A?C public 9oid action!erformed@#ction;9ent eA> if@e.getSource@ABBoRA > tnb.adaugaFisa@ft.get3ext@A, lt.get3ext@A,at.get3ext@A,tt.get3ext@A, aet.get3ext@AA? FisaDouaFrame.t-is.dispose@A? C else FisaDouaFrame.t-is.dispose@A? C CC import /a9a.aHt.G?import /a9a.aHt.e9ent.G? public class CautaFisaFrame extends Frame> pri9ate Uestor;9enimente1FF ec? pri9ate 3extField t? pri9ate 3ext#rea ta? public 1autaFisaFrame@A> super@F1auta o fisaFA? !anel pBneH !anel@A? p.add@neH Oabel@FIntroduceti nume si prenumeFAA? tBneH 3extField@N*A? ecBneH Uestor;9enimente1FF@A? t.add#ctionOistener@ecA? p.add@tA? add@p, IorderOa,out.DOJ3WA? taBneH 3ext#rea@Q*,%*A? add@taA?
setSize@0**,Q**A? setOocation@0**,0**A? addKindoHOistener@neH KindoH#dapter@A> public 9oid HindoH1losing@KindoH;9ent HeA> 1autaFisaFrame.t-is.dispose@A? CCA? C pri9ate class GestorEvenimenteCFF implements #ctionOistener> pri9ate #genda3elefonica at? Uestor;9enimente1FF@A>atB#genda3elefonica.getInstanta@A?C public 9oid action!erformed@#ction;9ent eA> if @e.getSource@ABBtA> ta.set3ext@at.cautaFisa@t.get3ext@AAA? t.set3ext@FFA? C C CC import /a9a.aHt.G?import /a9a.aHt.e9ent.G? public class StergeFisaFrame extends Frame> pri9ate Uestor;9enimenteFF ec? pri9ate 3extField t? pri9ate Iutton oR, c? public StergeFisaFrame@A> super @FSterge o fisaFA? !anel pBneH !anel@A? p.setIacRground@1olor.lig-tUra,A? p.add@neH Oabel@FIntroduceti nume si prenumeFAA? tBneH 3extField@N*A? p.add@tA? add@pA? pBneH !anel@A? ecBneH Uestor;9enimenteFF@A? oRBneH Iutton@FO7FA? oR.add#ctionOistener@ecA? p.add@oRA? cBneH Iutton@F1ancelFA? c.add#ctionOistener@ecA? p.add@cA? add@p, IorderOa,out.SO83WA? setSize@0**,N**A? setOocation@0**,0**A? C pri9ate class GestorEvenimenteFF implements #ctionOistener> pri9ate #genda3elefonica at? Uestor;9enimenteFF@A> atB#genda3elefonica.getInstanta@A? C public 9oid action!erformed@#ction;9ent eA> if @e.getSource@ABBoRA > at.stergeFisa@t.get3ext@AA? t.set3ext@FFA? C else StergeFisaFrame.t-is.dispose@A? C CC import /a9a.aHt.G? import /a9a.aHt.e9ent.G? public class FiseFrame extends Frame> pri9ate 3ext#rea ta? pri9ate #genda3elefonica at? public FiseFrame@A> super @F#genda telefonicaFA? add@neH Oabel@F3oate fiseleFA, IorderOa,out.DOJ3WA?
taBneH 3ext#rea@Q*,Q**A? atB#genda3elefonica.getInstanta@A? ta.set3ext@at.getFise@AA? ta.set;nabled@falseA? add@taA? setSize@%**,0**A? setOocation@0**,0**A? addKindoHOistener@neH KindoH#dapter@A> public 9oid HindoH1losing@KindoH;9ent HeA> FiseFrame.t-is.dispose@A? CCA? CC import /a9a.aHt.G?import /a9a.aHt.e9ent.G? public class FereastraPrincipala extends Frame> pri9ate Uestor;9enimenteF! ec? pri9ate IuttonLM b? public Fereastra!rincipala@A> super @FIine ati 9enitPFA? !anel pBneH !anel@A? p.setOa,out@neH UridOa,out@0,Q,N*,N*AA? p.setIacRground@1olor.lig-tUra,A? StringLM sBneH StringLM>F1reaza fisa nouaF, F1auta fisaF, FSterge fisaF, F#rata continut agenda telefonicaF, FSal9eaza toate fiseleFC? ecBneH Uestor;9enimenteF!@A? bBneH IuttonL%M? for @int iB*? i<b.lengt-? iEEA> bLiMBneH Iutton@sLiMA? bLiM.add#ctionOistener@ecA? p.add@bLiMA? C add@pA? C pri9ate class GestorEvenimenteFP implements #ctionOistener> pri9ate Frame f? public 9oid action!erformed@#ction;9ent eA> if@e.getSource@ABBbL*MA> fBneH FisaDouaFrame@A? f.pacR@A? f.setXisible@trueA? C else if@e.getSource@ABBbLNMA> fBneH 1autaFisaFrame@A? f.setXisible@trueA? C else if@e.getSource@ABBbLQMA> fBneH StergeFisaFrame@A? f.setXisible@trueA? C else if@e.getSource@ABBbL0MA> fBneH FiseFrame@A? f.setXisible@trueA? C else > #genda3elefonica atB#genda3elefonica.getInstanta@A? at.sal9eaza@A? C C C public static 9oid main@StringLM argsA> Frame HBneH Fereastra!rincipala@A? H.setSize@0&%, N%*A? H.setOocation@0**,0**A? H.setXisible@trueA? H.addKindoHOistener@neH KindoH#dapter@A> public 9oid HindoH1losing@KindoH;9ent eA>S,stem.exit@*A?C CA? C C