Graphical User Interface (GUI) - Java Swing și JavaFX: Diferență între versiuni

De la WikiLabs
(Java Swing)
(Componente)
Linia 15: Linia 15:
 
=== Componente ===
 
=== Componente ===
  
Toate obiectele Swing, cu excepția clasei '''JFrame''', moștenesc clasa [http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html javax.swing.JComponent], care la rândul ei moștenește (indirect) clasa [http://docs.oracle.com/javase/7/docs/api/java/awt/Container.html java.awt.Container]. Astfel, se creează o ierarhie de componente, fiecare element (numit ''parent'') înglobând alte sub-componente (numite ''children'').
+
Toate obiectele Swing, cu excepția clasei '''JFrame''', moștenesc clasa [http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html javax.swing.JComponent], care la rândul ei moștenește (indirect) clasa [http://docs.oracle.com/javase/7/docs/api/java/awt/Container.html java.awt.Container]. Astfel, se creează o ierarhie de componente, fiecare element (numit ''parent'') înglobând alte sub-componente (numite ''children''). În continuare se vor prezenta elementele necesare realizării temei 6. Pentru descrierea altor elemente mai avansate, citiți [http://docs.oracle.com/javase/tutorial/uiswing/components/index.html tutorial-ul Oracle].
  
 
==== [http://docs.oracle.com/javase/7/docs/api/javax/swing/JPanel.html javax.swing.JPanel] ====
 
==== [http://docs.oracle.com/javase/7/docs/api/javax/swing/JPanel.html javax.swing.JPanel] ====
Linia 21: Linia 21:
 
'''JPanel''' este un container generic care poate conține alte elemente. Poate fi vizibil, schimbându-i-se culoarea background-ului, sau modelul marginii, sau invizibil, folosit doar pentru ierarhizarea conținutului. Este indicat să nu plasați alte obiecte direct pe un '''JFrame''', ci doar un '''JPanel''' care să conțină restul de elemente. Acest lucru este foarte util și când aveți nevoie să schimbați complet elementele dintr-un '''JFrame''', înlocuiți doar '''JPanel'''-ul.
 
'''JPanel''' este un container generic care poate conține alte elemente. Poate fi vizibil, schimbându-i-se culoarea background-ului, sau modelul marginii, sau invizibil, folosit doar pentru ierarhizarea conținutului. Este indicat să nu plasați alte obiecte direct pe un '''JFrame''', ci doar un '''JPanel''' care să conțină restul de elemente. Acest lucru este foarte util și când aveți nevoie să schimbați complet elementele dintr-un '''JFrame''', înlocuiți doar '''JPanel'''-ul.
  
 +
==== [http://docs.oracle.com/javase/7/docs/api/javax/swing/JLabel.html javax.swing.JLabel] ====
  
 +
'''JLabel''' este un component utilizat pentru a afișa text sau imagini într-un container.
 +
 +
==== [http://docs.oracle.com/javase/7/docs/api/javax/swing/JButton.html javax.swing.JButton] ====
 +
 +
'''JButton''' este, cum îi spune și numele, un buton. Acesta poate avea afișat un text sau o imagine. De cele mai multe ori este utilizat asociindu-i-se un ''Event Handler'' de tip ''ActionListener'' (vezi [[#Event Handlers]]) care se declanșează când acesta este apăsat (se dă click pe el).
 +
 +
==== [http://docs.oracle.com/javase/7/docs/api/javax/swing/JTextField.html javax.swing.JTextField] ====
 +
 +
'''JTextField''' reprezintă o zonă în care se poate introduce text scurt, de o singură linie. Și acestul element i se poate asocia un ''Event Handler'' de tip ''ActionListener'' care se declanșează când se apasă tasta ''Enter'' în zona de editare.
 +
 +
==== [http://docs.oracle.com/javase/7/docs/api/javax/swing/JTextArea.html javax.swing.JTextArea] ====
 +
 +
'''JTextArea''' reprezintă o zonă în care se poate introduce text de mai multe linii.
 +
 +
=== Layouts ===
  
 
=== Event Handlers ===
 
=== Event Handlers ===
  
 
== JavaFX ==
 
== JavaFX ==

Versiunea de la data 27 august 2012 10:16

În multe dintre aplicațiile pe care le veți dezvolta folosing Java, veți avea nevoie și de o interfață grafică adecvată: ferestre, butoane, câmpuri de editare, checkbox­uri, etc. Există mai multe biblioteci de dezvoltare pentru interfețe grafice, cea mai cunoscută fiind Java Swing și cea mai nouă fiind JavaFX.

Java Swing

Pachetul care conține majoritatea claselor pentru aplicațiile Swing este java.swing dar sunt utilizate și multe din clasele din vechea biblotecă GUI, java.awt. Clasa principală pentru aplicații Java Swing este clasa javax.swing.JFrame.

Frame-ul este fereastra principală a unei interfețe grafice. Este elementul care are asociată bara de deasupra, care conține icon-ul, numele aplicației și cele trei butoane: minimize, maximize, close:

Exemplu de frame fără elemente

În continuare este prezentat un frame ce conține cele mai utilizate componente Swing:

Exemplu de frame cu elemente

Componente

Toate obiectele Swing, cu excepția clasei JFrame, moștenesc clasa javax.swing.JComponent, care la rândul ei moștenește (indirect) clasa java.awt.Container. Astfel, se creează o ierarhie de componente, fiecare element (numit parent) înglobând alte sub-componente (numite children). În continuare se vor prezenta elementele necesare realizării temei 6. Pentru descrierea altor elemente mai avansate, citiți tutorial-ul Oracle.

javax.swing.JPanel

JPanel este un container generic care poate conține alte elemente. Poate fi vizibil, schimbându-i-se culoarea background-ului, sau modelul marginii, sau invizibil, folosit doar pentru ierarhizarea conținutului. Este indicat să nu plasați alte obiecte direct pe un JFrame, ci doar un JPanel care să conțină restul de elemente. Acest lucru este foarte util și când aveți nevoie să schimbați complet elementele dintr-un JFrame, înlocuiți doar JPanel-ul.

javax.swing.JLabel

JLabel este un component utilizat pentru a afișa text sau imagini într-un container.

javax.swing.JButton

JButton este, cum îi spune și numele, un buton. Acesta poate avea afișat un text sau o imagine. De cele mai multe ori este utilizat asociindu-i-se un Event Handler de tip ActionListener (vezi #Event Handlers) care se declanșează când acesta este apăsat (se dă click pe el).

javax.swing.JTextField

JTextField reprezintă o zonă în care se poate introduce text scurt, de o singură linie. Și acestul element i se poate asocia un Event Handler de tip ActionListener care se declanșează când se apasă tasta Enter în zona de editare.

javax.swing.JTextArea

JTextArea reprezintă o zonă în care se poate introduce text de mai multe linii.

Layouts

Event Handlers

JavaFX