1 / 59

Objektno orijentisano programiranje vežbe – čas 11

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.

ardith
Télécharger la présentation

Objektno orijentisano programiranje vežbe – čas 11

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Objektno orijentisano programiranjevežbe – čas 11 Biljana Stojanović

  2. GUI u Javi • GUI (Graphical User Interface) je interfejs između korisnika i aplikacije koji je baziran na grafičkim 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. • Većina klasa iz paketa java.awt biva zamenjena klasama iz paketa javax.swing. Biljana Stojanović

  3. GUI u Javi • Najveći broj klasa iz paketa javax.swing definiše GUI elemente, poznate kao Swing komponente, koje daju unapređene 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. Biljana Stojanović

  4. GUI u Javi • Swing klase su samo deo skupa GUI programskih mogućnosti koje nazivamo JFC (Java Foundation Classes). Tu spadaju, pored Swing-a, i klase za 2D crtanje iz paketa java.awt.geom, klase koje podržavaju drag-and-drop, a koje se nalaze u paketu java.awt.dnd, API (Application Program Interface) iz paketa javax.accessibility koji omogućava 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 ograničene karakteristikama platforme na kojoj se izvršavaju. Pored ovoga, one omogućavaju svojstvo poznato kao pluggable look-and-feel koje omogućava promenu izgleda komponente. Biljana Stojanović

  5. Kreiranje prozora • Osnovni prozor u Javi predstavljen je objektom klase Windowiz paketa java.awt. • Međutim, klasa JFrame iz paketa javax.swing je mnogo korisnija za kreiranje prozora, jer pored linije za naslov i okvira koji nisu podržani u Window klasi, daje još mnogo mogućnosti. Biljana Stojanović

  6. Kreiranje prozora Biljana Stojanović

  7. Kreiranje prozora • Component – definiše komponentu – entitet koji se može prikazati, kao npr. dugme. Definiše osnovna svojstva i metode za sve komponente. • Container – definiše komponentu koja može da sadrži druge komponente (npr. linija menija treba da sadrži menije). • Window – definiše osnovni prozor bez linije naslova i okvira, dodaje metode klasi Container, npr. da se obrade događaji koji nastaju iz korisničke interakcije. • Frame – definiše prozor sa linijom za naslov i okvirom. • JFrame (swing) – Frame sa mnogo dodatnih mogućnosti. Biljana Stojanović

  8. Komponente i kontejneri • Komponenta je grafički entitet odgovarajućeg tipa koji može 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. Najčešće ćemo kreirati potklasu ove klase koja predstvlja prozor specifičan za našu aplikaciju. • JWindow – prozor bez linije naslova i ikona za upravljanje prozorima. Obično se koristi kao pomoćni prozor aplikacije. • JDialog – za kreiranje dijalog-prozora koji se koriste za unošenje podataka u program na različite načine. Biljana Stojanović

  9. Komponente i kontejneri - nastavak • JApplet – osnovna klasa za Java 2 applet – aplet je program napravljen da radi ugrađen u web-stranu. • JComponent – potklase klase JComponent definišu niz standardnih komponenti kao što su meniji, dugmeta, polja za čekiranje, ... • Objekti svih klasa izvedenih iz klase Container mogu da sadrže druge objekte iz bilo koje klase koja je izvedena iz klase Component. Kako Container nasleđuje Component, sledi da kontejneri mogu da sadrže druge kontejnere. • Izuzetak je klasa Window i njene potklase, jer one ne mogu biti sadržane u drugom kontejneru. Biljana Stojanović

  10. Komponente i kontejneri - nastavak BiljanaStojanović

  11. Komponente i kontejneri - nastavak • JComponent je bazna klasa za sve Swing komponente, a pošto je izvedena iz klase Container, sve Swing komponente su takođe kontejneri. • Osnovna razlika između JFrame objekta i Window objekta je u tome što JFrame objekat predstavlja glavni prozor za aplikaciju, što nije slučaj sa Window objektom. Uvek nam treba JFrame objekat pre nego što kreiramo Window objekat. • JDialog objekat može se kreirati samo u kontekstu JFrame objekta – on se mora navesti u okviru konstruktora za JDialog i predstavlja njegovog roditelja. Biljana Stojanović

  12. Prozorski okviri (Window panes) • Kada dodajemo GUI komponente ili crtamo u prozor koji prikazuje JFrame objekat, dodajemo komponente ili crtamo u prozorski okvir (pane). • Može se reći da su prozorski okviri kontejnerski objekti koji predstavljaju površ prozora. Postoji više vrsta prozorskih okvira. • Najčešće je u upotrebi prozorski okvir content pane, ali postoje i drugi. Biljana Stojanović

  13. Prozorski okviri (Window panes) - nastavak Biljana Stojanović

  14. Prozorski okviri (Window panes) - nastavak • Površ ispod linije naslova odgovara JRootPane objektu. • Ona sadrži novi okvir (panel) layeredPane tipa JLayeredPane koji odgovara celoj površi zauzetoj JRootPane objektom i obrađuje liniju menija ako postoji. • Površ u layerPane panelu ispod linije menija odgovara objektu contentPane koji je tipa JInternalPane i tu obično dodajemo naše GUI komponente. Biljana Stojanović

  15. Prozorski okviri (Window panes) - nastavak • JLayeredPane ima mogućnost da grupe komponenti smešta u različite layer-e, tako da se može uređivati kako se komponente prikazuju jedna u odnosu na drugu. • Postoji i glassPane objekat koji odgovara čitavoj JRootPane površi i njegov sadržaj se prikazuje na vrhu svih okvira (npr. za drop-down menije) i koristi se za animacije koje se često osvežavaju (update). Biljana Stojanović

  16. Prozorski okviri (Window panes) - nastavak • JFrame klasa sadrži sledeće bitnije metode: • getRootPane() – vraća JRootPane • getLayeredPane() – vraća JLayeredPane • getContentPane() – vraća contentPane kao tip Container. Ovaj metod se najčešće koristi, pošto se komponente obično dodaju u contentPane • getGlassPane() – vraća glassPane kao tip Component • Sve klase koje predstavljaju pomenute prozorske okvire su same po sebi Swing komponente, definisane u paketu javax.swing. Biljana Stojanović

  17. Osnovno o komponentama • Kada je komponenta sadržana unutar neke druge komponente, spoljašnji objekat nazivamo roditeljem. • Referenca na roditeljski objekat dobija se pozivom metoda getParent(). Metod se nasleđuje iz klase Component i vraća objekat tipa Container. Ako roditelj ne postoji, vraća se null. Biljana Stojanović

  18. Osnovno o komponentama - nastavak • Klasa Component definiše atribute koji čuvaju sledeće informacije o objektu: • position – (x,y) koordinate u odnosu na koordinatni sistem kontejnera • name – ime tipa String • size – veličina objekta data širinom i visinom • foreground color i background color – boje objekta, koriste se prilikom prikazivanja objekta • font - font koji koristi objekat kada se prikazuje • cursor – definiše izgled kursora kada je pozicioniran na objektu Biljana Stojanović

  19. Osnovno o komponentama - nastavak • enabled – da li je objekat dostupan – kada je objekat enabled, ima normalan prikaz i njegovo enabled stanje je true. Kada je disabled, onda je siv • visible – da li je objekat vidljiv ili ne – ako nije vidljiv, ne iscrtava se na ekranu • valid – da li je objekat validan ili ne – ako nije, izgled entiteta koji čine objekat još nije utrvđen. Ovo je slučaj pre nego što objekat postane vidljiv. • Karakteristike Component objekta možemo menjati i čitati isključivo pomoću odgovarajućeg metoda, jer su svi pomenuti atributi private. myWindow.setName(“Ime”); String ime = myWindow.getName(); Biljana Stojanović

  20. Osnovno o komponentama - nastavak • isVisible(), isEnabled(), isValid() metode vraćaju true ako je objekat vidljiv, dostupan (enabled) i validan respektivno. • setVisible(true), setEnabled(true). • Odnosi se na događaje: • Poziv setEnabled(false) neće inhibirati događaje kao što je klik mišem iz komponente!!! • Da bi se sprečilo da događaji iz disabled komponente imaju efekat, u kodu koji obrađuje događaj treba pozvati metod isEnabled() za komponentu i ako se vrati false ne radi se ništa. Biljana Stojanović

  21. Veličina i pozicija komponente • Pozicija komponente je definisana x i y koordinatama tipa int ili objektom tipa java.awt.Point (koji ima dve članice – x i y koordinatu). • Veličina je difinisana šironom i visinom takođe tipa int ili objektom klase java.awt.Dimension. • Veličina i pozicija komponente su često zajedno određeni objektom tipa java.awt.Rectangle (gornji levi ugao pravougaonika (x, y), širina i visina, svi tipa int). • Komponenta ima predloženu (željenu) veličinu, minimalnu i maksimalnu veličinu. Ako je zadata veličina manja od minimalne, komponenta neće biti prikazana. Biljana Stojanović

  22. Metode • Rectangle getBounds() – vraća poziciju i veličinu kao objekat tipa Rectangle • Rectangle getBounds(Rectangle rect) – smešta poziciju i veličinu u objekat rect i vraća referencu na njega. Može se iskoristiti već postojeći objekat rect za smeštanje podataka, a ako je rect null, kreiraće se novi Rectangle objekat od strane metoda • Dimension getSize() – vraća tekuću veličinu komponente kao Dimension objekat • Dimension getSize(Dimension dim) – smešta tekuću veličnu u objekat dim i vraća referencu na njega • Point getLocation() – vraća poziciju komponente kao Point objekat Biljana Stojanović

  23. Metode - nastavak • Point getLocation(Point p) – smešta koordinate tekuće pozicije komponente u objekat p i vraća referencu na njega • void setBounds(int x, int y, int width, int height) – postavlja poziciju komponente na (x,y), širinu i visinu na width, odnosno height • void setBounds(Rectangle rect) • void setSize(Dimension d) • void setLocation(int x, int y) • void setLocation(Point p) Biljana Stojanović

  24. Metode - nastavak • void setMinimumSize(Dimension d) • void setMaximumSeze(Dimension d) • void setPrefferedSize(Dimension d) • Ako je objekat d u prethodna tri metoda null, postavlja se odgovarajuća podrazumevana veličina • Još jedan bitan metod je getToolkit(), koji vraća objekat tipa Toolkit koji sadrži informacije o okruženju u kome radi aplikacija, uključujući i veličinu ekrana u pikselima. • Možemo koristiti metod getToolkit() kao pomoć pri postavljanju veličine i pozicije prozora na ekranu: Dimension getScreenSize() – primenjujemo na objekat tipa Toolkit • Ne možemo kreirati objekat Toolkit direktno, jer je Toolkit apstraktna klasa. Postoji samo jedan Toolkit objekat u aplikaciji – onaj koji dobijamo kao referencu pozivom getToolkit() za komponentu! Biljana Stojanović

  25. Primer TestWindow.java • Objekat tipa JFrame kreira se kao inicijalna vrednost static članice klase, pa će automatski biti kreiran kada se klasa TestWindow učita. • Argument konstruktora klase JFrame je string koji predstavlja naslov koji će biti prikazan u prozoru aplikacije. Inicijalno, prozor nije vidljiv. • Metod setBounds() definiše veličinu i poziciju prozora, prva dva argumenta daju nam x i y koordinatu gornjeg levog ugla prozora aplikacije u odnosu na gornji levi ugao ekrana za prikazivanje, a druga dva širinu i visinu prozora u pikselima. • Koordinatni sistem ekrana ima koordinatni početak u gornjem levom uglu ekrana; pozitivni deo x-ose ide sa leva na desno, a pozitivni deo y-ose ide odozgo naniže. Biljana Stojanović

  26. Primer TestWindow.java - nastavak Biljana Stojanović

  27. Primer TestWindow.java - nastavak • Veličina i pozicija prozora aplikacije zavise od veličine ekrana i rezolucije. Što je veća rezolucija, prozor je manji i bliži je gornjem levom uglu ekrana, jer su pikseli na manjem rastojanju. • setDefaultCloseOperation() – ovaj metod za JFrame objekat određuje šta se dešava ako zatvorimo prozor bilo klikom na X ikonu ili izborom opcije Close iz padajućeg menija koji se dobija desnim klikom na Java ikonu u naslovnoj liniji. Biljana Stojanović

  28. Primer TestWindow.java - nastavak • Postoje 4 mogućnosti: • EXIT_ON_CLOSE – zatvara se prozor, oslobađaju se resursi prozora i njegovih komponenti i završava se aplikacija pozivom metoda System.exit(). Koristi se samo za aplikacije. • DISPOSE_ON_CLOSE – prozor i komponente se uništavaju, ali se aplikacija ne završava (ili se završava sa izvesnim zakašnjenjem). Da li je aplikacija završena vidi se u konzolnom prozoru – u naslovu ispred imena fajla stoji <terminated>. • DO_NOTHING_ON_CLOSE – operacija zatvaranja nema nikakvog efekta • HIDE_ON_CLOSE – prozor se skriva pozivom metoda setVisible(false), aplikacija se ne završava. Ovo je podrazumevana akcija ako se ne pozove metod setDefaultCloseOperation() sa drugačijim argumentom. Kada je prozor sakriven, može ponovo postati vidljiv pozivom setVisible(true) Biljana Stojanović

  29. Primer TestWindow.java - nastavak • Ovaj prozor nije mnogo koristan – možemo jedino da ga pomeramo, menjamo veličinu, minimiziramo/maksimiziramo i zatvorimo. • Metode setVisible() i setBounds() su članice klase JFrame nasleđene iz klase Component, pa su dostupne za svaku komponentu, dok je metod setDefaultCloseOperation() definisan u klasi JFrame, tako da je dostupan samo za JFrame objekat. Biljana Stojanović

  30. java.awt.Point • Metode: • move(int, int) – menjamo poziciju tačke • translate(int, int) – transliramo za pomeraj po x i y osi • equals(Point) – ispituje da li dve tačke imaju jednake koordinate • setLocation(int, int) = move(int, int) • getLocation() – vraća kopiju tekućeg Point objekta Biljana Stojanović

  31. java.awt.Rectangle • 4 public članice (x, y, width, height – sve tipa int) • Konstruktori: • Rectangle() – u tački (0,0) sa dimenzijama 0, 0 • Rectangle(int x, int y, int width, int height) • Rectangle(int width, int height) – u tački (0,0) sa datom širinom i visinom • Rectangle(Point p, Dimension d) • Rectangle(Point p) – dimenzije 0, 0 • Rectangle(Dimension d) – u tački (0,0) sa datim dimezijama predstavljenim objektom Dimesion • Rectangle(Rectangle r) – sa istom pozicijom i dimenzijama kao i dati pravougaonik r Biljana Stojanović

  32. java.awt.Rectangle • getLocation() – vraća Point objekat • setLocation(int, int) • setLocation(Point p) • translate(int, int) – transalcija na isti način kaokod tačke • getSize() – vraća Dimension objekat • setSize(int, int) • setSeze(Dimension d) Biljana Stojanović

  33. java.awt.Rectangle • Rectangle intersection(Rectangle r) – vraća pravougaonik koji je presek dva pravougaonika. Ako se pravougaonici ne seku, vraća se pravougaonik na poziciji (0,0) sa širinom 0 i visinom 0. • Rectangle union(Rectangle r) – vraća najmanji pravougaonik koji obuhvata tekući pravougaonik i pravougaonik r. • void add(Rectangle r) – proširuje tekući pravougaonik kako bi mogao da obuhvati dati pravougaonik r • void add(Point p) - proširuje tekući pravougaonik kako bi mogao da obuhvati datu tačku p. Rezultat će biti najmanji pravougaonik koji obuhvata originalni pravougaonik i datu tačku • void add(int x, int y) – druga varijanta prethodnog metoda Biljana Stojanović

  34. java.awt.Rectangle • void grow(int h, int v) – povećava tekući pravougaonik i horizontalno (za h i sa leve i sa desne strane) i vertikalno (za v i sa gornje i sa donje strane). Nova pozicija pravougaonika je (x-h, y-v), širina width+2h, visina height+2v. • boolean isEmpty() – vraća true ako su širina i visina 0, inače false • boolean equals(Object r) – dva pravougaonika su jednaka ako imaju istu poziciju i iste dimenzije. • boolean intersects(Rectangle r) – da li pravougaonik ima preseka sa datim pravougaonikom • boolean contains(Point p) – da li pravougaonik sadrži datu tačku • boolean contains(int x, int y) – druga varijanta prethodnog metoda. Biljana Stojanović

  35. Vizuelne karakteristike komponenti • Crtanje na Component objektu vrši se implementacijom paint() metoda. • Metod paint() se automatski poziva kada treba da se iscrta komponenta. • Potreba za iscrtavanjem komponente je vrlo česta – program može da zahteva da se ponovo iscrta površ koja sadrži komponentu ili korisnik može da promeni veličinu prozora koji sadrži komponentu. • Napomenimo da će komponenta sama po sebi biti iscrtana. Neophodno je da se predefiniše metod paint() za bilo šta što je potrebno dodatno iscrtati. Biljana Stojanović

  36. Vizuelne karakteristike komponenti • void setBackground(Color boja) – postavlja boju pozadine za osnovnu komponentu. • Color getBackground() • void setForeground(Color boja) – postavlja boju bilo koje komponente koja se pojavljuje u okviru osnovne komponente, npr. labela na dugmetu. • Color getForeground() • void setCursor(Cursor a) – postavlja izgled kursora unutar površi koju zauzima Component objekat • void setFont(Font a) – postavlja font Component objekta • Font getFont() Biljana Stojanović

  37. java.awt.Color • Boja se definiše kao kombinacija tri osnovne boje: crvene, zelene i plave. • To su tzv. RGB vrednosti za boje. • Svaka osnovna boja može imati vrednost od 0 do 255. • Color boja = new Color(0,0,0); - crna • Color boja = new Color(255,255,255); - bela • Postoje i public final static promenljive sa odgovarajućim RGB vrednostima: • BLACK (0,0,0) • RED (255,0,0) • GRAY (128,128,128) ... • Primer: prozor.setBackground(Color.BLACK); Biljana Stojanović

  38. java.awt.Color • getRed(), getGreen(), getBlue() – vraćaju komponente boje • getRGB() – vraća int vrednost koja predstavlja kombinaciju boja • equals() – za poređenje boja na jednakost komponenti Biljana Stojanović

  39. java.awt.Cursor • Klasa Cursor definiše static konstante koje određuju standardne tipove kursora i navodimo ih kao argumente konstruktora. • Cursor kursor = new Cursor(Cursor.TEXT_CURSOR); • Alterantivno, možemo dobiti kursor nekog od predefinisanih tipova koristeći statički metod: • Cursor kursor = Cursor.getPredifenedCursor(Cursor.TEXT_CURSOR); • Ovo je posebno korisno kad ne želimo da pamtimo Cursor objekat, već sam da ga prosledimo metodu, kao što je setCursor(). Biljana Stojanović

  40. java.awt.Font • Klasa Font je dosta komplikovana, navodimo samo najbitnija svojstva. • Klasa Font pravi razliku između karaktera i glifa, tj. grafičke reprezentacije karaktera. Različiti fontovi definišu različite glifove za jedan isti karakter. • Font mojFont = new Font(“Serif”, Font.ITALIC, 12); /* prvi argument je ime fonta, drugi je stil fonta, a treći veličina fonta u pikselima */ • Font mojFont = new Font(“Serif”, Font.ITALIC + Font.BOLD, 15); /* kombinacija stilova */ • getStyle() – vraća stil fonta • getSize() – vraća veličinu fonta • isPlain(), isBold(), isItalic() ... – testiranje pojedinačnih stilova Biljana Stojanović

  41. Swing komponente • Swing komponente imaju JComponent klasu kao osnovnu, a ona nasleđuje klasu Component (preko klase Container) dodajući sledeće mogućnosti: • Podrška pluggable look-and-feel za komponente – mogućnost promene izgleda komponenti koje se prikazuju • Podrška tooltip-ova – poruka koja opisuje svrhu komponente kada miš stoji nad njom • Lako se nasleđuju komponentne klase da bi se kreirale korisničke komponente • ... • Sve Swing komponente su definisane u paketu javax.swing i imaju imena koja počinju slovom J. Biljana Stojanović

  42. Dugmeta (JButton) Biljana Stojanović

  43. Dugmeta (JButton) - nastavak • JButton – regulatno dugme, npr. OK/Cancel • JToggleButton – definiše dugme sa dva stanja – pritisnuto ili ne • JCheckBox – dugme sa checkbox-om sa leve strane • JRadioButton – operišu u grupi, tako da je samo jedno dugme pritisnuto u datom trenutku. Ovo grupisanje se postiže dodavanjem JRadioButton objekta ButtonGroup objektu Biljana Stojanović

  44. Meniji (JMenuBar) Biljana Stojanović

  45. Meniji (JMenuBar) • JMenuBar klasa definiše liniju menija koja se najčešće nalazi na vrhu prozora aplikacije. • JMenu objekat predstavlja element na vrhu menija. Klikom na njega dobija se padajuća (drop down) lista elemenata menija. • Element menija definisani su klasom JMenuItem. • JPopupMenu klasa definiše kontekstni meni koji se najčešće koristi da se prikaže pri desnom kliku na komponentu. • JCheckBoxMenuItem je element menija sa checkbox-om. • JRadioButtonMenuItem definiše element menija koji je deo grupe gde samo jedan element može da bude obeležen u datom trenutku. • Grupa se kreira dodavanjem JRadioButtonMenuItem objekata ButtonGroup objektu. Biljana Stojanović

  46. Tekst-komponente Biljana Stojanović

  47. Tekst-komponente • JLabel – pasivna komponenta, ne može se editovati, služi za označavanje drugih komponenti • JTextField – kao JLabel samo se može editovati. Predstavlja jednu liniju teksta. • JFormattedTextField – to je JTextField komponenta koja ima kontrolu formata podataka koji se unose/prikazuju. • JTextArea – komponenta koja dozvoljava unos višelinijskog teksta; ne podržava direktno skrolovanje; može se postići stavljanjem komponente JTextArea u kontejner JScrollPane • JEditorPane i JTextPane podržavaju sofisticiranije editovanje (HTML, slike itd). Biljana Stojanović

  48. Kontejneri • Komponente unutar kontejnera se prikazuju unutar površi koju zauzima kontejner na ekranu. • Rečeno je već da su sve Swing komponente kontejneri. • Takođe, kontejner kontroliše kako su raspoređene njegove komponente pomoću objekta koji nazivamo Layout Manager. • Klasa Container je apstraktna klasa, pa se ne mogu kreirati objekti ove klase. • Napomena! Kontejner ne može da sadrži objekat klase Window, niti bilo koje druge klase izvedene iz nje. Objekat bilo koje klase koja je izedena iz klase Component može biti dodat kontejneru. Biljana Stojanović

  49. Kontejneri • Bitnije metode klase Container: • int getComponentCount() – vraća broj komponenti u kontejneru • Component getComponent(int index) – vraća komponentu koja se identifikuje datim indeksom. Radi se o indeksu niza, pa mora biti u opsegu [0, count-1]. • Component[] getComponents() – vraća niz komponenti iz kontejnera Biljana Stojanović

  50. Dodavanje komponente kontejneru • Component add(Component c) – dodaje komponentu c na kraj liste komponenti sačuvane u kontejneru; vraća se c • Component add(Component c, int index) – komponenta se smešta na datu poziciju. Ako je index -1 komponenta se dodaje na kraj liste; vraća se c • Kada se doda komponenta na datu poziciju, ostale komponente se pomeraju redom da bi nova mogla da se doda. U datom trenutku, komponenta može biti u samo jednom kontejneru. Dodavanje komponente koja je već deo drugog kontejnera ima za posledicu njeno uklanjanje iz tog kontejnera. Biljana Stojanović

More Related