Click here to load reader

Objektno orijentisano programiranje vežbe – čas 11

  • View
    81

  • Download
    2

Embed Size (px)

DESCRIPTION

Objektno orijentisano programiranje vežbe – čas 11. Biljana Stojanović. GUI u Javi. GUI (Graphical User Interface) je interfejs između korisnika i aplikacije koji je baziran na grafičkim komponentama. - PowerPoint PPT Presentation

Text of Objektno orijentisano programiranje vežbe – čas 11

  • Objektno orijentisano programiranjevebe as 11Biljana Stojanovi

    Biljana Stojanovi

  • GUI u JaviGUI (Graphical User Interface) je interfejs izmeu korisnika i aplikacije koji je baziran na grafikim komponentama.Osnovni elementi potrebni za kreiranje GUI-a nalaze se u paketima java.awt i javax.swing.awt je akronim od Abstract Window Toolkit. Ovaj paket je bio osnovni paket za kreiranje GUI-a do pojave javax.swing paketa sa Java 2 verzijom.Veina klasa iz paketa java.awt biva zamenjena klasama iz paketa javax.swing.20.05.2009.*Biljana Stojanovi

    Biljana Stojanovi

  • GUI u JaviNajvei broj klasa iz paketa javax.swing definie GUI elemente, poznate kao Swing komponente, koje daju unapreene alternative komponentama definisanim u java.awt. Ipak, klase iz paketa java.awt ne mogu se ignorisati, jer javax.swing klase su iz njih izvedene i od njih zavise.20.05.2009.*Biljana Stojanovi

    Biljana Stojanovi

  • GUI u JaviSwing klase su samo deo skupa GUI programskih mogunosti koje nazivamo JFC (Java Foundation Classes). Tu spadaju, pored Swing-a, i klase za 2D crtanje iz paketa java.awt.geom, klase koje podravaju drag-and-drop, a koje se nalaze u paketu java.awt.dnd, API (Application Program Interface) iz paketa javax.accessibility koji omoguava implementiranje aplikacija.Swing komponente su fleksibilnije jer su u celosti implementirane u Javi, dok java.awt komponente zavise od izvornog koda. Iz tog razloga, Swing komponente nisu ograniene karakteristikama platforme na kojoj se izvravaju. Pored ovoga, one omoguavaju svojstvo poznato kao pluggable look-and-feel koje omoguava promenu izgleda komponente.20.05.2009.*Biljana Stojanovi

    Biljana Stojanovi

  • Kreiranje prozoraOsnovni prozor u Javi predstavljen je objektom klase Window iz paketa java.awt.Meutim, klasa JFrame iz paketa javax.swing je mnogo korisnija za kreiranje prozora, jer pored linije za naslov i okvira koji nisu podrani u Window klasi, daje jo mnogo mogunosti.20.05.2009.*Biljana Stojanovi

    Biljana Stojanovi

  • Kreiranje prozora20.05.2009.*Biljana Stojanovi

    Biljana Stojanovi

  • Kreiranje prozoraComponent definie komponentu entitet koji se moe prikazati, kao npr. dugme. Definie osnovna svojstva i metode za sve komponente.Container definie komponentu koja moe da sadri druge komponente (npr. linija menija treba da sadri menije).Window definie osnovni prozor bez linije naslova i okvira, dodaje metode klasi Container, npr. da se obrade dogaaji koji nastaju iz korisnike interakcije.Frame definie prozor sa linijom za naslov i okvirom.JFrame (swing) Frame sa mnogo dodatnih mogunosti.20.05.2009.*Biljana Stojanovi

    Biljana Stojanovi

  • Komponente i kontejneriKomponenta je grafiki entitet odgovarajueg tipa koji moe biti prikazan na ekranu.Komponenta je objekat bilo koje klase koja je potklasa klase Component.JFrame koristi se kao osnovni prozor aplikacije. Mogu mu se dodavati komponente. Najee emo kreirati potklasu ove klase koja predstvlja prozor specifian za nau aplikaciju.JWindow prozor bez linije naslova i ikona za upravljanje prozorima. Obino se koristi kao pomoni prozor aplikacije.JDialog za kreiranje dijalog-prozora koji se koriste za unoenje podataka u program na razliite naine.20.05.2009.*Biljana Stojanovi

    Biljana Stojanovi

  • Komponente i kontejneri - nastavakJApplet osnovna klasa za Java 2 applet aplet je program napravljen da radi ugraen u web-stranu.JComponent potklase klase JComponent definiu niz standardnih komponenti kao to su meniji, dugmeta, polja za ekiranje, ...Objekti svih klasa izvedenih iz klase Container mogu da sadre druge objekte iz bilo koje klase koja je izvedena iz klase Component. Kako Container nasleuje Component, sledi da kontejneri mogu da sadre druge kontejnere.Izuzetak je klasa Window i njene potklase, jer one ne mogu biti sadrane u drugom kontejneru.20.05.2009.*Biljana Stojanovi

    Biljana Stojanovi

  • Komponente i kontejneri - nastavak20.05.2009.*Biljana Stojanovi

    Biljana Stojanovi

  • Komponente i kontejneri - nastavakJComponent je bazna klasa za sve Swing komponente, a poto je izvedena iz klase Container, sve Swing komponente su takoe kontejneri.Osnovna razlika izmeu JFrame objekta i Window objekta je u tome to JFrame objekat predstavlja glavni prozor za aplikaciju, to nije sluaj sa Window objektom. Uvek nam treba JFrame objekat pre nego to kreiramo Window objekat.JDialog objekat moe se kreirati samo u kontekstu JFrame objekta on se mora navesti u okviru konstruktora za JDialog i predstavlja njegovog roditelja.20.05.2009.*Biljana Stojanovi

    Biljana Stojanovi

  • Prozorski okviri (Window panes)Kada dodajemo GUI komponente ili crtamo u prozor koji prikazuje JFrame objekat, dodajemo komponente ili crtamo u prozorski okvir (pane).Moe se rei da su prozorski okviri kontejnerski objekti koji predstavljaju povr prozora. Postoji vie vrsta prozorskih okvira.Najee je u upotrebi prozorski okvir content pane, ali postoje i drugi.20.05.2009.*Biljana Stojanovi

    Biljana Stojanovi

  • Prozorski okviri (Window panes) - nastavak20.05.2009.*Biljana Stojanovi

    Biljana Stojanovi

  • Prozorski okviri (Window panes) - nastavakPovr ispod linije naslova odgovara JRootPane objektu. Ona sadri novi okvir (panel) layeredPane tipa JLayeredPane koji odgovara celoj povri zauzetoj JRootPane objektom i obrauje liniju menija ako postoji.Povr u layerPane panelu ispod linije menija odgovara objektu contentPane koji je tipa JInternalPane i tu obino dodajemo nae GUI komponente.20.05.2009.*Biljana Stojanovi

    Biljana Stojanovi

  • Prozorski okviri (Window panes) - nastavakJLayeredPane ima mogunost da grupe komponenti smeta u razliite layer-e, tako da se moe ureivati kako se komponente prikazuju jedna u odnosu na drugu.Postoji i glassPane objekat koji odgovara itavoj JRootPane povri i njegov sadraj se prikazuje na vrhu svih okvira (npr. za drop-down menije) i koristi se za animacije koje se esto osveavaju (update).20.05.2009.*Biljana Stojanovi

    Biljana Stojanovi

  • Prozorski okviri (Window panes) - nastavakJFrame klasa sadri sledee bitnije metode:getRootPane() vraa JRootPanegetLayeredPane() vraa JLayeredPanegetContentPane() vraa contentPane kao tip Container. Ovaj metod se najee koristi, poto se komponente obino dodaju u contentPanegetGlassPane() vraa glassPane kao tip ComponentSve klase koje predstavljaju pomenute prozorske okvire su same po sebi Swing komponente, definisane u paketu javax.swing.20.05.2009.*Biljana Stojanovi

    Biljana Stojanovi

  • Osnovno o komponentamaKada je komponenta sadrana unutar neke druge komponente, spoljanji objekat nazivamo roditeljem. Referenca na roditeljski objekat dobija se pozivom metoda getParent(). Metod se nasleuje iz klase Component i vraa objekat tipa Container. Ako roditelj ne postoji, vraa se null.20.05.2009.*Biljana Stojanovi

    Biljana Stojanovi

  • Osnovno o komponentama - nastavakKlasa Component definie atribute koji uvaju sledee informacije o objektu:position (x,y) koordinate u odnosu na koordinatni sistem kontejneraname ime tipa Stringsize veliina objekta data irinom i visinomforeground color i background color boje objekta, koriste se prilikom prikazivanja objektafont - font koji koristi objekat kada se prikazujecursor definie izgled kursora kada je pozicioniran na objektu20.05.2009.*Biljana Stojanovi

    Biljana Stojanovi

  • Osnovno o komponentama - nastavakenabled da li je objekat dostupan kada je objekat enabled, ima normalan prikaz i njegovo enabled stanje je true. Kada je disabled, onda je sivvisible da li je objekat vidljiv ili ne ako nije vidljiv, ne iscrtava se na ekranuvalid da li je objekat validan ili ne ako nije, izgled entiteta koji ine objekat jo nije utrven. Ovo je sluaj pre nego to objekat postane vidljiv. Karakteristike Component objekta moemo menjati i itati iskljuivo pomou odgovarajueg metoda, jer su svi pomenuti atributi private.myWindow.setName(Ime);String ime = myWindow.getName();

    20.05.2009.*Biljana Stojanovi

    Biljana Stojanovi

  • Osnovno o komponentama - nastavakisVisible(), isEnabled(), isValid() metode vraaju true ako je objekat vidljiv, dostupan (enabled) i validan respektivno.setVisible(true), setEnabled(true).Odnosi se na dogaaje:Poziv setEnabled(false) nee inhibirati dogaaje kao to je klik miem iz komponente!!!Da bi se spreilo da dogaaji iz disabled komponente imaju efekat, u kodu koji obrauje dogaaj treba pozvati metod isEnabled() za komponentu i ako se vrati false ne radi se nita.

    20.05.2009.*Biljana Stojanovi

    Biljana Stojanovi

  • Veliina i pozicija komponentePozicija komponente je definisana x i y koordinatama tipa int ili objektom tipa java.awt.Point (koji ima dve lanice x i y koordinatu).Veliina je difinisana ironom i visinom takoe tipa int ili objektom klase java.awt.Dimension.Veliina i pozicija komponente su esto zajedno odreeni objektom tipa java.awt.Rectangle (gornji levi ugao pravougaonika (x, y), irina i visina, svi tipa int).Komponenta ima predloenu (eljenu) veliinu, minimalnu i maksimalnu veliinu. Ako je zadata veliina manja od minimalne, komponenta nee biti prikazana.20.05.2009.*Biljana Stojanovi

    Biljana Stojanovi

  • MetodeRectangle getBounds() vraa poziciju i veliinu kao objekat tipa RectangleRectangle getBounds(Rectangle rect) smeta poziciju i veliinu u objekat rect i vraa referencu na njega. Moe se iskoristiti ve postojei objekat rect za smetanje podataka, a ako je rect null, kreirae se novi Rectangle objekat od strane metodaDimension getSize() vraa tekuu veliinu komponente kao Dimension objekatDimension getSize(Dimension dim) smeta tekuu velinu u objekat dim i vraa referencu na njegaPoint getLocation() vraa poziciju komponente kao Point objekat20.05.2009.*Biljana Stojanovi

    Biljana Stoj