Grafični vmesnik

Iz MaFiRaWiki

Ta članek ali del članka je v delu. Veseli bomo, če ga boste dopolnili in popravili.

Kaj pomeni to opozorilo?

Vsebina

Grafični vmesnik

Pri izdelavi grafičnih uporabniških vmesnikov se pokaže velika zmogljivost pripravljenih razredov v paketu java.api. Trije paketi, java.awt, java.awt.image in java.awt.peer, s skupnim imenom Abstrakt Window Toolkit (AWT), določajo razrede za izdelavo grafičnih uporabniških vmesnikov, ki jih lahko uporabimo v samostojnih programih in spletnih programčkih.

Programi z grafičnimi uporabniškimi vmesniki imajo vrsto elementov, gradnikov uporabniškegaa vmesnika (components). Nadzor velike množice dejavnih elementov, ki se lahko kadarkoli odzovejo na dejanje uporabnika, lahko izvajamo preko mehanizma dogodkov (events).

Gradniki

Gradniki grafičnega uporabniškega vmesnika (GUI components) so grafični elementi, kot so okno, ukazni gumb, stikalo, vnosno polje, menujska vrstica. Predstavljeni so z različnimi razredi v paketu java.awt, ki so podrazredi razreda Component, razen menujskih vrstic, ki izhajajo iz razreda MenuComponent.

Razred Frame

Razred Frame določa samostojna okna grafičnega uporabniškega vmesnika programa, ki lahko vključujejo tudi menujsko vrstico. Če program potrebuje podrejeno - pogovorno okno, ga izpeljemo iz razreda Dialog.

Izvajanje programa z grafičnim uporabniškim vmesnikom je odvisno od povzročenih dogodkov (events).


Menujske vrstice

Posebni gradniki so menujske vrstice. Vsebuje jih lahko vsako samostojno okno. Razredu Frame oz. njegovemu nasledniku jih priključimo z metodo setMenuBar(), ki kot argument zahteva predmet razreda MenuBar.

Pogovorna okna

Poleg samostojnih oken lahko v programih uporabljamo tudi pogovorna okna. Odvisna so od samostojnega okna, iz katerega jih prikazujemo. Določajo jih nasledniki razreda Dialog. Med pripravljenimi razredi v java.awt najdemo razred FileDialog, ki določa standardna dialoga za brskanje po krajevnem datotečnem sistemu.

Razvrščanje

Posebej pomembno je razvrščanje gradnikov v vsebniku (npr. samostojnem oknu). S posebnimi razredi za razvrščanje, razvrstitelji (layout managers) lahko ustvarimo uporabniške vmesnike, ki ohranjajo svojo obliko pri uporabi različnih velikosti gradnikov.

Podroben opis najdemo [tukaj].

Paket AWT se uporablja predvsem za razvoj sedaj že nekoliko ostarelih spletnih programčkov. Razvoju čisto pravih samostojnih programov z zmogljivim uporabniškim vmesnikom je namenjen paket Swing.

Swing

Paket knjižnic Swing je nastal kot zamenjava in razširitev obstoječih težkih gradnikov iz paketa AWT.

Prednosti Swing-a so:

  • lahka izvedba (lightweight) - gradniki niso vezani na enakovredne "sorodnike" v sistemu, kjer se program izvaja;
  • zamenljiv videz uporabniškega vmesnika (Pluggable Look & Feel) - gradnikom spreminjamo videz neodvisno od sistema, v katerem se izvaja program;
  • zmogljivejša zasnova gradnikov - omogoča prilagajanje gradnikov in ustvarjanje lastnih gradnikov;
  • dodaten nabor gradnika, kot so JTree, JTable, JFileChoosser, ki jih ni v paketu AWT;
  • podpora "povleci in spusti" (Drag & Drop);
  • programska podpora prilagoditvam za ljudi s posebnimi potrebami.

Med razredi, ki predstavljajo osnovno infrastrukturo grafičnega vmesnika, je treba posebej izpšostaviti razred JComponent. Iz njega so izpeljani skoraj vsi lahki gradniki, ki jih premore knjižnica Swing.

Programčki Swing

Ključna razlika med Swing-om in "sorodnikom" v AWT je, da je za vsebnike iz paketa Swing treba najprej pridobiti referenco na delovno površino, kamor nato polagamo vse ostale gradnike. Referenco dosežemo z metodo getContentPane().

Preprost programček

  1.  
  2. import java.awt.*;
  3. import javax.swing.*;
  4.  
  5. public class HelloSwingApplet extends JApplet {
  6. public void init() { //začetna točka izvajanja
  7. Container contentPane = this.getContentPane(); //referenca na delovno površino
  8. JLabel label = new JLabel("Hello, world!");
  9. contentPane.add(label); //izvod oznake postavimo na delovno površino
  10. }
  11. }

Samostojni program

Za razliko od programčkov, ki so del spletnega brskalnika, programe zaganjamo samostojno. Osnova je samostojno okno JFrame. Ta ima vlogo vsebika, v katerega vstavljamo ostale gradnike. Samostojno okno je samo eden izmed vsebnikov. Program lahko uporablja enega ali več samostojnih, notranjih in pogovornih oken.

Preprost program

  1.  
  2. import java.awt.*;
  3. import javax.swing.*;
  4. public class HelloWorldSwing {
  5. public static void main(String[] args) { //začetna točka izvajanja
  6. Container contentPane; //referenca na delovno površino
  7. JFrame frame = new JFrame("Swing okno!");
  8. JLabel label = new JLabel("Hello, world!");
  9. //izvod samostojnega okna
  10. contentPane = frame.getContentPane();
  11. contentPane.add(label);
  12. //postavi grafične elemente in jih razvrsti
  13. frame.pack();
  14. //okno postane vidno
  15. frame.setVisible(true);
  16. }
  17. }

Več o Swing-u najdemo [tukaj].

Vir

Uroš Mesojedec, Borut Fabjan: Java 2 - temelji programiranja

Osebna orodja