Documente Academic
Documente Profesional
Documente Cultură
PROIECT
PROIECT
adaugare/stergere/modificare de abonat
Interfata grafica
Cu exceptia cerintelor prezentate in continuare, design-ul ei este la latitudine
a voastra, insa toate functiile enumerate mai sus trebuie sa se realizeze prin i
ntermediul ei. Utilizatorul va putea sa aleaga operatiunea dorita, iar voi prelu
ati input-ul lui si il pasati metodelor din model apelandu-le dupa necesitati.
La pornirea aplicatiei va fi afisat timp de 2 secunde un splash screen, care va
contine o poza aleasa de voi dedesubtul careia este scris numele vostru.
Aplicatia porneste initial in mod shareware, care are urmatoarele (d)efecte:
salvarea si incarcarea bazei de date sunt dezactivate (dezactivati elementele Op
en si Save din meniul File)
In meniul Help este activ elementul Inregistrare
dedesubtul ferestrei principale (ca parte a sa) va exista o zona de reclame. Ale
geti cateva poze de aceeasi marime pe care le puneti intr-un JLabel, si pe care
le schimbati periodic (odata la 3-5 secunde, sa zicem) cu ajutorul unui thread puteti folosi Timer si TimerTask sau chiar un Thread.
Fereastra principala va contine lista de abonati (care, la pornirea aplicatiei,
este populata cu informatiile salvate anterior, daca exista) si butoane pentru
adaugare/stergere/modificare/sortare/cautare/iesire. Fereastra va avea o bara de
meniu, cu meniurile:
File
Open deschiderea unei baze de date cu abonati; la click pe acest element se desc
hide o fereastra de alegere de fisier (JFileChooser)
Save
salvarea bazei de date curente. Daca nu este inca stabilit fisierul in care
- analog
Modifica - analog
Help
Inregistrare deschide un dialog care cere codul de inregistrare; in cazul in car
e codul este corect, se dezactiveaza acest element de meniu, se activeaza Open s
i Save din meniul File si se elimina reclamele. Fereastra de dialog se poate fac
e usor cu JOptionPane.showInputDialog(...). Codul de inregistrare il stabiliti v
oi (preferabil scurt, din ratiuni de usurinta in testare...).
(Separator)
About
Meniurile vor avea pe cat posibil mnemonice (shortcut-uri), iar butoanele texte
ajutatoare (hint).
La dublu-click sau enter pe un abonat va fi afisata fereastra de modificare a ac
estuia. Apasand Del pe un abonat, va fi afisat un dialog de confirmare ("Doriti
sa stergeti abonatul X?", butoane Da/Nu) inaintea stergerii acestuia.
Ordonarea abonatilor va fi facuta fie cu click pe capul de tabel (in cazul in ca
re folositi JTable), fie cu un set de componente separate ce permit selectarea c
riteriului de sortare dorit (ex: radio button-uri, drop down list plus un buton
de sortare etc).
Cautarea se va putea face dupa fragmente de nume/prenume/numar de telefon/CNP (p
ractic are rol de filtrare a listei de abonati). Atunci cand exista un filtru se
tat, acesta trebuie evidentiat (sa apara undeva in fereastra, astfel incat utili
zatorul sa stie ca lista nu este cea completa, ci una partiala).
Validarea input-ului (cel de la utilizator, plus argumentele din constructori) v
a fi facuta folosind regex-uri si aruncand exceptii acolo unde este cazul.
Alte facilitati
Aplicatia va dispune de un thread care efectueaza salvarea bazei de date odata l
a 5 minute. Fisierul in care se face salvarea este cel ales de utilizator la des
chiderea aplicatiei. Daca utilizatorul nu a ales inca un fisier pentru salvare,
aceasta nu va avea loc automat.
Documentatia
Documentati ceea ce faceti acolo unde este cazul! In primul rand, acolo unde fol
ositi procedee sau algoritmi mai dificil de urmarit, clarificati care v-au fost
intentiile. Comentariile din cod nu trebuie sa fie multe, ci doar plasate in loc
urile potrivite.
Facilitati suplimentare, optionale
Oricate:-)...puteti incerca afisarea abonatilor intr-un JTable si editarea lor i
n-place (o rezolvare eleganta), deschiderea unui popup menu cu operatii posibile
(Modificare/Stergere etc) la click dreapta pe un abonat din lista, cautare incr
ementala, memorarea listei de abonati intr-un server de baze de date...orice v-a
r placea sa vedeti iesit din mainile voastre.
In incheiere, spor la treaba, si nu ezitati sa ma cautati daca aveti nelamuriri.
Succes!
Ionut