Documente Academic
Documente Profesional
Documente Cultură
LUCRAREA NR. 5
Interfețe grafice cu utilizatorul. AWT.
1. Scopul lucrării
Această lucrare de laborator prezintă modul de realizare a unei interfețe grafice utilizator folosind
pachetul java.awt. Se vor prezenta câteva programe demonstative ce cuprind și tratarea
evenimentelor ce sunt generate de componentele grafice.
Programatorii în limbajul Java dispun de două familii de pachete de clase pentru realizarea
interfeţelor utilizator grafice, prezente în Java API: AWT şi Swing.
Java AWT (Abstract Windowing Toolkit - setul de creare a ferestrelor abstracte) este constituit din
pachetele java.awt, java.awt.event, java.awt.color, java.awt.font, java.awt.geom şi altele. Tot aici
se poate încadra şi pachetul java.applet, destinat realizării de appleturi.
Din motive de portabilitate AWT utilizează pentru reprezentarea pe ecran şi manipularea
obiectelor interfeţei grafice resursele proprii ale platformei pe care se execută programul. Un
dezavantaj ar fi că autorii lui au fost nevoiţi să ia în consideraţie numai acele clase de obiecte grafice,
care există într-o formă sau alta pe toate platformele. Aceasta a făcut ca numărul de clase de obiecte
grafice din Java AWT să fie destul de restrâns.
Interfețele grafice Swing au fost realizate ca o completare pentru AWT pentru a creşte
abilităţile limbajului relativ la grafică. Din aceasta familie fac parte pachetele javax.swing,
javax.swing.event şi altele. Multe din clasele AWT sunt necesare şi atunci când se lucrează în Swing.
Obiectele grafice din Swing au nu numai aceeaşi funcţionalitate, ci şi acelaşi aspect pe orice
platformă.
În acest laborator vor fi prezentate aplicații care folosesc doar pachetul java.awt, urmând ca în
laboratorul următor să se utilizeze și pachetul javax.swing.
Pașii pentru crearea unei interfețe grafice utilizator sunt:
➢ Creezi un cadru (Frame, Dialog sau Applet)
Frame fereastra = new Frame( );
➢ Creezi un element grafic (buton, casetă de text, panel, etc)
1
Laborator Programare Java Lucrarea nr. 5
import java.awt.*;
// Fisierul Test_GUI_1.java
package lab5AWT;
2
Laborator Programare Java Lucrarea nr. 5
Observăm că nu se întâmplă nimic când facem clic cu mouse-ul pe buton. Avem nevoie de două
lucruri:
- O metodă care să fie apelată atunci când utilizatorul execută clic pe buton (ceea ce dorește să
se întâmple în urma apăsării butonului)
- O modalitate de a afla când trebuie apelată metoda respectivă. Altfel spus, o modalitate prin
care să aflăm când a fost apăsat butonul. Ne interesează evenimentul generat de acționarea
unui buton de către utilizator.
Pașii sunt următorii:
➢ Crearea unei clase care implementează interfața Listener ( această interfață “ascultă”
evenimentele) potivită evenimentului.
O sursă de evenimente (cum ar fi un buton) creează un obiect eveniment atunci când
utilizatorul execută o acțiune care contează (clic pe buton). Pentru fiecare tip de eveniment
există o interfață Listener corespunzătoare. De exemplu, dacă vrem să tratăm evenimentele
de tip MouseEvent vom implementa interfața MouseListener, pentru obiecte de tip
WindowEvent vom implementa interfața WindowListener etc.
Interfața Listener definește metodele pe care sursa de evenimente le va apela la apariția unui
eveniment.
public clasa Gui implements ActionListener {… }
➢ În clasa creată implementăm toate metodele interfeței Listener-ului potrivit.
public void actionPerformed (ActionEvent ev) {
buton.setText( “Am fost apasat!”);
➢ Pentru a asculta un eveniment, trebuie să înregistră clasa în lista sursei de evenimente.
Pentru înregistrarea obiectului listener în lista sursei se folosește metoda:
addTipEvenimentListener( )
buton.assActionListener(this);
Exemplu: evenimentul unui buton
// Fisierul GUI_2.java
package lab5AWT;
import java.awt.*;
import java.awt.event.*;
3
Laborator Programare Java Lucrarea nr. 5
4
Laborator Programare Java Lucrarea nr. 5
// Fisierul GUI_3.java
package lab5AWT;
import java.awt.*;
import java.awt.event.*;
// Fisierul Test_GUI_3.java
package lab5AWT;
5
Laborator Programare Java Lucrarea nr. 5
import java.awt.*;
import java.awt.event.*;
package lab5AWT;
6
Laborator Programare Java Lucrarea nr. 5
// O facem vizibila
f.setVisible(true);
}
}
Aplicația 2. Folosirea clasei Dialog
package lab5AWT;
import java.awt.*;
import java.awt.event.*;
// Fereastra principala
class GUI_5 extends Frame implements ActionListener {
public GUI_5(String titlu) {
super(titlu);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
setLayout(new FlowLayout());
setSize(300, 80);
Button b = new Button(" Schimba titlul ");
add(b);
b.addActionListener(this);
}
7
Laborator Programare Java Lucrarea nr. 5
ok = new Button("OK");
cancel = new Button(" Cancel ");
panel.add(ok);
panel.add(cancel);
add(panel, BorderLayout.SOUTH);
pack();
text.addActionListener(this);
ok.addActionListener(this);
cancel.addActionListener(this);
setVisible(true);
}
package lab5AWT;
import java.awt.*;
import java.awt.event.*;
8
Laborator Programare Java Lucrarea nr. 5
import java.awt.*;
import java.awt.*;
import java.awt.event.*;
9
Laborator Programare Java Lucrarea nr. 5
package lab5AWT;
10
Laborator Programare Java Lucrarea nr. 5
import java.awt.*;
import java.awt.event.*;
package lab5AWT;
11
Laborator Programare Java Lucrarea nr. 5
import java.awt.*;
import java.awt.event.*;
12
Laborator Programare Java Lucrarea nr. 5
package lab5AWT;
import java.awt.*;
import java.awt.event.*;
package lab5AWT;
13