Componente de afișare

Componentele de afișare sunt cele care servesc pentru a afișa anumite texte sau imagini și pot fi needitabile sau editabile.

Componente de afișare needitabile

Componentele de afișare needitabile sunt realizate ca instanțe ale următoarelor clase:

  - javax.swing.JLabel - pentru realizarea unor "etichete" în care pot fi afișate texte sau imagini, fără a putea fi editate de utilizator;
  - javax.swing.JTooltip - pentru afișarea de "inscripții volante", când se pune cursorul de mouse deasupra unei alte componente;
  - javax.swing.JProgressBar - pentru realizarea unor "bare de progres" adică a unor bare de lungime variabilă, care arată cum evoluează realizarea unei anumite activități (de la 0% la 100%).
 
Utilizarea etichetelor și a inscripțiilor volante a fost deja prezentată. Pentru aprofundarea acestora și pentru a studia folosirea barelor de progres recomandăm capitolele How to Use Labels, How to Use Tool Tips și How to Monitor Progress din Java Tutorial.

Componente de afișare editabile

Componentele de afișare editabile permit utilizatorului operații de editare în timpul executării programului. În JFC/Swing există un număr important de clase pentru astfel de componente. Astfel,  pentru editare de texte există clasele javax.swing.JTextArea, javax.swing.JTextPane și javax.swing.JEditorPane. În aceeași categorie pot fi încadrate și clasele javax.swing.JTextField și javax.swing.JPasswordField, care au fost prezentate anterior.
 
Tot în categoria componentelor editabile intră și clasele javax.swing.JTable (pentru realizarea de tabele editabile), javax.swing.JFileChooser (pentru realizarea de selectoare de fișiere), javax.swing.JTree (pentru realizarea de arbori) și javax.swing.JColorChooser (pentru realizarea de selectoare de culori).

Vom prezenta aici numai clasa JTextArea, iar pentru celelalte recomandăm folosirea documentației indicate.
 
Pentru aprofundare recomandăm folosirea capitolelor Using Text Components, How to Use Tables, How to Use File Choosers, How to Use Trees, si How to Use Color Choosers din Java Tutorial.

Clasa JTextArea

Instanțele clasei javax.swing.JTextArea (arie de text) sunt suprafețe de afișare a unor texte editabile cu mai multe linii. Componenta are comportamentul unui editor de text simplu: permite să se introducă text de la tastatură, să se șteargă textul în întregime sau pe porțiuni, să se adauge sau să se însereze text. Prin metode speciale se poate seta componenta astfel, încât să se realizeze automat trecerea de la un rând la altul. Se oferă metode prin care se poate adăuga text prin program, sau se poate obține sub forma de String textul existent.
 
Iată unele dintre metodele oferite de clasa JTextArea:
  public int getRows() - întoarce numărul maxim de linii din aria de text;
  public void setRows(int rows) - setează numărul maxim de linii;
  public int getColumns() - întoarce numărul maxim de coloane din aria de text;
  public void setColumns(int columns) - setează numărul maxim de coloane;
  public void setFont(Font f) - setează fontul;
  public void setLineWrap(boolean wrap) - indică dacă se face trecere automată la linie nouă;
  public void setWrapStyleWord(boolean word) - indică dacă trecerea automată la linie nouă se face la sfârșit de cuvânt;
  public int getLineCount() - întoarce numărul de linii de text conținute efectiv;
  public void insert(String str, int pos) - înserează șirul str începând de la poziția pos;
  public void append(String str) - adaugă la sfârșit textul str;
  public void replaceRange(String str, int start, int end) - înlocuiește prin șirul str caracterele cuprinse între pozițiile start și end;
  public String getText() - întoarce sub forma de String textul conținut;
  public String getSelectedText() - întoarce textul selectat.
Ultimele două metode sunt moștenite de la superclasa javax.swing.text.JTextComponent.
Exemplu
În fișierul ZonaText.java se dă un exemplu simplu de creare a unei instanțe a clasei JTextArea, setând trecerea automată la linie nouă la sfârșit de cuvant (astfel încât un cuvânt să nu se împartă pe două linii). Punând în execuție această aplicație, constatăm cum aria de text se comportă ca un mic editor de text: putem să introducem de la tastatură text nou sau să modificăm textul existent. Dacă modificăm cu mouse-ul dimensiunile ferestrei, observăm cum se rearanjează automat liniile de text.
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class ZonaText { 
 static AF af=new AF();
// static AA aa=new AA();
 //static AfisPopup afisare=new AfisPopup();
 static IUG iug=new IUG("O zona de text");

 /* clasa imbricata pentru interfata utilizator grafica */
 static class IUG extends JFrame {
  JTextArea ta;
  JLabel label;

  IUG(String titlu) { // constructorul clasei IUG
   super(titlu);
   setSize(450, 150);
   setLocation(200, 50);
   Container cp=getContentPane();
   addWindowListener(af);  // adaugarea ascultatorului de fereastra
   ta=new JTextArea ();
   ta.setLineWrap(true);
   ta.setWrapStyleWord(true);
   cp.add(ta, BorderLayout.CENTER);

   setVisible(true);
  }
 } 

 /* Clasa ascultatoare de fereastra */ 
 static class AF extends WindowAdapter {
  public void windowClosing(WindowEvent e) {
   System.exit(0); // incheierea executarii aplicatiei
  }
 }
 
 

 /* Metoda principala a aplicatiei */
 public static void main(String args[]) {
 }
}



© Copyright 2000 - Severin BUMBARU, Universitatea "Dunărea de Jos" din Galați