Componentele reprezinta obiecte cu reprezentare grafica care sunt descrise prin intermediul unor clase derivate din clasele Component sau JComponent. In aceasta categorie pot fi incluse etichetele (Label, JLabel), butoanele (Button, JButton), butoanele de marcaj (CheckBox, JCheckBox), butoanele radio (RadioButton, JRadioButton), listele (List, JList), listele ascunse (Choice, JComboBox) si campurile de tip text (JTextField, JTextArea, JPasswordField).
Etichete
Eticheta este o componeta grafica, descrisa de clasele Label si JLabel, care permite plasarea unui text sau a unei imagini pe o suprafata de afisare. Eticheta este o componenta grafica needitabila. Textul corespunzator unei etichete poate fi inserat prin metoda setText() si poate fi obtinut prin metoda getText(). Constructorul clasei JLabel permite si stabilirea alinierii prin constante de tipul LEFT, CENTER si RIGHT.
package ro.virtualcampus.gui; | |
import java.awt.*; | |
import javax.swing.*; | |
public class LabelApp { | |
public static void main(String args[]) { | |
JFrame container = new JFrame("Label"); | |
JPanel panou = new JPanel(); | |
panou.setLayout(new BorderLayout()); | |
JLabel eticheta1 = new JLabel("Eticheta 1", JLabel.RIGHT); | |
eticheta1.setFont(new Font("Arial", Font.ITALIC, 14)); | |
JLabel eticheta2 = new JLabel("Eticheta 2", JLabel.LEFT); | |
eticheta2.setForeground(Color.RED); | |
JLabel eticheta3 = new JLabel("Eticheta 3", JLabel.CENTER); | |
JLabel eticheta4 = new JLabel("Eticheta 4", JLabel.CENTER); | |
JLabel eticheta5 = new JLabel("Eticheta 5", JLabel.CENTER); | |
panou.add(eticheta1, BorderLayout.NORTH); | |
panou.add(eticheta2, BorderLayout.SOUTH); | |
panou.add(eticheta3, BorderLayout.EAST); | |
panou.add(eticheta4, BorderLayout.WEST); | |
panou.add(eticheta5, BorderLayout.CENTER); | |
container.add(panou); | |
container.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | |
container.pack(); | |
container.setVisible(true); | |
} | |
} |
Butoane
Elementele de control reprezinta componente grafice prin intermediul carora utilizatorul poate introduce anumite comenzi. Din aceasta categorie fac parte butonul, butonul de marcaj, butonul radio, lista, lista ascunsa sau campul de tip text.
Butonul este un element de control care prin apasare genereaza o actiune. Butoanele au la baza clasele Button, din pachetul java.awt, si JButton, din pachetul javax.swing.
Butonul de marcaj este un element de control care are doua stari stabile si care este descris prin clasele CheckBox si JCheckBox. La fiecare accesare acesta trece dintr-o stare in alta. Este utilizat pentru a prelua o anumita optiune de la utilizator. In plus fata de butoanele simple, pentru butoanele de marcaj se pot apela metodele setSelected(), pentru a stabili marcajul prin program, respectiv isSelected(), pentru a afla starea marcajului.
package ro.virtualcampus.gui; | |
import javax.swing.*; | |
public class CheckBoxApp extends JFrame { | |
private static final long serialVersionUID = 1L; | |
public CheckBoxApp() { | |
super("CheckBox"); | |
} | |
public static void main(String args[]) { | |
CheckBoxApp app = new CheckBoxApp(); | |
CheckBoxPanel cbp = new CheckBoxPanel(); | |
app.add(cbp); | |
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | |
app.pack(); | |
app.setVisible(true); | |
} | |
} |
Butonul radio este un element de control care are doua stari stabile si care face parte dintr-un grup de butoane. In momentul in care este selectat un buton din grup, se deselecteaza automat butonul selectat anterior. Toate butoanele radio incluse in acelasi grup logic sunt mutual exclusive. Butonul radio are la baza clasele RadioButton si JRadioButton. Pentru gestionarea grupurilor de butoane radio se utilizeaza clasa ButtonGroup. Si pentru butoanele radio pot fi apelate metodele setSelected(), pentru a stabili marcajul prin program, respectiv isSelected() pentru a afla starea marcajului.
Pentru toate tipurile de butoane sunt valabile urmatoarele caracteristici:
• orice buton are un text care poate fi inserat prin metoda setText() si poate fi obtinut prin metoda getText();
• orice buton poate avea o mnemonica, adica i se poate asocia o tasta a carei apasare are acelasi efect cu apasarea butonului respectiv;
• prin metoda setMnemonic() se poate stabili tasta de apelare rapida care are ca si argument codul tastei care trebuie actionata;
• orice buton are un cuvant de comanda care poate fi testat pentru efectuarea actiunii asociate;
• implicit cuvantul de comnada este acelasi cu textul butonului, dar poate fi modificat prin metoda setActionCommand() si poate fi aflat prin intermediul metodei getActionCommand().
Liste
O lista este o componenta care contine articole selectabile. Aceasta poate fi cu selectie simpla sau cu selectie multipla, stabilita prin intermediul metodei setSelectionMode(). Listele reprezinta instante ale claselor List sau JList. La crearea listei, constructorului i se da ca argument tabloul obiectelor pe care le va contine lista. Dupa crearea listei pot fi desfasurate operatii de adaugare sau eliminare a articolelor din lista. Daca lista este mai lunga decat spatiul de afisare, ea poate fi pozitionata intr-un panou de tip JScrollPane. La selectarea unui articol din lista este generat un eveniment de tip ListSelectionEvent care poate fi urmarit cu ajutorul unei clase care implementeaza interfata ListSelectionListener.
package ro.virtualcampus.gui; | |
import javax.swing.JFrame; | |
class ListApp extends JFrame { | |
private static final long serialVersionUID = 1L; | |
public ListApp() { | |
super("List"); | |
} | |
public static void main(String args[]) { | |
ListApp app = new ListApp(); | |
ListPanel lsp = new ListPanel(); | |
app.add(lsp); | |
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | |
app.pack(); | |
app.setVisible(true); | |
} | |
} |
O lista ascunsa este o lista cu un singur articol vizibil, care este descrisa prin intermediul clasei JComboBox. O lista ascunsa nu permite selectia multipla a articolelor. Cand este selectat un articol din lista ascunsa este generat un eveniment de tipul ItemEvent care poate fi ascultat printr-un listener de tip ItemListener. Pentru o lista ascunsa nu este necesara includerea intr-un panou de tip JScrollPane.
package ro.virtualcampus.gui; | |
import javax.swing.JFrame; | |
public class ComboBoxApp extends JFrame { | |
private static final long serialVersionUID = 1L; | |
public ComboBoxApp() { | |
super("ComboBox"); | |
} | |
public static void main(String args[]) { | |
ComboBoxApp app = new ComboBoxApp(); | |
ComboBoxPanel cbp = new ComboBoxPanel(); | |
app.add(cbp); | |
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | |
app.pack(); | |
app.setVisible(true); | |
} | |
} |
Campuri text
Campul de tip text reprezinta principala componenta care permite utilizatorului sa introduca date de la tastatura. Aceasta componenta este descrisa prin clasa JTextField. Prin intermediul acestui element se introduce o singura valoare numerica (necesita prezenta unei metode de conversie) sau un sir de caractere. Daca campul de tip text este activ si se apasa tasta Enter este generat un eveniment de tip ActionEvent. Textul introdus prin intermediul unui camp de tip text poate fi obtinut prin metodele getText() si getActionCommand().
package ro.virtualcampus.gui; | |
import javax.swing.JFrame; | |
public class TextFieldApp extends JFrame { | |
private static final long serialVersionUID = 1L; | |
public TextFieldApp() { | |
super("TextField"); | |
} | |
public static void main(String args[]) { | |
TextFieldApp app = new TextFieldApp(); | |
TextFieldPanel tfp = new TextFieldPanel(); | |
app.add(tfp); | |
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | |
app.pack(); | |
app.setVisible(true); | |
} | |
} |