Excelentă alegere! Trecerea de la consola neagră (unde apare doar text) la o interfață grafică (GUI - Graphical User Interface) este un moment magic pentru orice programator începător. Dintr-o dată, programele tale arată ca aplicațiile „reale” pe care le folosești zilnic.
Pentru a crea interfețe grafice în Java, biblioteca standard cea mai folosită pentru început se numește Swing. Nu trebuie să instalezi nimic în plus, vine deja cu Java.
Vom crea o mică aplicație care are:
O fereastră principală.
Un text (o etichetă).
Un buton care, atunci când este apăsat, schimbă textul.
1. Codul Sursă
Salvează acest cod într-un fișier numit PrimaInterfata.java.
// Avem nevoie să importăm componentele grafice din biblioteca Swing
import javax.swing.JFrame; // Fereastra principală (rama)
import javax.swing.JLabel; // Etichetă pentru text
import javax.swing.JButton; // Butonul
import java.awt.FlowLayout; // Un mod simplu de aranjare a elementelor
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class PrimaInterfata {
public static void main(String[] args) {
// --- PASUL 1: Crearea Ferestrei (Containerul principal) ---
// JFrame este "rama" ferestrei, exact ca la o fereastră de Windows/Mac
JFrame fereastra = new JFrame("Prima mea Aplicație GUI");
// Setăm ce se întâmplă când apeși "X"-ul ferestrei.
// Fără linia asta, fereastra se închide, dar programul rulează în fundal.
fereastra.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Setăm dimensiunea ferestrei (lățime, înălțime în pixeli)
fereastra.setSize(400, 200);
// Setăm un layout manager. Acesta decide cum sunt aranjate elementele.
// FlowLayout le pune una după alta, ca și cuvintele într-o frază.
fereastra.setLayout(new FlowLayout());
// --- PASUL 2: Crearea Componentelor ("Mobila" din fereastră) ---
// JLabel este doar un text static pe care nu îl poți edita
JLabel etichetaMesaj = new JLabel("Salut! Apasă butonul de mai jos.");
// JButton este un buton clasic
JButton butonulMeu = new JButton("Click Aici!");
// --- PASUL 3: Adăugarea Interactivității (Ce se întâmplă la click?) ---
// Adăugăm un "ascultător" (listener) care așteaptă ca butonul să fie apăsat.
butonulMeu.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// Codul scris aici se execută DOAR când se apasă butonul
etichetaMesaj.setText("Bravo! Tocmai ai creat primul tău eveniment GUI.");
}
});
// --- PASUL 4: Asamblarea ---
// Adăugăm componentele create în fereastră
fereastra.add(etichetaMesaj);
fereastra.add(butonulMeu);
// --- PASUL 5: Afișarea ---
// Foarte important! Ferestrele sunt invizibile implicit.
fereastra.setVisible(true);
}
}
2. Cum funcționează (Analiza pe bucăți)
Gândește-te la construirea unei interfețe grafice ca la mobilarea unei camere goale:
JFrame fereastra = ...(Camera Goadă): Acesta este containerul principal. Este rama ferestrei cu butoanele de minimizare, maximizare și închidere.fereastra.setLayout(new FlowLayout())(Regula de aranjare): Îi spunem ferestrei cum să așeze lucrurile pe care le vom pune în ea.FlowLayouteste cel mai simplu: le așază una lângă alta, pe rând.JLabelșiJButton(Mobila): Acestea sunt obiectele pe care le pui în cameră. O etichetă (text) și un buton.fereastra.add(...)(Plasarea mobilei): Până nu folosești comanda.add(), componentele există în memorie, dar nu sunt puse în fereastră.ActionListener(Magia): Aici este partea interesantă. Un buton este inutil dacă nu face nimic. Noi am "atașat" de buton un mic spion (listener-ul) care stă și așteaptă un click. Când click-ul se întâmplă, spionul execută codul dintre acoladele{ ... }, adică schimbă textul etichetei folosind.setText().
3. Cum îl rulezi?
Procesul este identic cu primul program din consolă:
Salvează codul într-un fișier
PrimaInterfata.java.Deschide terminalul/command prompt în folderul respectiv.
Compilează:
javac PrimaInterfata.javaRulează:
java PrimaInterfata
Ar trebui să îți apară pe ecran o fereastră mică cu textul și butonul tău.
Ce aș putea face pentru tine mai departe?
Următorul pas logic în GUI este să preluăm date de la utilizator. Vrei să modificăm programul pentru a adăuga o căsuță de text (JTextField) în care utilizatorul să își scrie numele, iar când apasă butonul, programul să îl salute pe nume?
Niciun comentariu:
Trimiteți un comentariu