Sunteți pe pagina 1din 3

Programare Orientata pe Obiecte L A B O R A T O R 8 Programare vizuala in NetBeans IDE Programare vizuala inseamna generarea automata de cod pentru componentele

GUI dintr-o aplicatie, componente selectate de operator dintr-o paleta de componente si aduse in pozitiile dorite pe o suprafata JFrame sau JPanel. Operatorul poate modifica si proprietatile componentelor folosite. Tratarea evenimentelor asociate componentelor se adauga manual la codul genera t in pozitiile indicate de IDE. Crearea unui nou proiect cu o fereastra JFrame: File->New Project -> Java -> Java Application -> Next -> click stanga pe "Create Main Class" (nu se va crea metoda "main") -> click dreapta pe nume proie ct -> New -> JFrame form -> Finish Zona centrala contine fie panoul de proiectare ("Design"), fie panoul cu codul sursa ("Source"). In dreapta se afla lista de componente Swing ("Palette") si foaia de proprietati a componentei selectate ("Properties"), care poate fi editata, pentru modificarea valorilor implicite ale proprietatilor. Fereastra "Design" nu este identica cu ce se vede la executie dar se poate vizualiza aspectul final fara executie ("Preview") prin selectarea imaginii cu un ochi din bara de instrumente afisata in modul "Design". Adaugarea de componente la suprafata de proiectare se face prin tragere din paleta de componente. Prin click dreapta pe mouse se pot modifica proprietati ale componentei sau se poate elimina componenta din fereastra. NetBeans genereaza automat cod sursa pentru adaugarea componentele selectate dar nu genereaza cod pentru tratarea evenimentelor. Pentru completarea secventelor de tratare a evenimentelor se face click dreapta pe componenta care genereaza evenimente (buton, camp text, etc), se alege, de exemplu, Events -> Action -> actionPerformed si apoi se introduce cod in pozitia din codul sursa unde e plasat cursorul. Se vor folosi numele de variabile generate de NetBeans pentru referinte la obiectele Swing (jButton1). Pentru compilarea si executia programului: Run->Run Main Project, sau F6, sau sageata verde mare din bara cu instrumente. Sa se creeze cate un proiect separat pentru fiecare din problemele urmatoare: 1. Se va executa scheletul de aplicatie generat automat, fara nici o modifica re. Se va realiza o aplicatie cu doua butoane JButton si un camp JTextField: un buton incrementeaza valoarea din campul text, iar alt buton decrementeaza valoarea afisata in campul text. Proprietati care pot fi modificate: - Texte butoane : "+" si "-" - Valoarea initiala si alinierea in campul text (zero, centrat) Comutati pe fereastra cu cod sursa si observati codul generat (numele variabilelor pentru componentele Swing). Se adauga actiunile de modificare a valorii din campul text la evenimentele produse de butoane: click dreapta pe buton -> Events -> Action -> actionPerformed

2. Se va realiza o aplicatie in care se alege un element din JComboBox, care se va afisa apoi intr-un camp text. Se vor aduce pe suprafata de proiectare o componenta JComboBox si un camp text JTextField. Se va modifica proprietatea "model" a componentei JComboBox, care este un vector de obiecte, din care se poate selecta unul singur. Exemplu: unu,doi,trei,patru. (Afisarea listei de proprietati: click dreapta pe JComboBox si click "Properties ") La evenimentul ActionEvent generat de JComboBox se va prelua valoarea selectata (metoda "getSelectedItem" cu rezultat Object) si se va pune in campul text. 3. Se vor aduce din paleta o componenta JTextField si o componenta JFileChoos er (din "Swing Windows"),una peste alta (campul text jos). Se va trata evenimentul "ActionEvent" generat de butonul "Open" din JFileChooser astfel ca in zona text sa se afiseze numele fisierului selectat. Exemplu: if (evt.getActionCommand().equals("ApproveSelection")) { en" File file = jFileChooser1.getSelectedFile(); // fisier selectat jTextField1.setText (file.getName()); // pune nume fisier in campul text } 4. Se vor aduce din paleta doua componente JTextField si o componenta JList (pe verticala, JList intre cele doua campuri): in campul de sus se introduce un nume de folder, iar in campul de jos se afiseaza numele selectat din JList. In JList se afiseaza numele fisierelor din acel folder (daca exista), la producerea evenimentului ActionEvent de catre campul text. Continutul initial din JList se poate sterge din proprietatea "model". Pentru continutul unui folder se foloseste metoda list() sau listFiles() din cla sa File. Se vor adauga apoi operatii la selectia unui nume din JList: afisarea numelui selectat din JList in campul text de jos si afisare cale la folderul selectat in campul text de sus. Afisarea continutului acestui folder in JList se face la apasare tastei Enter pe campul text de sus. Se va trata evenimentul "ListSelection" generat la selectia unui element din lis ta. Valoarea elementului selectat se obtine cu metoda getSelectedValue() din JList. Pentru a evita exceptiile la selectii false si selectiile multiple se va scrie: if (jList1.isSelectionEmpty()) return; if (evt.getValueIsAdjusting()) return; Exemplu de tratare evenimente de selectie din JList: private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) { if (jList1.isSelectionEmpty()) return; if (evt.getValueIsAdjusting()) return; String s = jList1.getSelectedValue().toString(); // nume selectat jTextField2.setText(s); // afisare in campul de jos File f = new File(s); // daca buton "Op

if (f.isDirectory()){ // File []files = f.listFiles(); Vector v=new Vector(); // for (int i=0;i<files.length;i++) v.add (s+"\\"+files[i]); jList1.setListData(v); // } s = jTextField1.getText()+"\\"+s; jTextField1.setText(s); // }

daca este nume de folder pentru modificare date din JList trimite datele din v la jList1 // cale la directorul selectat afisare in campul de sus

5. Se va realiza o aplicatie asemanatoare unei componente JFileChooser folosind urmatoarele componente Swing: - JTextField cu JLabel ("Look In:") pentru directorul curent (initial C:/) - JButton "Up" pentru mutare pe directorul parinte al directorului curent - JList pentru afisare continut director curent si pentru selectare fisier sau subdirector - JTextField cu JLabel ("File Name") pentru nume fisier selectat - JButton cu inscriptia "Open" pentru deschidere fisier Apasarea pe butonul "Open" la selectarea unui director nu are efect. Se va trata evenimentul de selectie din lista (ListSelection->valueChanged) si se va folosi metoda "getSelectedValue" pentru valoarea selectata din lista. Daca numele selectat este al unui fisier atunci acest nume se transfera in campu l cu eticheta "File Name"; daca este selectat un nume de folder atunci se afiseaza in JList continutul acelui folder. 6. Sa se modifice aplicatia anterioara prin adaugarea unei componente JComboBox cu eticheta "Files of Type:" pentru selectarea unui tip de fisiere din folderul selectat, pentru afisare in JList (nu se afiseaza toate numele de fisiere din folder). In acest scop se va scrie o functie care creeaza un vector cu tipurile de fisiere dintr-un folder dat si se va folosi acest vector ca argument in metoda "setModel" din JComboBox.

S-ar putea să vă placă și