Differences

This shows you the differences between two versions of the page.

Link to this comparison view

poo:laboratoare:10 [2023/11/26 12:47]
carmen.odubasteanu
poo:laboratoare:10 [2023/11/27 18:45] (current)
carmen.odubasteanu
Line 1: Line 1:
 ===== Laboratorul 9. ===== ===== Laboratorul 9. =====
-**Atentie! +**Atentie!**
-<​Hidden>​+
  
-//​Aest ​laborator se va rezolva acasa, de catre TOATA SERIA (inclusiv grupa de luni), +<​hidden>​ 
-si se va prezenta la laboratoarele din saptamanile 5-9 dec sau 12-16 dec. \\  +Acest laborator se va rezolva acasa, de catre TOATA SERIA (inclusiv grupa de luni), 
-\\ +si se va prezenta la laboratoarele din saptamanile 5-9 dec sau 12-16 dec.
 </​hidden>​ </​hidden>​
  
-Primele 2 probleme sunt rezolvate, trebuie sa rezolvati doar ultimele 4 probleme. \\  
-\\  
  
-Folositi pentru aceasta exemplele de rezolvari de la primele 2 probleme. \\  
-{{:​poo:​laboratoare:​laborator_swing_1_rezolvari1_2.zip| Arhiva rezolvari problema 1 si 2}}\\  
-\\  
  
-Rezolvarile vor tine cont de indicatiile de la cursfolosim direct componentele si  +Primele 2 probleme sunt rezolvate, testati-le si apoi rezolvati si celelalte probleme din laborator.  
-optiunile Swing, nu doar AWT! + 
-//+Folositi pentru aceasta exemplele de rezolvari de la primele 2 probleme. 
 +{{:​poo:​laboratoare:​laborator_swing_1_rezolvari1_2.zip| Arhiva rezolvari problema 1 si 2}}  
 +  
 + 
 +Rezolvarile vor tine cont de indicatiile de la curs 9 - vezi ultimul slide din curs - si anume, ​folosim direct componentele si optiunile Swing, nu doar AWT! 
  
 === Problema 1 === === Problema 1 ===
Line 36: Line 35:
  
 Sa se realizeze un program care citeste dintr-un fisier o intrebare urmata Sa se realizeze un program care citeste dintr-un fisier o intrebare urmata
-de 4 raspunsuri posibile, unul singur fiind corect (primul indicat in fisier), si afiseaza un camp text nemodificabil,​ care va contine enuntul intrebarii, patru butoane de tip **//JRadioButton//**, grupate intr-un grup de butoane (**//ButtonGroup//**),​continand raspunsurile posibile, si un buton pentru validarea raspunsului selectat.+de 4 raspunsuri posibile, unul singur fiind corect (primul indicat in fisier), si afiseaza un camp text nemodificabil,​ care va contine enuntul intrebarii, patru butoane de tip **JRadioButton**,​ grupate intr-un grup de butoane (**ButtonGroup**),​continand raspunsurile posibile, si un buton pentru validarea raspunsului selectat.
 Butonul de validare este de tip JButton si este accesibil doar dupa ce a Butonul de validare este de tip JButton si este accesibil doar dupa ce a
 fost ales un raspuns. In cazul in care raspunsul selectat este corect, se va aplica fost ales un raspuns. In cazul in care raspunsul selectat este corect, se va aplica
Line 55: Line 54:
 === Problema 3 === === Problema 3 ===
  
-Modificati programul implementat la exercitiul anterior, pentru afisarea unor casete cu bifare, **//JCheckBox//**. Astfel, de aceasta data vom avea un program care permite uzitarea unor intrebari cu raspunsuri corecte multiple. Toate cele patru casete de tip **//JCheckBox//** vor avea un singur ascultator de tip **//ItemListener//**, cu o metoda **//itemStateChanged()//** si cu un argument de tip **//ItemEvent//**.+Modificati programul implementat la exercitiul anterior, pentru afisarea unor casete cu bifare, **JCheckBox**. Astfel, de aceasta data vom avea un program care permite uzitarea unor intrebari cu raspunsuri corecte multiple. Toate cele patru casete de tip **JCheckBox** vor avea un singur ascultator de tip **ItemListener**,​ cu o metoda **itemStateChanged()** si cu un argument de tip **ItemEvent**.
  
 Butonul de validare este de tip JButton si este accesibil doar dupa ce a fost ales un raspuns. La apasarea butonului de validare se va aplica textelor raspunsurilor corecte culoarea verde, iar celor incorecte li se va aplica culoarea rosie. Presupunem ca sunt corecte primul si al treilea raspuns. Butonul de validare este de tip JButton si este accesibil doar dupa ce a fost ales un raspuns. La apasarea butonului de validare se va aplica textelor raspunsurilor corecte culoarea verde, iar celor incorecte li se va aplica culoarea rosie. Presupunem ca sunt corecte primul si al treilea raspuns.
Line 63: Line 62:
 === Problema 4 === === Problema 4 ===
  
-Sa se implementeze o aplicatie grafica cu 3 obiecte cursor, de tip **//JSlider//**, si un camp text. Fiecare cursor corespunde ponderii unei culori (Red, Green, Blue), iar culoarea apare in campul text. Pentru fiecare obiect JSlider, trebuie sa definiti urmatoarele:​ orientarea, valoarea minima, valoarea maxima si valoarea initiala afisata (ca numere intregi).+Sa se implementeze o aplicatie grafica cu 3 obiecte cursor, de tip **JSlider**,​ si un camp text. Fiecare cursor corespunde ponderii unei culori (Red, Green, Blue), iar culoarea apare in campul text. Pentru fiecare obiect JSlider, trebuie sa definiti urmatoarele:​ orientarea, valoarea minima, valoarea maxima si valoarea initiala afisata (ca numere intregi).
  
-La deplasarea cursorului, se genereaza un eveniment de tip **//ChangeEvent//** si se apeleaza metoda **//stateChanged//**, dintr-un obiect **//ChangeListener//**. Valoarea ce corespunde pozitiei cursorului se poate obtine cu metoda **//getValue()//** din clasa **//JSlider//**, ce are ca rezultat un **//int//**.+La deplasarea cursorului, se genereaza un eveniment de tip **ChangeEvent** si se apeleaza metoda **stateChanged**,​ dintr-un obiect **ChangeListener**. Valoarea ce corespunde pozitiei cursorului se poate obtine cu metoda **getValue()** din clasa **JSlider**,​ ce are ca rezultat un **int**.
  
 <note important>​ slider = new JSlider(JSlider.HORIZONTAlL,​ 0, 255, 0); </​note>​ <note important>​ slider = new JSlider(JSlider.HORIZONTAlL,​ 0, 255, 0); </​note>​
Line 71: Line 70:
 === Problema 5 === === Problema 5 ===
  
-Program pentru afisarea unui buton cu inscriptia Colors si modificarea culorii acestuia ca urmare a efectuarii unui click pe buton. Metoda **//setForeground()//** cu parametru de tip **//Color//** schimba culoarea textului, iar metoda **//setBackground()//** schimba culoarea butonului. La fiecare click se va itera pe un vector de culori, initializat cu constante (**//Color.RED//**, **//Color.BLUE//** etc). Folositi o fereastra **//JFrame//** cu dimensiuni mici (100, 100) si organizarea **//FlowLayout//**. Implementati si posibilitatea de actionare a butonului prin combinatia de taste ALT+C.+Program pentru afisarea unui buton cu inscriptia Colors si modificarea culorii acestuia ca urmare a efectuarii unui click pe buton. Metoda **setForeground()** cu parametru de tip **Color** schimba culoarea textului, iar metoda **setBackground()** schimba culoarea butonului. La fiecare click se va itera pe un vector de culori, initializat cu constante (**Color.RED**,​ **Color.BLUE** etc). Folositi o fereastra **JFrame** cu dimensiuni mici (100, 100) si organizarea **FlowLayout**. Implementati si posibilitatea de actionare a butonului prin combinatia de taste ALT+C.
  
 <note important>​ buton.setMnemonic(KeyEvent.VK_C);​ </​note>​ <note important>​ buton.setMnemonic(KeyEvent.VK_C);​ </​note>​
Line 77: Line 76:
 === Problema 6 === === Problema 6 ===
  
-Realizati o fereastra cu titlu, folosind **//JFrame//**, care sa contina urmatoarele:​ o eticheta, avand ca text Calea, un **//JTextField//**, un **//JButton//** si un **//JScrollPane//** care sa contina un **//JTextArea//**, setat initial ca fiind invizibil.+Realizati o fereastra cu titlu, folosind **JFrame**, care sa contina urmatoarele:​ o eticheta, avand ca text Calea, un **JTextField**,​ un **JButton** si un **JScrollPane** care sa contina un **JTextArea**,​ setat initial ca fiind invizibil.
  
-Dupa ce se va introduce o cale, catre un fisier text aflat local pe disc, se va afisa continutul acestui fisier in fereastra, uzitand componenta de tip **//JTextArea//**.+Dupa ce se va introduce o cale, catre un fisier text aflat local pe disc, se va afisa continutul acestui fisier in fereastra, uzitand componenta de tip **JTextArea**.
  
-Componenta de tip **//JScrollPane//** va deveni vizibila la accesarea butonului, daca exista fisierul specificat local pe disc, in caz contrar, se va sterge continutul din **//JTextField//**.+Componenta de tip **JScrollPane** va deveni vizibila la accesarea butonului, daca exista fisierul specificat local pe disc, in caz contrar, se va sterge continutul din **JTextField**.
  
 <note important>​ File f = new File(path); <note important>​ File f = new File(path);
poo/laboratoare/10.1700995646.txt.gz · Last modified: 2023/11/26 12:47 by carmen.odubasteanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0