Sunteți pe pagina 1din 3

SWING

Puncte de start
-JApplet, JFrame
Componente Swing echivalente cu componentele AWT
-JLabel, JButton, JPanel, JSlider
Componente noi Swing
-JColorChooser, JInternalFrame, JOptionPane, JToolbar, JEditorPane
Alte componente mai simple
-JCheckBox, JRadioButton, JTextField, JTextArea, JfileChooser
Utilizarea top-level container
Asa cum am mentionat mai devreme,Swing-ul asigura trei clase top-level containere
generale si folositoare: JFrame, JDialog, si JApplet. Cand folosesti aceste clase trebuie sa tii
cont de urmatoarele:
Pentru a aparea pe ecran fiecare componenta Swing trebuie sa faca parte din recipientul de
siguranta ierarhic(containment hierarchy). Acesta este un arbore de componente care are top
level container ca si radacina.O sa va aratam in cateva momente.
Fiecare dintre componentele GUI pot fi continute numai o data.Daca o componenta este
deja in container si tu incerci sa o adaugi intr-un alt container,componenta va fi scoasa din
primul container si adaugata la cel de-al doi-lea.
Fiecare top-level container are propriul content pane care,in mod general vorbind,
contine(direct sau indirect) componentele vizibile din acest top-level container al GUI.
Poti sa adaugi optim o bara de meniuri(menu bar) la un top-level container . Bara de
meniuri este pozitionata in interiorul top-level container-ului , dar deasupra content paneului. Cateva look and feel, cum ar fi Mac OS look and feel ofera varianta optima de plasare a
barei de meniu intr-un loc mult mai apropiat de look and feel, cum ar fi in susul paginii.
JFC
Tehnologia Swing face parte dintr-un proiect mai amplu numit JFC (Java Foundation
Classes) care pune la dispozitie o serie ntreaga de facilitati pentru scrierea de aplicatii
cu o interfata grafica mult mbogatita functional si estetic fata de vechiul model
AWT. In JFC sunt incluse urmatoarele:
Componente Swing
Sunt componente ce nlocuiesc si n acelasi timp extind vechiul set oferit de modelul
AWT.
Look-and-Feel
Permite schimbarea nfatisarii si a modului de interactiune cu aplicatia n functie de
preferintele fiecaruia. Acelasi program poate utiliza diverse moduri Look-and-Feel, cum ar
fi cele standard Windows, Mac, Java, Motif sau altele oferite de diversi dezvoltatori, acestea
putand fi interschimbate de catre utilizator chiar la momentul executiei .
Accessibility API
Permite dezvoltarea de aplicatii care sa comunice cu dispozitive utilizate de catre persoane
cu diverse tipuri de handicap, cum ar fi cititoare de ecran, dispozitive de recunoastere a
vocii, ecrane Braille, etc.
Java 2D API

Folosind Java 2D pot fi create aplicatii care utilizeaza grafica la un nivel avansat. Clasele
puse la dispozitie permit crearea de desene complexe, efectuarea de operatii geometrice
(rotiri, scalari, translatii, etc.), prelucrarea de imagini, tiparire, etc.
Drag-and-Drop
Ofera posibilitatea de a efectua operatii drag-and-drop ntre aplicatii Java si aplicatii
native.
Internationalizare
Internationalizarea si localizarea aplicatiilor sunt doua facilitati extrem de importante
care permit dezvoltarea de aplicatii care sa poata fi configurate pentru exploatarea lor n
diverse zone ale globului, utilizand limba si particularitatile legate de formatarea datei,
numerelor sau a monedei din zona respectiva. In aceste capitol vom face o prezentare
scurta a componentelor Swing, deoarece prezentarea detaliata a tuturor facilitatilor oferite
de JFC ar oferi suficient material pentru un volum de sine statator.
11.1.2 Swing API
Unul din principalele deziderate ale tehnologiei Swing a fost sa puna la dispozitie
un set de componente GUI extensibile care sa permita dezvoltarea rapida de aplicatii Java
cu interfata grafica competitiva din punct de vedere comercial. Pentru a realiza acest
lucru, API-ul oferit de Swing este deosebit de complex avand 17 pachete n care se gasesc
sute de clase si interfete.
Evident, nu toate aceste pachete sunt necesare la dezvolatarea unei aplicatii, cel mai
important si care contine componentele de baza fiind javax.swing. Componentele folosite
pentru crearea interfetelor grafice Swing pot fi grupate astfel:
Componente atomice
JLabel, JButton, JCheckBox, JRadioButton, JToggleButton, JScrollBar,
JSlider, JProgressBar, JSeparator
Componente complexe
JTable, JTree, JComboBox, JSpinner, JList, JFileChooser, JColorChooser, JOptionPane
Componente pentru editare de text
JTextField, JFormattedTextField, JPasswordField, JTextArea, JEditorPane, JTextPane
Meniuri
JMenuBar, JMenu, JPopupMenu, JMenuItem, JCheckboxMenuItem,
JRadioButtonMenuItem
Containere intermediare
JPanel, JScrollPane, JSplitPane, JTabbedPane, JDesktopPane, JToolBar
Containere de nivel nalt
JFrame, JDialog, JWindow, JInternalFrame, JApplet
Managerul de amplasare(layout manager)
Acest manager este raspunzator pentru pozitionarea componentelor pe platforma sau pe
ecran.
Amplasarea cadru(BorderLayout) :fiecare content pane este initializat sa foloseasca un
BorderLayout. Acesta pozitioneaza componentele in 5 pozitii: sus,jos,stanga,dreapta,central.
Spatiu ce a mai ramas este spatiul din centru.
Amplasare cutie (BoxLayout):acest tip de amplasare positioneaza componentele pe un rand
sau pe o coloana. Acesta respecta dorinta componentelor marimea maxima si de altfet te lasa
si pe tine sa modifici aliniamentul.

Amplasare prin curgere(FlowLayout):FlowLayout este amplasarea predefinita a fiecarui


JPanel.Acesta aranjaza simplu componentele intr-un singur rand,incepand un nou rand daca
container-ul nu este suficient.
Amplasarea prin caroiaj(GridLayout):GridLayout face un simplu manunchi de componente
egale ca si marime si le afisaza dupa numarul dorit de randuri si coloane.
Amplasare prin grupare(GroupLayout):GroupLayout este un manager de amplasare care a
fost dezvoltat pentru a fi folosit de contructorii de tools-uri GUI,dar poate fi folosit manual.
Amplasarea arcuita (SpringLayout):SpringLayout este un manager de amplasare
flexibil,dezvoltat pentru a fi folosit de constructorii de GUI.Te lasa sa specifici relatia dintre
marginile componentelor.
Flow Layout
Un FlowLayout amplaseaza componentele container-ului pe randuri.
Constructorii:
public FlowLayout()
public FlowLayout(int alignment)
public FlowLayout(int alignment, int hgap, int vgap)
Aliniamentul : central(CENTER), LEADING, stanga(LEFT),dreapta (RIGHT),
sfarsit(TRAILING)
Border Layout
BorderLayout este managerul de aliniament predefinit al JFrame, JWindow, JDialog,
JInternalFrame si JApplet. El asigura un mod mai flexibil de a pozitiona componentele de-a
lungul marginilor ferestrei.
Cand adaugam o componenta la BorderLayout constrangerile ce sunt folosite sunt
constante ale clasei BorderLayout:
- Aliniamentul:
Central(CENTER),Est(EAST),vest(WEST),nord(NOR
TH),sud(SOUTH),etc
Grid Layout
Grid layout este ideal pentru a aranja obiecte in randuri si coloane,unde fiecare celula are
aceeasi marime.
Constructori:
public GridLayout()
public GridLayout(int rows, int columns)
public GridLayout(int rows, int columns, int hgap, int vgap)
Box Layout
Box Layout iti permite sa pozitionezi componentele , fie pe un rand orizontal, fie pe
coloana verticala cu container-ul propriu.
Constructori:
public BoxLayout(Container target, int axis)
Directiile valide sunt: BoxLayout.X_AXIS pentru o aranjare de la stanga la dreapta
si BoxLayout.Y_AXIS pentru aranjarea de sus in jos.
Spring Layout
Cea mai noua aparitie in ceea ce priveste managerul de aranjare este managerul Spring
Layout,adaugat o data cu aparitia J2SE 1.4 .
Acesta iti permite sa atasezi springs la componente si deci acestea sunt aranjate in pagina
fata de celalalte.

S-ar putea să vă placă și