Komponente (Component klasa)

 

Pod komponentama se podrazumevaju svi standardni elementi korisničkog interfejsa (prozori, meniji, dugmad, label, tekstualna polja i dr.). Svaka od ovih komponenti ima svoju odgovarajuću klasu, a sve one nasleđuju klasu Component. Na taj način, svim komponentama su dostupni neki zajednički metodi.

 

getName() – kao vrednost vraća string koji predstavlja ime komponente

getParent() – vraća ime kontejnera u kome se nalazi komponenta

setEnabled() – omogućava da odredite da li je komponenta dostupna korisniku ili ne, tj. da li će reagovati na promene od strane korisnika (dugme koje nije dostupno korisnik ne može da pritisne)

setVisible() – prikazuje ili sakriva komponentu

getForeground() – kao vrednost vraća boju teksta na kontroli

setForeground() – postavlja odgovarajuću boju teksta na kontroli

getBackground() – vraća boju pozadine kontrole

setBackground() – postavlja boju pozadine kontrole

getFont() – vraća font kontrole

setFont() – postavlja font kontrole

getLocation() – vraća poziciju komponente, tj njenog gornjeg levog ugla, unutar kontejnera

setLocation() – menja poziciju komponente

getSize() – vraća veličinu komponente

setSize() – menja veličinu komponente

 

Naravno, svaka podklasa klase Component ima i svoje specifične metode. U daljem tekstu će biti reči o pojedinačnim komponentama i njihovim osobinama.

 

 

Kontejneri

 

Kontejneri su komponente paketa java.awt, koji nasleđuju klasu Container. Ova klasa se koristi za bilo koju komponentu koja u sebi može da sadrži neke druge. Ona ima dve podklase, Panel i Window.

 

Panel klasa predstavlja najjednostavniji kontejner. On jednostavno obezbeđuje prostor unutar aplikacije za postavljanje drugih komponenti, pa i drugih panela. Raspoređivanje komponenti unutar panela se vrši pomoču layout menadžera, pri čemu je podrazumevani prostorni raspored FlowLayout.

 

Klasa Window obezbeđuje osnovne metode za rad sa svim vrstama prozora unutar aplikacije. U kodu nikad nećete koristiti objekte ove klase, već jednu od njenih podklasa: Frame i Dialog.

 

 

 

Frame klasa

 

Frame klasa predstavlja prozor sa naslovnom linijom, glavnim menijem, dugmadima Minimize, Maximize i Close, i drugim elementima specifičnim za platformu na kojoj se program izvršava.

Prozori unutar aplikacije se kreiraju korišćenjem jednog od konstruktora:

 

          Frame() – kreira prazan prozor, bez naslova

          Frame(String naslov) – kreira prazan prozor sa naslovom

 

Kada kreirate prozor, on je nevidljiv. Da bi zaista i bio prikazan, koristite metod  show() ili setVisible().

 

Obzirom da prozor nasleđuje klasu Container, on može da sadrži u sebi i druge komponente. Ove komponente se dodaju u prozor pomoću metoda add(). Dodate komponente se rapoređuju na osnovu nakog od layout menadžera. Podrazumevani menadžer za prozor je BorderLayout.

 

Da biste podesili veličinu prozora, možete da koristite metod setSize() ili resize(). Pri tom imajte na umu da će, ukoliko navedete tačnu dimenziju u pikselima, na različitim sistemima možda vaš prozor izgledati drugačije. Zbog toga možete da koristite i metod pack() koji menja veličinu prozora na najmanju moguću, kako bi sve njegove komponente mogle da budu prikazane. Pogledajte sledeći primer:

 

          prozor = new Frame("Mali prozor");

          prozor.setLayout(new FlowLayout()));

          prozor.add(new Button("OK"));

          prozor.add(new Button("Cancel"));

          prozor.pack();

          prozor.show();

 

Ovaj kod će prikazati prozor dovoljno velik (mali) da u njega stanu dva dugmeta.

 

 

Meniji (Menu, MenuBar i MenuItem klase)

 

Svaki novi prozor koji kreirate može da ima svoju liniju sa menijima. Ona može da sadrži nekoliko menija, od kojih svaki može da ima svoje podmenije. Svakom od ovih elemenata odgovara po jedna klasa u awt paketu: MenuBar, Menu i MenuItem.

 

Prvo kreirajte objekat klase MenuBar. Ovaj objekat dodajete prozoru pomoću metoda setMenuBar() klase Frame.

 

          MenuBar mb = new MenuBar();

          prozor.setMenuBar(mb);

 

Ovim ste kreirali samo liniju na kojoj će biti meniji. Pojedinačne menije kreirate pomoću klase Menu i dodajete ih na liniju menija pomoću metoda add().

         

          Menu mFajlovi = new Menu("Fajlovi");

          mb.add(mFajlovi);

          Menu mPomoc = new Menu("Pomoc");

          mb.add(mPomoc);

 

Sada, u svaki od kreiranih menija možete da dodate proizvoljno mnogo stavki. Te stavke mogu biti:

 

-         objekti klase MenuItem, za pojedinačne stavke menija

-         objekti klase CheckBoxMenuItem, za menije koji mogu biti selektovani

-         objekte klase Menu, za podmenije

-         separatore, tj. linije koje razdvajaju grupu stavki

 

Pogledajte sledeći kod.

 

          Menu podmeni = new Menu("Otvori");

          mFajlovi.add(podmeni);

          podmeni.add(new MenuItem("Otvori tekst"));

          podmeni.add(new MenuItem("Otvori sliku"));

          mFajlovi.add(new MenuItem("Zatvori"));

          mFajlovi.add(new MenuItem("-"));

          mFajlovi.add(new MenuItem("Izlaz"));

 

Nakon izvršavanja ovog koda, izgled menija Fajlovi biće kao na slici.

 

 

Bilo koji od kreiranih menija mogu biti onemogućeni za korišćenje pomoću metoda disable() i ponovo omogućeni pomoću enable(). Stavke koje su onemogućene ne mogu biti selektovane.

 

 

Dijalozi (Dialog i FileDialog klase)

 

Dijalozi su prozori sa posebnom namenom. Obično se koriste za upozorenja korisniku, ili za preuzimanje informacije od korisnika. Oni ne moraju da imaju naslovnu liniju i mogu biti modalni. Modalni dijalozi ne dozvoljavaju prelazak na bilo koji drugi prozor, dok god su aktivni. U awt paketu postoje dve klase dijaloga, Dialog i FileDialog.

 

Dialog klasa

Dijalog prozor nasleđuje klasu Window, pa je rad sa ovim objektima sličan kao i sa bilo kojim prozorom. U njih takođe možete da smestite bilo koju komponentu, kao i u bilo koji drugi kontejner. Klasa Dialog ima nekoliko konstruktora. Najčešće korišćen je sledeći

 

          Dialog (Frame prozor, String naslov, boolean modal)

 

Argument prozor se odnosi na prozor u okviru koga će se dijalog prozor prikazati. Argument modal određuje da li će dijalog biti modalni ili ne. Argument naslov, ukoliko se prosledi, određuje naslov dijaloga.

 

 

FileDialog klasa

Ova klasa obezbeđuje osnovni dijalog prozor za otvaranje ili snimanje fajlova, koji omogućava pristup sistemu fajlova.

Konstruktor ove klase je

 

          FileDialog(Frame prozor, String naslov, int mod)

 

Ovaj konstruktor kreira dijalog prozor unutar prozora navedenog u prvom argumentu, sa odgovarajućim naslovom. Argument mod određuje da li će biti otvoren dijalog za otvaranja ili za snimanje fajlova i može imati vrednosti FileDialog.LOAD ili FileDialog.SAVE. Ukoliko se izostavi, podrazumeva se da će biti otvoren dijalog za otvaranje fajla.

 

Ovde treba napomenuti da dugmad Open i Save za sada neće zaista otvoriti ili snimati fajl. To treba da obezbedite programski. Dijalog prozor samo omogućava korisniku da odabere fajl. Koristeći metode getDirectory() i getFile() možete da preuzmete informaciju o korisnikovom izboru, i da na osnovu njih preduzmete dalje akcije.

 

Dodaj komentar Sviđa mi se - (0) Ne sviđa mi se - (0)    

  • Prozori, meniji i dijalozi 1
  • Prozori, meniji i dijalozi 2
  • Prozori, meniji i dijalozi 3