10. Swing układanie i malowanie

Wielkość: px
Rozpocząć pokaz od strony:

Download "10. Swing układanie i malowanie"

Transkrypt

1 10.1 Zarządzenie układem i malowanie kontenera 10.2 Klasa JComponent i malowanie komponentu 10.3 Wzorce projektowe Composite i Decorator 10.4 Wątek rozdziału zdarzeń W. Kasprzak: Programowanie zdarzeniowe Zarządzanie układem i malowanie kontenera 1) Zarządzanie układem komponentów w kontenerze PoniŜej podano 5 róŝnych układów komponentów. W czasie realizacji kontenera określane są rozmiary i połoŝenia komponentów. 6-ty menadŝer układu to CardLayout układ o charakterze zakładek. MenadŜerowie (zarządcy) układu: BorderLayout, GridLayout, FlowLayout, BoxLayout, GridBagLayout, CardLayout W. Kasprzak: Programowanie zdarzeniowe 10-2

2 KaŜdy kontener posiada domyślnego menadŝera układu : dla obiektów klasy JPanel jest nim FlowLayout ; dla paneli zawartości (głównych kontenerów w obiektach JApplet, JDialog i JFrame) jest nim BorderLayout. O zastosowanym menadŝerze układu powinniśmy decydować w chwili tworzenia obiektu klasy JPanel lub podczas dodawania komponentów do panelu zawartości. Zmianę menadŝera umoŝliwia metoda kontenera setlayout. Np. fragment kodu ustawiający menadŝera BorderLayout: JPanel pane = new JPanel(); pane.setlayout(new BorderLayout()); BorderLayout Posiada 5 obszarów przeznaczonych dla komponentów: North, South, East, West, Center. W. Kasprzak: Programowanie zdarzeniowe 10-3 BoxLayout Komponenty rozmieszczane są w kolumnie lub wierszu. Zachowane są maksymalne rozmiary komponentu i moŝliwe jest przyleganie komponentów. FlowLayout Wypełnia komponentami wiersze od lewej do prawej i kontynuje w razie potrzeby w dalszym wierszu. GridLayout Normalizuje rozmiary komponetów i wyświetla je w zadanej liczbie wierszy i kolumn. GridBagLayout UmoŜliwia elastyczny dobór rozmiarów wierszy i kolumn. W. Kasprzak: Programowanie zdarzeniowe 10-4

3 Preferowany rozmiar komponentu Na rzecz komponentu moŝliwe są wywołania metod: setminimumsize, setpreferredsize, setmaximumsize lub nadpisanie metod getminimumsize, getpreferredsize, getmaximumsize. Jedynie menadŝer BoxLayout zwraca uwagę na wymagany przez komponent maksymalny rozmiar. Preferowane połoŝenie komponentu Wywołania metod komponentu: setalignmentx, setalignmenty lub nadpisanie metod getalignmentx, getalignmenty. Jedynie menadŝer BoxLayout zwraca uwagę na wymagane przez komponent połoŝenie. W. Kasprzak: Programowanie zdarzeniowe 10-5 Przebieg ustalania rozmiaru i połoŝenia ramki JFrame Metoda pack() sprawia, Ŝe komponent klasy JFrame posiada preferowany rozmiar. 1. Preferowany rozmiar ramki wynika z dodania rozmiarów brzegu ramki do preferowanego rozmiaru komponentów bezpośrednio zawartych w ramce, czyli równa się sumie preferowanych rozmiarów panelu zawartości ramki ("content pane") i paska menu. 2. Zarządca układu dla "content pane" (zwykle jest nim BorderLayout) określa preferowany rozmiar tego "ukrytego" kontenera. ZaleŜy on od: rozmiarów brzegu panelu zawartości i od preferowanych rozmiarów komponentów, zawartych w tym panelu. Np. zarządca GridLayout stara się dopasować szerokość i wysokość kaŝdego zarządzanego komponentu do najszerszego i najwyŝszego z nich. 3. KaŜdy komponent podaje zarządcy układu swoje preferowane rozmiary lub zwraca rozmiar wynikający ze środowiska "look and feel". W. Kasprzak: Programowanie zdarzeniowe 10-6

4 4. Po wyznaczeniu rozmiarów komponentów, ustalany jest rozmiar ich kontenera i ten wynik propagowany jest w górę hierarchii komponentów. 2) Malowanie komponentów kontenera Zasady malowania komponentu 1. Proces wykreślania rozpoczyna się od najwyŝszego komponentu w hierarchii, który ma być malowany (po raz pierwszy lub odświeŝony). 2. Komponenty Swing-a domyślnie odświeŝają swój wygląd po modyfikacji. Np. w wyniku wywołania metody settext() komponent zostanie zmodyfikowany i ewentualnie zmienią się jego rozmiary. 3. Jeśli zmiana połoŝenia lub rozmiaru komponentu nie następuje automatycznie to moŝna ją wymusić metodą revalidate() a potem naleŝy wywołać repaint(). 4. Kod malowania wykonuje się w wątku rozdziału zdarzeń. 5. Malowanie jest podwójnie buforowane - najpierw wypełniany jest W. Kasprzak: Programowanie zdarzeniowe 10-7 "wirtualny bufor ekranu" i dopiero po zakończeniu malowania odbywa się opróŝnienie tego bufora i przesłanie jego zawartości do bufora ekranu. Metoda setopaque MoŜna przekazać do zarządcy malowania informację o tym, Ŝe komponent jest nieprzezroczysty - metodą setopaque(true) - co zwiększy efektywność procesu rysowania. Wprawdzie komponentom odpowiadają zawsze prostokątne obszary to jednak przezroczyste komponenty mogą mieć dowolny kształt, odsłaniając fragmenty przykrywanego komponentu. W. Kasprzak: Programowanie zdarzeniowe 10-8

5 Przykład. Dany jest interfejs uŝytkownika i tworząca go hierarchia kontenerów. Proces malowania powyŝszego graficznego interfejsu: 1. Kontener główny typu JFrame maluje się samodzielnie jako pierwszy. 2. Kontener "content pane" najpierw maluje tło - szary, jednorodny czworokąt. Następnie wzywa on zawarty w nim obiekt typu JPanel do malowania się. Zwróćmy uwagę na fakt, Ŝe panel zawartości powinien być nieprzezroczysty. PoniewaŜ JPanel jest nieprzezroczysty moŝna by go wykorzystać w roli "content pane", tzn. zamiast W. Kasprzak: Programowanie zdarzeniowe 10-9 content=frame.getcontentpanel() i content.add(panel) // dodania naszego panelu do content pane moglibyśmy ustawić content pane na nasz panel dzięki: setcontentpane(panel). 3. Kontener typu JPanel zawarty w content pane maluje najpierw swoje tło - szary, jednorodny prostokąt. Następnie maluje swój brzeg - jest on w tym przypadku typu EmptyBorder brzeg zwiększa preferowany rozmiar panelu. Na koniec panel wzywa "swoje" komponenty aby po kolei same "malowały się". 4. Komponent JButton maluje prostokątne tło (jeśli występuje) i następnie maluje swój tekst. Jeśli przycisk posiada aktualnie kontekst klawiatury to jego wygląd jest zmieniany zgodnie z przyjętym środowiskiem "look-and-feel". 5. Komponent JLabel maluje swoje tło i swój tekst. W. Kasprzak: Programowanie zdarzeniowe 10-10

6 10.2 Klasa JComponent i malowanie komponentu Bazowa klasa komponentów Swing-a to klasa JComponent, która dziedziczy z klasy Container, a ta z kolei dziedziczy z klasy Component. Klasa Component zapewnia wszystkie podstawowe funkcje komponentu od ustawiania ich wyglądu po malowanie i zdarzenia. Klasa Container wspomaga dodawanie komponentów do kontenera i zarządzanie rozkładem komponentów. 1) Cechy klasy JComponent Ustawianie wyglądu komponentu Metoda setborder umoŝliwia określenie brzegu komponentu. Inne metody pozwalają na ustawianie kolorów (setforeground, setbackground), czcionki (setfont), przezroczystości (setopaque) i kursora (setcursor). Malowanie komponentu Metoda główna paint nie jest jawnie wywoływana i nie moŝe być W. Kasprzak: Programowanie zdarzeniowe przesłaniana. Wywołuje ona metody paintcomponent, paintborder i paintchildren. Z nich jedynie metoda paintcomponent moŝe być przesłaniana i wtedy wyznacza ona własny kod uŝytkownika dla rysowania komponentu. Jawnie wywoływanymi metodami są teŝ: repaint (wymusza, aby całość lub część w podanym prostokącie obszaru komponentu została odmalowana), revalidate (wymusza ponowne obliczenie rozkładu dla kontenera komponentu i prowadzi do odpowiedniego odmalowania). Look and feel KaŜdy obiekt klasy JComponent posiada związany z nim obiekt klasy ComponentUI, który realizuje jego rysowanie, obsługę zdarzeń, wyznacza rozmiary, itp. Rodzaj obiektu ComponentUI specyfikowany jest niejawnie ustawieniem look and feel wynikającym z wykonania w programie metody UIManager.SetLookAndFeel. W. Kasprzak: Programowanie zdarzeniowe 10-12

7 Wspomaganie rozkładu komponentów Klasa Component posiadała metody pobierania wymagań komponentu, np. getminimumsize, getmaximumsize, getpreferredsize, getalignmenty i getalignmentx, a klasa JComponent dodaje do nich metody umoŝliwiające ustawianie tych własności setpreferredsize, setminimumsize, setmaximumsize, setalignmentx i setalignmenty. Istnieją teŝ metody do ustawiania i pobierania menadŝera układu komponentu (setlayout, getlayout) oraz ustawienia kierunku - zorientowania komponentu (applycomponentorientation). Zarządzanie hierarchią komponentów zawartych w kontenerze Metody dodające komponent do kontenera (add) i usuwające komponent z kontenera (remove). Metody informujące o hierarchii w kontenerze: getrootpane podaje kontener pełniący rolę root pane w kontenerze. getcomponentcount - podaje liczbę komponentów tego kontenera, getcomponent, getcomponents - pobiera jeden (o podanym indeksie) lub wszystkie komponenty tego kontenera, W. Kasprzak: Programowanie zdarzeniowe getparent - podaje bezpośredni kontener tego komponentu; gettoplevelancestor - pobiera główny kontener dla tego komponentu. Własności ustawiane przez uŝytkownika UŜytkownik moŝe określić własności (pary nazwa/obiekt ) dla kaŝdego obiektu klasy JComponent. Za ich pomocą moŝe on sterować przetwarzaniem danych swoich komponentów. Metody putclientproperty i getclientproperty słuŝą do nadawania wartości i pobierania wartości własnościom komponentu. Wspomaganie dostępu do stanu komponentu Szereg metod klasy JComponent umoŝliwia pobranie lub ustawianie stanu komponentu. Np. setname, getname, setenabled, isenabled, setvisible, isvisible, isshowing (sprawdza, czy komponent i jego kontener są namalowani na ekranie), settooltiptext. Wspomaganie dostępu do rozmiaru i połoŝenia komponentu Szereg metod pozwala na ustawianie i pobranie rozmiaru i połoŝenia: getwidth, getheight, getsize, setsize (pobierz aktualną szerokość wzgl. W. Kasprzak: Programowanie zdarzeniowe 10-14

8 wysokość komponentu w pikselach, pobierz wzgl. ustaw rozmiar komponentu), getx, gety, getbounds, setbounds (pobierz aktualną współrzędną x wzgl. y punktu odniesienia komponentu lub pobierz wzgl. ustaw połoŝenie obejmującego prostokąta komponentu, wszystko względem górnego lewego rogu przodka) getlocation, getlocationonscreen, setlocation (pobierz aktualne połoŝenie komponentu względem górnego lewego rogu przodka wzgl. ekranu lub ustaw to połoŝenie względne komponentu), getinsets (pobierz rozmiar brzegu komponentu). Obsługa zdarzeń Metody pozwalające zarejestrować lub wyrejestrować obiekt obsługi zdarzenia komponentu: dla przycisków myszy (addmouselistener, removemouselistener), ruchu myszy (addmousemotionlistener, removemousemotionlistener), klawiatury (addkeylistener, removekeylistener) i zdarzenia związane ze zmianą stanu komponentu ukrycia widoczności, przywrócenia W. Kasprzak: Programowanie zdarzeniowe widoczności, przesunięcia połoŝenia, zmiany rozmiarów, itd. (addcomponentlistener, removecomponentlistener). Wspomaganie mechanizmu drag and drop Istnieją metody wspomagające wymianę danych przez schowek systemowy lub mechanizm przeciągania komponentu drag and drop (settransferhandler, gettransferhandler) oraz sprawdzające czy dany punkt ekranu znajduje się wewnątrz obszaru komponentu (contains) albo jaki komponent najwyŝszego poziomu zawiera ten punkt (getcomponentat). Skróty klawiszy Akcje zdefiniowane dla komponentu mogą być aktywowane przyciśnięciami klawiszy, np. jeśli przycisk posiada aktualny kontekst klawiatury to naciśnięcie klawisza spacja jest równowaŝne z kliknięciem myszą. Związanie akcji z klawiszami następuje automatycznie dzięki mechanizmowi look and feel. W. Kasprzak: Programowanie zdarzeniowe 10-16

9 2) Malowanie komponentu W celu wymalowania siebie samego obiekt klasy JComponent korzysta z trzech metod, wywoływanych w następującej kolejności: paintcomponent główna metoda malowania domyślnie pierwsza czynność to odtwarzanie tła jeśli komponent jest nieprzezroczysty następnie ewentualny kod malowania stworzony przez programistę. paintborder nakazuje rysowanie siebie brzegowi komponentu (jeśli istnieje) ta metoda nie powinna być wywoływana lub przesłaniania. paintchildren - nakazuje rysowanie siebie komponentom-potomkom zawartym w danym kontenerze (jeśli istnieją) ta metoda nie powinna być wywoływana lub przesłaniania. PowyŜsze trzy metody są wołane w metodzie klasy JComponent - paint, która nie powinna być przesłaniana. Standardowa realizacja malowania komponentu Swinga (ale nie dla samej klasy JComponent) metodą paintcomponent w środowisku look- W. Kasprzak: Programowanie zdarzeniowe and-feel jest delegowana do pewnego obiektu (klasy ComponentUI), który realizuje następujące kroki: sprawdza, czy komponent jest nieprzezroczysty, jeśli tak, maluje tło całego obszaru komponentu, ewentualnie maluje elementy wynikające ze środowiska look-and-feel. Podwójne buforowanie zapewnia płynne rysowanie GUI na ekranie. Przykład. Ilustracja kolejności rysowania w kaŝdym komponencie dziedziczonym z klasy JComponent : 1. tło (jeśli nieprzezroczyste) 2. rysowanie według kodu uŝytkownika (jeśli występuje) 3. obramowanie (jeśli występuje) 4. zawarte komponenty (jeśli występują) W. Kasprzak: Programowanie zdarzeniowe 10-18

10 3) Metoda paintcomponent Przykład 10.1 Wizualizacja obrazu, o normalnym rozmiarze i rozciągniętego wszerz. class ImagePanel extends JPanel {... public void paintcomponent(graphics g) { super.paintcomponent(g); // Rysuj tło // Obraz o normalnym rozmiarze g.drawimage(image, 0, 0, this); // Rozmiar obrazu to 85 x 62 // Obraz rozciągnięty wszerz g.drawimage(image, 90, 0, 300, 62, this); W. Kasprzak: Programowanie zdarzeniowe W podanym przykładzie do rysowania tła wykorzystano paintcomponent z nadklasy. MoŜna teŝ jawnie w kodzie paintcomponent podać na początku sekwencję instrukcji: g.setcolor(getbackground()); g.fillrect(0, 0, getwidth(), getheight()); g.setcolor(getforeground()); Układ współrzędnych komponentu współrzędne całkowite z zakresu (0, 0) do (szerokość - 1, wysokość - 1). Ewentualne obramowanie zmniejsza obszar malowania komponentu. W. Kasprzak: Programowanie zdarzeniowe 10-20

11 Informację o komponencie uzyskujemy za pomocą metod: getwidth, getheight i getinsets (dla informacji o brzegu). Np. public void paintcomponent(graphics g) {... Insets insets = getinsets(); int currentwidth = getwidth() - insets.left - insets.right; int currentheight = getheight() - insets.top - insets.bottom;... W. Kasprzak: Programowanie zdarzeniowe ) Metoda repaint Argumenty metody repaint void repaint() - nakaz odmalowania całego obszaru komponentu. void repaint(int, int, int, int) nakaz odmalowania jedynie podanego obszaru prostokątnego w komponencie - X, Y, szerokość, wysokość. Przykład 10.2 Program obliczający obszar dla odmalowania. class SelectionArea extends JLabel {... public SelectionArea(ImageIcon image,...) { super(image); // Komponent wyświetla obraz // W obsłudze zdarzenia mouse-dragged : Rectangle totalrepaint = recttodraw.union(previousrectdrawn); W. Kasprzak: Programowanie zdarzeniowe 10-22

12 repaint(totalrepaint.x, totalrepaint.y, totalrepaint.width, totalrepaint.height);... public void paintcomponent(graphics g) { super.paintcomponent(g); // Maluje tło i obraz... // Maluje prostokąt na obrazie. g.setcolor(color.white); g.drawrect(recttodraw.x, recttodraw.y, recttodraw.width - 1, recttodraw.height - 1); Nad obrazem malowana jest ramka wybrana przez uŝytkownika. Tylko obszar komponentu odpowiadający tej ramce jest odmalowywany. Ten sam prostokąt przekazany do metody repaint odzwierciedlony jest w obiekcie Graphics przekazanym do metody paintcomponent. W. Kasprzak: Programowanie zdarzeniowe Metoda getclipbounds umoŝliwia pobranie malowanego obszaru: public void paintcomponent(graphics g) { Rectangle cliprect = g.getclipbounds(); if (cliprect!= null) { // punkt odniesienia = (cliprect.x, cliprect.y) // szerokość, wysokość = cliprect.width, cliprect.height else {... Obiekt Graphics Obiekt Graphics zawiera informacje (stan kontekstu graficznego kolor, czcionkę, obszar malowania) i metody potrzebne do malowania (np. drawimage, drawstring, drawrect, fillrect). Ustawianie i pobieranie kontekstu, np. getcolor, getfont, setcolor, setfont, setclip, getclipbounds. Po zredukowanym malowaniu naleŝy odtworzyć obszar malowania komponentu jeszcze w metodzie paintcomponent: W. Kasprzak: Programowanie zdarzeniowe 10-24

13 Rectangle oldclipbounds = g.getclipbounds(); Rectangle clipbounds = new Rectangle(...); g.setclip(clipbounds);...// Malowanie... g.setclip(oldclipbounds); // Odtworzenie obszaru malowania PowyŜsze wynika z faktu, Ŝe nie mamy pełnej kontroli nad obszarem malowania w programie: - wiele kolejnych wywołań repaint moŝe być połączonych w jedno wywołanie paintcomponent; - metoda paintcomponent moŝe być wołana przez domyślny system malowania, bez jawnego wołania w aplikacji repaint; np. pierwsza prezentacja GUI, odsłonięcie okna komponentu przez zabranie innego przesłaniającego okna. W. Kasprzak: Programowanie zdarzeniowe Wzorce projektowe Composite i Decorator 1) Wzorzec struktury Composite Composite jest wzorcem słuŝącym do reprezentacji struktur drzewiastych typu całość-część w taki sposób, aby sposób zarządzania strukturą nie zaleŝał od jej złoŝoności. Ten wzorzec jest implementowany w obiektowych bibliotekach AWT i Swing do realizacji struktury komponent kontener i do zarządzania jej wizualizacją. Z punktu widzenia obiektu-klienta wzorzec Composite umoŝliwia zarządzanie całością za pomocą wywołania operacji dla jednego obiektu korzenia drzewa. Niepotrzebna jest mu wiedza o rozmiarze drzewa, poniewaŝ wywołanie operacji (np. odmalowania kontenera) zostanie przekazane automatycznie do wszystkich jego elementów. Centralnym elementem wzorca jest interfejs Component, który reprezentuje dowolny obiekt w strukturze drzewiastej. Posiada on moŝliwości dodawania i usuwania swojego obiektu potomnego (oczywiście, takŝe typu Component) oraz odwołania się do wybranego potomka. Zawiera on takŝe metodę W. Kasprzak: Programowanie zdarzeniowe 10-26

14 operation(), którą naleŝy wykonać na kaŝdym węźle struktury. Interfejs Component posiada dwie implementacje: Leaf oraz Composite. Klasa Leaf reprezentuje obiekty, które nie posiadają potomków (czyli liście w strukturze), natomiast Composite jest dowolnym węzłem pośrednim. PoniewaŜ kaŝdy węzeł pośredni zarządza takŝe poddrzewem, którego jest korzeniem, dlatego metoda operation(), poza wykonaniem operacji W. Kasprzak: Programowanie zdarzeniowe specyficznych dla kaŝdego węzła, wywołuje swoje odpowiedniki w obiektach potomnych, w ten sposób propagując wywołanie. 2) Wzorzec struktury Decorator Celem wzorca jest umoŝliwienie dynamicznego dodawania funkcjonalności do obiektu. Stwarza on elastyczną alternatywę dla mechanizmu dziedziczenia klas. W. Kasprzak: Programowanie zdarzeniowe 10-28

15 Klient wysyła komunikat do obiektu Decorator, który przekazuje go obiektowi ConcreteComponent i wykonuje dodatkowe operacje ( dekoracje ). Component jest wspólnym interfejsem dla wszystkich klas, które moŝna dekorować. Implementują go zarówno klasa ConcreteComponent, która jest odpowiedzialna za podstawową funkcjonalność oferowaną klientowi, jak i dekoratory. KaŜdy dekorator posiada referencję (oznaczoną jako kompozycję, aby zaznaczyć obowiązkowość i siłę tej relacji) do innego obiektu Component, którym moŝe być ponownie dekorator lub ConcreteComponent. Otrzymując Ŝądanie wykonania określonej operacji, dekorator deleguje je do swojego wewnętrznego obiektu Component, a następnie wykonuje specyficzną dla siebie dodatkową funkcjonalność. Czyli dodanie do obiektu nowej funkcjonalności polega na utworzeniu dekoratora i przekazaniu mu tego obiektu. Kiedy kaŝdy dekorator (klasy ConcreteDecoratorA i ConcreteDecoratorB) W. Kasprzak: Programowanie zdarzeniowe dodaje do dekorowanego obiektu tylko jedną funkcję, wówczas dekorując obiekt wielokrotnie uzyskujemy efekt osiągnięcia Ŝądanej sumarycznej funkcjonalności. Pod względem typu udekorowany obiekt nie róŝni się od obiektu nieudekorowanego (klient widzi go przez interfejs Component), dlatego zastosowanie tego wzorca nie wymaga istotnych zmian w kodzie klienta. Obiekt ConcreteComponent, aby mógł uczestniczyć w tym wzorcu, musi definiować interfejs Component, którego alternatywną implementacją są dekoratory. WaŜne jest teŝ, aby dekoratory odpowiednio delegowały swoje metody do wewnętrznych obiektów typu Component. W. Kasprzak: Programowanie zdarzeniowe 10-30

16 10.4 Wątek rozdziału zdarzeń 1) "Event-dispatching thread" Kod obsługi zdarzeń wykonywany jest zawsze w jednym wątku, tzw. wątku rozdziału zdarzeń ("event-dispatching thread"). Dzięki temu Ŝadna obsługa zdarzenia w programie nie moŝe się rozpocząć zanim nie zakończy się obsługa poprzedniego zdarzenia. Np. kod metody actionperformed wykonuje się w wątku rozdziału zdarzeń. RównieŜ kod malowania komponentów na ekranie wykonuje się w tym unikalnym wątku rozdziału zdarzeń. Czyli odświeŝanie komponentu nie moŝe się odbyć dopóki wykonywana jest obsługa zdarzenia wcześniej zainicjalizowana niŝ nakaz odświeŝenia wyglądu komponentu GUI. Zasady współpracy programu z GUI Dla apletu naleŝy konstruować GUI w metodzie init( ). Dla aplikacji bezpieczne jest stosowanie następującego schematu: public class MyApplication { W. Kasprzak: Programowanie zdarzeniowe public static void main(string[] args) { JFrame f = new JFrame(...);...// Dodaj komponenty do ramki.. f.pack(); // Realizuj ramkę f.setvisible(true); // Wyświetl ramkę // Teraz nie konstruuj juŝ Ŝadnych elementów GUI. // Wszystkie operacje na GUI - np. settext, gettext, itd. // wykonywane są podczas obsługi zdarzeń, np. actionperformed().... Stosuj zasadę pojedynczego wątku "Po realizacji komponentu Swing-a kaŝdy kod w programie, który zaleŝy od stanu komponentu lub wpływa na zmianę stanu komponentu powinien być wykonywany w wątku rozdziału zdarzeń." Realizacja komponentu oznacza, Ŝe jest on przygotowany do namalowania go na ekranie. W. Kasprzak: Programowanie zdarzeniowe 10-32

17 Realizacja głównego okna nastąpi na skutek wywołania dla niego jednej z metod: setvisible(true), show(), pack(). Po realizacji okna jego komponenty są teŝ zrealizowane. Jeśli dodajemy komponent do zrealizowanego kontenera to automatycznie następuje realizacja tego komponentu. Pierwsza realizacja ramki zwykle polega na wywołaniu pack. Następnie ramka jest wyświetlana wywołaniem setvisible (lub show). Odstępstwa od zasady jednego wątku: Pewne metody w API są zabezpieczone przed wątkami mają wbudowaną synchronizację dostępu. GUI aplikacji moŝe być skonstruowany, zrealizowany i wyświetlony po raz pierwszy w głównym wątku. Przypomnijmy poprzedni przykład: public static void main(string[] args) { W. Kasprzak: Programowanie zdarzeniowe JFrame f = new JFrame(...);...// Dodaj komponenty do ramki... f.pack(); f.setvisible(true); // Dalej nie definiuj więcej GUI. W tym przykładzie GUI skonstruowano w głównym wątku. MoŜliwe jest bowiem skonstruowanie (ale nie wyświetlenie) GUI w dowolnym wątku, jeśli tylko nie ma w nim odwołań do (lub modyfikacji) juŝ "zrealizowanych" komponentów. Teoretycznie wywołanie setvisible nie jest zabezpieczone przed wątkami, gdyŝ komponenty zostały właśnie zrealizowane wywołaniem pack. Jednak jeśli program nie posiada jeszcze widocznego GUI, jest mało prawdopodobne, aby nastąpiło wywołanie paint zanim metoda setvisible powróci. GUI apletu moŝe być skonstruowany i wyświetlony w metodzie init. W. Kasprzak: Programowanie zdarzeniowe 10-34

18 Przeglądarki nie wołają paint dla apletu zanim nie wykonają się metody init i start. Dlatego bezpieczne jest skonstruowanie GUI w metodzie apletu init, jeśli tylko nie wywołuje się w niej show() lub setvisible(true) dla obiektu apletu. Metody klasy JComponent - repaint i revalidate - mogą być wołane z kaŝdego wątku. Te metody przekazują swoje wywołania do kolejki obsług dla wątku rozdziału zdarzeń. Listy z obserwatorami zdarzeń mogą być modyfikowane przez kaŝdy wątek - moŝna wszędzie wywołać metody addlistenertypelistener i removelistenertypelistener te operacje nie mają wpływu na aktualnie realizowany rozdział zdarzeń. W. Kasprzak: Programowanie zdarzeniowe ) Jak naleŝy wykonywać kod w wątku rozdziału zdarzeń? Operacje na GUI po jego inicjalizacji prowadzone są przez wątek rozdziału zdarzeń. Programy sterowane są zdarzeniami pochodzącymi od widocznych komponentów takich jak przyciski lub operacje myszą. Jednak są teŝ sytuacje, gdy program wykonuje operacje na GUI, które nie są inicjowane zdarzeniami. Oto przykłady takich sytuacji. - Program wykonuje dłuŝszą inicjalizację na raty Taki program zwykle tworzy i pokazuje "zaczątki" swojego GUI podczas inicjalizacji, a potem prowadzi zmianę i modyfikację swojego GUI. Uzupełniająca inicjalizacja nie powinna mieć miejsca w wątku rozdziału zdarzeń, gdyŝ blokowałaby przyjmowanie zdarzeń i odświeŝanie ekranu dla programu. - Programy, których GUI musi być zmodyfikowany w wyniku niestandardowych zdarzeń. W. Kasprzak: Programowanie zdarzeniowe 10-36

19 Np. metoda programu serwera moŝe zostać wywołana przez nieznany wątek wykonywany na innej maszynie. Jednak w celu modyfikacji GUI metoda ta powinna wywołać kod wykonywany w wątku rozdziału zdarzeń. 3) Asynchroniczne wywołania metod w wątku rozdziału zdarzeń Klasa SwingUtilities posiada 2 metody przeznaczone do współpracy programu z wątkiem rozdziału zdarzeń: invokelater Metoda spowoduje wykonanie zadanego kodu w wątku rozdziału zdarzeń. Metoda nie czeka na wykonanie się tego kodu lecz powraca natychmiast. invokeandwait Działa podobnie jak metoda invokelater ale czeka na wykonanie się zadanego kodu. W. Kasprzak: Programowanie zdarzeniowe Deklaracja metody invokelater( ) public static void invokelater(runnable dorun) Powoduje asynchroniczne wykonanie metody dorun.run() w wątku rozdziału zdarzeń, po wcześniejszym wykonaniu wszystkich oczekujących w kolejce metod obsługi zdarzeń. Ta metoda moŝe być teŝ wołana z samego wątku rozdziału zdarzeń. Za obsługę ewentualnych wyjątków zgłaszanych podczas wykonania zleconego zadania odpowiada wątek rozdziału zdarzeń. Przykład. Wywołanie zadania obiektu dohelloworld i wydruk komunikatu: Runnable dohelloworld = new Runnable() { public void run() { System.out.println("Hello World w " + Thread.currentThread()); ; SwingUtilities.invokeLater(doHelloWorld); // Wykonaj później System.out.println("Ten komunikat moŝe pojawić się wcześniej niŝ górny."); W. Kasprzak: Programowanie zdarzeniowe 10-38

20 Deklaracja metody invokeandwait( ) public static void invokeandwait(runnable dorun) throws InterruptedException, InvocationTargetException TakŜe ta metoda powoduje asynchroniczne wykonanie metody dorun.run() w wątku rozdziału zdarzeń, po wcześniejszym wykonaniu wszystkich oczekujących w kolejce metod obsługi zdarzeń. Jednak wołająca metoda zostaje zablokowana w oczekiwaniu na wykonanie się zleconego zadania. Metody invokeandwait() nie moŝna wywołać w wątku rozdziału zdarzeń. Przykład. Wywołanie metody invokeandwait() z nowo tworzonego wątku w aplikacji w celu wypisania napisu w wątku rozdziału zdarzeń, a następnie po powrocie metody następuje wypisanie pochodzące z nowego wątku aplikacji. final Runnable dohelloworld = new Runnable() { public void run() { System.out.println("Hello World w " + Thread.currentThread()); ; W. Kasprzak: Programowanie zdarzeniowe Thread appthread = new Thread() { public void run() { try { SwingUtilities.invokeAndWait(doHelloWorld); catch (Exception e) { e.printstacktrace(); System.out.println("Koniec w " + Thread.currentThread()); ; appthread.start(); Jeśli metoda run() wołanego obiektu implementującego Runnable zgłasza wyjątek nieobsługiwany przez wątek rozdziału zdarzeń to jest on zamieniany na wyjątek typu InvocationTargetException i przekazywany do obsługi przez wołający wątek. Wyjątek typu InterruptedException zgłaszany jest wtedy, gdy oczekiwanie naszego wątku na zakończenie się zleconego zadania zostaje przerwane. W. Kasprzak: Programowanie zdarzeniowe 10-40

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń

Bardziej szczegółowo

Programowanie zdarzeniowe

Programowanie zdarzeniowe Programowanie zdarzeniowe II. Biblioteka Swing Małgorzata Prolejko ZDA JA16Z03 Plan Struktura Swing Komponenty proste Ramki Kolejność warstw Zarządca układu Panele Komponenty złożone Okna dialogowe i wewnętrzne

Bardziej szczegółowo

Programowanie graficznego interfejsu użytkownika. Wykład 8. Maciej Wołoszyn 10 maja 2006

Programowanie graficznego interfejsu użytkownika. Wykład 8. Maciej Wołoszyn 10 maja 2006 Programowanie graficznego interfejsu użytkownika Wykład 8 Maciej Wołoszyn mailto:woloszyn@fatcat.ftj.agh.edu.pl 10 maja 2006 Spis treści 1 JFC/Swing 1 1.1 Prosty przykład.................................

Bardziej szczegółowo

LABORATORIUM 7 Cel: 1_1

LABORATORIUM 7 Cel: 1_1 LABORATORIUM 7 Cel: Budowa klas z wykorzystaniem dziedziczenia oraz implementowania interfejsów. Wprowadzenie do trybu graficznego -cd. Animacje obiektów w trybie graficznym obsługa zdarzeń od klawiatury

Bardziej szczegółowo

Tworzenie elementów graficznych

Tworzenie elementów graficznych Tworzenie elementów graficznych Elementy graficzne w Javie pozwalające tworzyć Graficzny Interfejs Użytkownika (GUI) możemy podzielić na dwie grupy: AWT (Abstract Window Toolkit) bibliotek klas służąca

Bardziej szczegółowo

Podstawy Swing. Tomasz Borzyszkowski

Podstawy Swing. Tomasz Borzyszkowski Podstawy Swing Tomasz Borzyszkowski Wprowadzenie Już Java 1.0 zawierała bibliotekę AWT (Abstract Window Toolkit) służącą do oprogramowania GUI. Kolejne wersje Java również wspierały to rozwiązanie. Swing

Bardziej szczegółowo

Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com

Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com GUI-Swing Wstęp do tworzenia prostych aplikacji z interfejsem graficznym (GUI) przy pomocy Swing, rysowanie prostych

Bardziej szczegółowo

Programowanie zdarzeniowe

Programowanie zdarzeniowe Programowanie zdarzeniowe I. Podstawy obsługi zdarzeń Małgorzata Prolejko ZDA JA16Z03 Plan Pojęcie zdarzenia Klasy i obiekty słuchaczy Rejestracja słuchaczy Obsługa naciśnięcia przycisku Rozpoznawanie

Bardziej szczegółowo

Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1.

Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1. Wielowątkowość Programowanie w środowisku rozproszonym. Wykład 1. Informacje organizacyjne Wymiar godzin: W-30, LAB-15 Zaliczenie wykonanie kilku programów i ich zaliczenie (w trakcie zajęć laboratoryjnych)

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 7 Marcin Młotkowski 8 kwietnia 2015 Plan wykładu Z życia programisty, część 1 1 Z życia programisty, część 1 2 3 Z życia programisty, część 2 Model View Controller MVC w

Bardziej szczegółowo

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem. WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM NetBeans Wykonał: Jacek Ventzke informatyka sem. VI 1. Uruchamiamy program NetBeans (tu wersja 6.8 ) 2. Tworzymy

Bardziej szczegółowo

Wypożyczalnia VIDEO. Technologie obiektowe

Wypożyczalnia VIDEO. Technologie obiektowe Wypożyczalnia VIDEO Jest to program do obsługi wypożyczalni i wypożyczeń klientów. Głównym zadaniem programu jest zarządzanie wypożyczeniami i drukowanie potwierdzenia wypożyczenia oraz naliczenie punktów

Bardziej szczegółowo

Informatyka I. Interfejs GUI wysokiego poziomu. Biblioteka Swing. Programowanie zdarzeniowe. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Interfejs GUI wysokiego poziomu. Biblioteka Swing. Programowanie zdarzeniowe. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Interfejs GUI wysokiego poziomu. Biblioteka Swing. Programowanie zdarzeniowe. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Interfejs GUI wysokiego poziomu Pojęcie

Bardziej szczegółowo

Programowanie graficznych interfejsów użytkownika

Programowanie graficznych interfejsów użytkownika Programowanie obiektowe Programowanie graficznych interfejsów użytkownika Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Programowanie

Bardziej szczegółowo

Grafika i komunikacja człowiek komputer Laboratorium. Część 1: Wstęp do grafiki

Grafika i komunikacja człowiek komputer Laboratorium. Część 1: Wstęp do grafiki UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI Opracował: mgr inż. Przemysław Pardel, dr hab. Bogdan Kwolek v1.01 2010 Grafika i komunikacja człowiek komputer Laboratorium Część 1: Wstęp do grafiki ZAGADNIENIA

Bardziej szczegółowo

Interfejsy w Java. Przetwarzanie równoległe. Wątki.

Interfejsy w Java. Przetwarzanie równoległe. Wątki. Informatyka I Interfejsy w Java. Przetwarzanie równoległe. Wątki. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Interfejsy w Java Pojęcie interfejsu w programowaniu Deklaracja

Bardziej szczegółowo

Java - interfejs graficzny

Java - interfejs graficzny Java - interfejs graficzny Pakiet Swing Pakiet Swing przygotował: pawel@kasprowski.pl Czym jest Swing? Rozszerzenie AWT (Abstract Windows Toolkit) do tworzenia GUI (Graphical User Interface) w Javie import

Bardziej szczegółowo

Java biblioteka Swing

Java biblioteka Swing Java biblioteka Swing Podstawowe klasy Klasa JComponent Klasa JFrame Klasa JFrame Klasa bazowa dla okien Ważne właściwości: settitle ( ) setdefaultcloseoperation ( ) setsize ( ), setlocation ( ) setlayout

Bardziej szczegółowo

SWING. dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com

SWING. dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com SWING dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com O czym będzie? Przykład aplikacji z GUI Zarządcy układu Obsługa zdarzeń Komponenty GUI Wprowadzenie obiektowy paradygmat do tworzenia

Bardziej szczegółowo

Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science

Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science mluckner@mini.pw.edu.pl http://www.mini.pw.edu.pl/~lucknerm Wszystkie komponenty są rozmieszczane przez domyślny

Bardziej szczegółowo

Podstawy Języka Java

Podstawy Języka Java Podstawy Języka Java Wprowadzenie do AWT AWT Abstract Window Toolkit, biblioteka wykorzystywana do budowy graficznych interfejsów użytkownika w Javie AWT do obsługi elementów interfejsu użytkownika wykorzystuje

Bardziej szczegółowo

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski Adapter: opis Wzorce Strukturalne Tomasz Borzyszkowski Alternatywna nazwa: Wrapper (opakowanie) Rola obiektu Adapter: pełni wobec Klienta rolę otoczki, która umożliwia przetłumaczenie jego żądań na protokół

Bardziej szczegółowo

Kontenery i komponenty graficzne

Kontenery i komponenty graficzne JAVA Kontenery i komponenty graficzne Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Opracował: Andrzej Nowak Kontenery Aplikacja okienkowa składa

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

Architektura interfejsu użytkownika

Architektura interfejsu użytkownika Uniwersytet Jagielloński Interfejsy graficzne Wykład 3 Architektura interfejsu użytkownika Barbara Strug 2011 Hall of shame Hall of Shame Hall of Fame O czym dzisiaj Model Widok- Kontroler Hierarchia widoków

Bardziej szczegółowo

Klasy abstrakcyjne. Klasę abstrakcyjną tworzymy przy pomocy modyfikatora abstract

Klasy abstrakcyjne. Klasę abstrakcyjną tworzymy przy pomocy modyfikatora abstract Klasy abstrakcyjne Klasa abstrakcyjna jest to klasa której obiekty nie mogą być tworzone, może być natomiast dziedziczona. Może posiadać konstruktor, może on być jednak wywołany tylko przez klasy pochodne.

Bardziej szczegółowo

Programowanie Obiektowe GUI

Programowanie Obiektowe GUI Programowanie Obiektowe GUI Swing Celem ćwiczenia jest ilustracja wizualnego tworzenia graficznego interfejsu użytkownika opartego o bibliotekę Swing w środowisku NetBeans. Ponadto, ćwiczenie ma na celu

Bardziej szczegółowo

Kurs programowania. Wykład 4. Wojciech Macyna. 23 marca 2016

Kurs programowania. Wykład 4. Wojciech Macyna. 23 marca 2016 Wykład 4 23 marca 2016 Graficzny interfejs użytkownika - GUI W Javie możemy skorzystać z dwóch bibliotek do tworzenia graficznych interfejsów: AWT (Abstract Windowing Toolkit) podstawowa biblioteka będaca

Bardziej szczegółowo

II Tworzenie klasy Prostokąt dziedziczącej z klasy wątku

II Tworzenie klasy Prostokąt dziedziczącej z klasy wątku INSTRUKCJA DO ĆWICZENIA 9 Animacja z wieloma wątkami Projekt1 Utwórz aplikację Swing, która umożliwi rysowanie na panelu 10 prostokątów o tej samej podstawie i losowych wysokościach, niezależnie zmieniających

Bardziej szczegółowo

I Tworzenie prezentacji za pomocą szablonu w programie Power-Point. 1. Wybieramy z górnego menu polecenie Nowy a następnie Utwórz z szablonu

I Tworzenie prezentacji za pomocą szablonu w programie Power-Point. 1. Wybieramy z górnego menu polecenie Nowy a następnie Utwórz z szablonu I Tworzenie prezentacji za pomocą szablonu w programie Power-Point 1. Wybieramy z górnego menu polecenie Nowy a następnie Utwórz z szablonu 2. Po wybraniu szablonu ukaŝe się nam ekran jak poniŝej 3. Następnie

Bardziej szczegółowo

Programowanie w języku Java

Programowanie w języku Java Programowanie w języku Java Wykład 9: JFC/Swing projektowanie GUI Widok komponentów Java (Metal) MS Windows OSF/Motif GTK+ Programowanie w języku Java 2 1 Komponenty (1) Kontenery główne: JApplet JDialog

Bardziej szczegółowo

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

Projektowanie obiektowe. Roman Simiński  Wzorce projektowe Wybrane wzorce strukturalne Projektowanie obiektowe Roman Simiński roman.siminski@us.edu.pl www.siminskionline.pl Wzorce projektowe Wybrane wzorce strukturalne Fasada Facade Pattern 2 Wzorzec Fasada Facade Pattern koncepcja 3 Wzorzec

Bardziej szczegółowo

Laboratorium z Grafiki InŜynierskiej CAD. Rozpoczęcie pracy z AutoCAD-em. Uruchomienie programu

Laboratorium z Grafiki InŜynierskiej CAD. Rozpoczęcie pracy z AutoCAD-em. Uruchomienie programu Laboratorium z Grafiki InŜynierskiej CAD W przygotowaniu ćwiczeń wykorzystano m.in. następujące materiały: 1. Program AutoCAD 2010. 2. Graf J.: AutoCAD 14PL Ćwiczenia. Mikom 1998. 3. Kłosowski P., Grabowska

Bardziej szczegółowo

Język Java. Rysowanie GUI Określanie wyglądu komponentów

Język Java. Rysowanie GUI Określanie wyglądu komponentów Język Java Rysowanie GUI Określanie wyglądu komponentów Rysowanie GUI Rysowanie GUI w Swingu np. przy pierwszym wyświetleniu przy ponownym odsłonięciu przy zmianach stanu programu Kolejność rysowania -

Bardziej szczegółowo

Java Podstawy. Michał Bereta

Java Podstawy. Michał Bereta Prezentacja współfinansowana przez Unię Europejską ze środków Europejskiego Funduszu Społecznego w ramach projektu Wzmocnienie znaczenia Politechniki Krakowskiej w kształceniu przedmiotów ścisłych i propagowaniu

Bardziej szczegółowo

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1 Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie

Bardziej szczegółowo

Programowanie w Javie Wykład 6 Okienka w Javie (AWT)

Programowanie w Javie Wykład 6 Okienka w Javie (AWT) Programowanie w Javie Wykład 6 Okienka w Javie (AWT) Płock 2014/2015 Wprowadzenie do AWT AWT Abstract Window Toolkit, wykorzystywany do budowy graficznych interfejsów użytkownika w Javie AWT do obsługi

Bardziej szczegółowo

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 2 Jacek Rumiński 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa

Bardziej szczegółowo

PWŚG Ćwiczenia 13. Ukończoną pracę należy przesłać na adres lub

PWŚG Ćwiczenia 13. Ukończoną pracę należy przesłać na adres   lub PWŚG Ćwiczenia 13 Ukończoną pracę należy przesłać na adres email: sara.m.jurczyk@gmail.com lub sarajurczyk@kul.lublin.pl Zadanie. Stwórz aplikację stawiającą stemple w postaci figur geometrycznych: koło,

Bardziej szczegółowo

Aplikacja wielowątkowa prosty komunikator

Aplikacja wielowątkowa prosty komunikator Aplikacja wielowątkowa prosty komunikator Klient 0 (host 1) Wątek 0 Komponent serwera Wątek pochodny 3.1 Klient 1 (host 2) Wątek 1 Komponent serwera Wątek pochodny 3.2 Host 4 Serwer Wątek 3 Klient 2 (host

Bardziej szczegółowo

TEMAT : KLASY DZIEDZICZENIE

TEMAT : KLASY DZIEDZICZENIE TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą

Bardziej szczegółowo

Laboratorium z informatyki sem.iii/ćw. 4 Wydział Transportu PW /19

Laboratorium z informatyki sem.iii/ćw. 4 Wydział Transportu PW /19 INSTRUKCJA DO ĆWICZENIA 4 Utworzymy aplikacje umożliwiające oszacowanie szukanych wartości przez symulację doświadczenia losowego, z ilustracją graficzną wyników doświadczenia. Zadanie wykonamy dla przykładów

Bardziej szczegółowo

Java niezbędnik programisty spotkanie nr 12. Graficzny interfejs użytkownika

Java niezbędnik programisty spotkanie nr 12. Graficzny interfejs użytkownika Java niezbędnik programisty spotkanie nr 12 Graficzny interfejs użytkownika 1 Graphical User Interface (GUI) Abstract Window Toolkit Swing słabo się prezentuje mało obiektowy projekt i implementacja zajęły

Bardziej szczegółowo

1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4

1 Wątki 1. 2 Tworzenie wątków 1. 3 Synchronizacja 3. 4 Dodatki 3. 5 Algorytmy sortowania 4 Spis treści 1 Wątki 1 2 Tworzenie wątków 1 3 Synchronizacja 3 4 Dodatki 3 5 Algorytmy sortowania 4 6 Klasa Runnable 4 Temat: Wątki Czym są wątki. Grafika. Proste animacje. Małe podsumowanie materiału.

Bardziej szczegółowo

Język Java część 2 (przykładowa aplikacja)

Język Java część 2 (przykładowa aplikacja) Programowanie obiektowe Język Java część 2 (przykładowa aplikacja) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Java Java przykładowa

Bardziej szczegółowo

Język JAVA podstawy. Wykład 5, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 5, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 5, część 1 Jacek Rumiński 1 Język JAVA podstawy Plan wykładu: 1. Wprowadzenie do grafiki w Javie 2. Budowa GUI: komponenty, kontenery i układanie komponentów 3. Budowa GUI: obsługa

Bardziej szczegółowo

Applety Java. Applety są przykładem kodu Java wykonywanego po stronie klienta, ale bez ujawnionej (jak w przypadku skryptu) wersji źródłowej

Applety Java. Applety są przykładem kodu Java wykonywanego po stronie klienta, ale bez ujawnionej (jak w przypadku skryptu) wersji źródłowej Applety Java Są to komponenty stron WWW o ukrytym kodzie Applety są pisane w zwykłej Javie i dlatego kompilowane do pliku(ów) *.class, a nie interpretowane jak skrypty w JavaScript Aby przeglądarka odtwarzała

Bardziej szczegółowo

Wzorce projektowe. dr inż. Marcin Pietroo

Wzorce projektowe. dr inż. Marcin Pietroo Wzorce projektowe dr inż. Marcin Pietroo Adapter - strukturalny wzorzec projektowy, którego celem jest umożliwienie współpracy dwóm klasom o niekompatybilnych interfejsach - adapter przekształca interfejs

Bardziej szczegółowo

Builder (budowniczy) Cel: Przykład:

Builder (budowniczy) Cel: Przykład: 1/8 Builder (budowniczy) Cel: Oddzielenie konstruowania złożonego obiektu od jego reprezentacji, tak aby ten sam proces konstrukcji mógł tworzyć różne reprezentacje. Przykład: 2/8 abstract class TableBuilder

Bardziej szczegółowo

Programowanie na poziomie sprzętu. Programowanie w Windows API

Programowanie na poziomie sprzętu. Programowanie w Windows API Programowanie w Windows API Windows API Windows Application Programming Interface (API) to zestaw funkcji systemu operacyjnego Windows, które umożliwiają aplikacjom korzystanie z wszystkich usług systemu.

Bardziej szczegółowo

Współbieżność w środowisku Java

Współbieżność w środowisku Java Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych

Bardziej szczegółowo

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1 Wątki 1. Wątki - wprowadzenie Wątkiem nazywamy sekwencyjny przepływ sterowania w procesie, który wykonuje dany program np. odczytywanie i zapisywanie plików Program Javy jest wykonywany w obrębie jednego

Bardziej szczegółowo

Rysowanie prostych obiektów graficznych przy użyciu biblioteki AWT (Abstract Window Toolkit)

Rysowanie prostych obiektów graficznych przy użyciu biblioteki AWT (Abstract Window Toolkit) Rysowanie prostych obiektów graficznych przy użyciu biblioteki AWT (Abstract Window Toolkit) Biblioteka Abstrakcyjnych Narzędzi Okienkowych AWT (Abstract Window Toolkit) jako historycznie pierwsza w JDK

Bardziej szczegółowo

Dodanie nowej formy do projektu polega na:

Dodanie nowej formy do projektu polega na: 7 Tworzenie formy Forma jest podstawowym elementem dla tworzenia interfejsu użytkownika aplikacji systemu Windows. Umożliwia uruchomienie aplikacji, oraz komunikację z użytkownikiem aplikacji. W trakcie

Bardziej szczegółowo

PHP 5 język obiektowy

PHP 5 język obiektowy PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje

Bardziej szczegółowo

Informatyka i Ekonometria Programowanie komputerów Ćwiczenia Tworzenie aplikacji wykorzystaniem graficznego interfejsu użytkownika - Swing.

Informatyka i Ekonometria Programowanie komputerów Ćwiczenia Tworzenie aplikacji wykorzystaniem graficznego interfejsu użytkownika - Swing. Kierunek: Informatyka i Ekonometria Przedmiot: Programowanie komputerów Forma zajęć: Ćwiczenia Temat: Tworzenie aplikacji z wykorzystaniem graficznego interfejsu użytkownika - Swing. Biblioteka SWING podstawowa

Bardziej szczegółowo

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016 Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac

Bardziej szczegółowo

Doskonalsze i nowe komponenty GUI

Doskonalsze i nowe komponenty GUI JFC (Swing) Doskonalsze i nowe komponenty GUI Kontenery najwyŝszego poziomu Aby pojawić się na ekranie kaŝdy komponent musi być częścią pewnej hierarchii zawierania (containment hierarchy). Hierarchia

Bardziej szczegółowo

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ Procesy i wątki Proces posiada samodzielne środowisko wykonawcze. Proces posiada własny zestaw podstawowych zasobów w czasie wykonywania; W szczególności, każdy proces ma własną przestrzeń pamięci. W uproszczeniu

Bardziej szczegółowo

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Zagadnienia 1. Delegaty wiązane, właściwości indeksowane 2. Delegaty niewiązane 3. Nowa wersja kalkulatora, delegaty

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

Aplikacje internetowe i rozproszone - laboratorium

Aplikacje internetowe i rozproszone - laboratorium Aplikacje internetowe i rozproszone - laboratorium Enterprise JavaBeans (EJB) Celem tego zestawu ćwiczeń jest zapoznanie z technologią EJB w wersji 3.0, a w szczególności: implementacja komponentów sesyjnych,

Bardziej szczegółowo

problem w określonym kontekście siły istotę jego rozwiązania

problem w określonym kontekście siły istotę jego rozwiązania Wzorzec projektowy Christopher Alexander: Wzorzec to sprawdzona koncepcja, która opisuje problem powtarzający się wielokrotnie w określonym kontekście, działające na niego siły, oraz podaje istotę jego

Bardziej szczegółowo

PROJEKTOWANIE ABSTRAKCYJNEJ KLASY FIGURA PRZECHOWUJĄCEJ WSPÓLNE CECHY OBIEKTÓW GRAFICZNYCH

PROJEKTOWANIE ABSTRAKCYJNEJ KLASY FIGURA PRZECHOWUJĄCEJ WSPÓLNE CECHY OBIEKTÓW GRAFICZNYCH Animacja wielowątkowa - gra zręcznościowa. I. UTWORZENIE SZKIELETU APLIKACJI 1. Uruchom środowisko programowania NetBeans. Utwórz aplikację typu Swing tworząc projekt o nazwie Projekt10 2. Dodaj do projektu

Bardziej szczegółowo

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................

Bardziej szczegółowo

Java SE Laboratorium nr 5. Temat: Obsługa zdarzeń

Java SE Laboratorium nr 5. Temat: Obsługa zdarzeń Java SE Laboratorium nr 5 Temat: Obsługa zdarzeń 1 Obsługa zdarzeń 1. Definicja i idea Każda z aplikacji zmienia swój stan (reaguje) pod wpływem zdarzeń. Mogą to być zdarzenia generowane przez urządzenia

Bardziej szczegółowo

Kurs programowania. Wykład 6. Wojciech Macyna. 7 kwietnia 2016

Kurs programowania. Wykład 6. Wojciech Macyna. 7 kwietnia 2016 Wykład 6 7 kwietnia 2016 Klasa java.applet.applet Aplety w języku Java Aplety sa specyficznymi programami które moga być wyświetlane w oknach większości przegladarek internetowych. Klasa Applet rozszerza

Bardziej szczegółowo

Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science

Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science mluckner@mini.pw.edu.pl http://www.mini.pw.edu.pl/~lucknerm Abstract Window Toolkit Przekazuje tworzenie i

Bardziej szczegółowo

PWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub

PWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub PWSG Ćwiczenia 12 Wszystkie ukończone zadania należy wysłać na adres: sara.m.jurczyk@gmail.com lub sarajurczyk@kul.lublin.pl Zadanie 1: Różnica między zwykłymi polami/metodami, a polami/metodami static

Bardziej szczegółowo

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,

Bardziej szczegółowo

Programowanie obiektowe i zdarzeniowe

Programowanie obiektowe i zdarzeniowe Marek Tabędzki Programowanie obiektowe i zdarzeniowe 1/23 Programowanie obiektowe i zdarzeniowe wykład 6 polimorfizm Na poprzednim wykładzie: dziedziczenie jest sposobem na utworzenie nowej klasy na podstawie

Bardziej szczegółowo

Formularz MS Word. 1. Projektowanie formularza. 2. Formularze do wypełniania w programie Word

Formularz MS Word. 1. Projektowanie formularza. 2. Formularze do wypełniania w programie Word Formularz MS Word Formularz to dokument o określonej strukturze, zawierający puste pola do wypełnienia, czyli pola formularza, w których wprowadza się informacje. Uzyskane informacje moŝna następnie zebrać

Bardziej szczegółowo

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby

Bardziej szczegółowo

4. W konstruktorze klasy Grafika wywołaj metodę określającą rozmiary ramki oraz ustaw kolor tła metodą setbackground():

4. W konstruktorze klasy Grafika wywołaj metodę określającą rozmiary ramki oraz ustaw kolor tła metodą setbackground(): INSTRUKCJA DO ĆWICZENIA 2 Aplikacja zawiera przykłady ilustrujące wybrane metody graficzne klasy Graphics (powtórzenie) oraz klasy Graphics2D. Tworzenie własnej klasy, tworzącej wieloboki o zadanym kształcie

Bardziej szczegółowo

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i Program szkolenia: Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i JFace Informacje ogólne Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Kompleksowe tworzenie aplikacji

Bardziej szczegółowo

STWORZENIE MODUŁU POBIERAJĄCEGO WEKTOROWE

STWORZENIE MODUŁU POBIERAJĄCEGO WEKTOROWE LABORATORIUM SYSTEMÓW MOBILNYCH STWORZENIE MODUŁU POBIERAJĄCEGO WEKTOROWE DANE PRZESTRZENNE Z BAZY DANYCH I PRZYGOTOWUJĄCEGO JE DO WYŚWIETLENIA I. Temat ćwiczenia Stworzenie modułu przygotowującego dane

Bardziej szczegółowo

GUI - projektowanie interfejsów cz. II

GUI - projektowanie interfejsów cz. II Katedra Inżynierii Wiedzy, Uniwersytet Ekonomiczny w Katowicach Wykład 3 Elementy Swing wszystkie elementy graficzne (przyciski, kontrolki) rysowane są od zera z poziomu Javy; ten sam wygląd i zachowanie

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 12: GUI. Aplety. 5/19/2013 S.Deniziak:Programowanie obiektowe 1 Pakiety graficzne w Javie AWT (Abstract Window Toolkit) Swing Java 1.1 Java 2.0 Java 2D Java 3D Java Media

Bardziej szczegółowo

Tworzenie prezentacji w MS PowerPoint

Tworzenie prezentacji w MS PowerPoint Tworzenie prezentacji w MS PowerPoint Program PowerPoint dostarczany jest w pakiecie Office i daje nam możliwość stworzenia prezentacji oraz uatrakcyjnienia materiału, który chcemy przedstawić. Prezentacje

Bardziej szczegółowo

Dodawanie grafiki i obiektów

Dodawanie grafiki i obiektów Dodawanie grafiki i obiektów Word nie jest edytorem obiektów graficznych, ale oferuje kilka opcji, dzięki którym można dokonywać niewielkich zmian w rysunku. W Wordzie możesz zmieniać rozmiar obiektu graficznego,

Bardziej szczegółowo

5. Administracja kontami uŝytkowników

5. Administracja kontami uŝytkowników 5. Administracja kontami uŝytkowników Windows XP, w porównaniu do systemów Windows 9x, znacznie poprawia bezpieczeństwo oraz zwiększa moŝliwości konfiguracji uprawnień poszczególnych uŝytkowników. Natomiast

Bardziej szczegółowo

POMOC / INSTRUKCJA OBSŁUGI

POMOC / INSTRUKCJA OBSŁUGI POMOC / INSTRUKCJA OBSŁUGI 1. Powiększanie mapy 2. Plakat 3. Schemat lekcji 4. Broszura informacyjna 5. Instrukcja obsługi Pasek narzędzi i menu wyboru Zmiana skali mapy Mini mapa - podgląd na położenie

Bardziej szczegółowo

INSTRUKCJA DO ĆWICZENIA 5

INSTRUKCJA DO ĆWICZENIA 5 INSTRUKCJA DO ĆWICZENIA 5 Kontynuacja tworzenia aplikacje umożliwiających oszacowanie szukanych wartości przez symulację doświadczenia losowego, z ilustracją graficzną jego wyników. Zadanie wykonamy dla

Bardziej szczegółowo

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

Bardziej szczegółowo

Projekt ZSWS. Instrukcja uŝytkowania narzędzia SAP Business Explorer Analyzer. 1 Uruchamianie programu i raportu. Tytuł: Strona: 1 z 31

Projekt ZSWS. Instrukcja uŝytkowania narzędzia SAP Business Explorer Analyzer. 1 Uruchamianie programu i raportu. Tytuł: Strona: 1 z 31 Strona: 1 z 31 Explorer Analyzer 1 Uruchamianie programu i raportu PoniŜsze czynności uruchamiają program Bex Analyzer oraz wybrany raport z hurtowni danych. 1. uruchom z menu Start>Programy>Business Explorer>Analyzer

Bardziej szczegółowo

Dynamiczne i wydajne tworzenie interfejsu. Piotr Michałkiewicz

Dynamiczne i wydajne tworzenie interfejsu. Piotr Michałkiewicz Dynamiczne i wydajne tworzenie interfejsu użytkownika Piotr Michałkiewicz Główne punkty prezentacji View i ViewGroup w kodzie OnClick() i Tag Space widget i GridLayout Dynamiczne dodawanie widgetów Animations

Bardziej szczegółowo

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt

Bardziej szczegółowo

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Graficzny Interfejs Użytkownika mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Spis treści Graficzny Interfejs

Bardziej szczegółowo

Instrukcja obsługi programu Creative Fotos

Instrukcja obsługi programu Creative Fotos Instrukcja obsługi programu Creative Fotos Aby pobrać program Creative Fotos naleŝy wejść na stronę www.fotokoda.pl lub www.kodakwgalerii.astral.pl i kliknąć na link Program do wykonania albumów fotograficznych.

Bardziej szczegółowo

INSTRUKCJA OBSŁUGI SKLEPU INTERNETOWEGO. Alu System Plus Sp.J. ul.leśna 2d 32-500 Chrzanów, tel.(+48-32) 625-71-38 sprzedaz@alusystem.

INSTRUKCJA OBSŁUGI SKLEPU INTERNETOWEGO. Alu System Plus Sp.J. ul.leśna 2d 32-500 Chrzanów, tel.(+48-32) 625-71-38 sprzedaz@alusystem. INSTRUKCJA OBSŁUGI SKLEPU INTERNETOWEGO 1. Jak rozpocząć zakupy? Aby złoŝyć zamówienie w sklepie naleŝy zalogować się, klikając na linka Zaloguj w prawym górnym rogu ekranu. Następnie naleŝy podać nazwę

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Rozdział 7. Drukowanie

Rozdział 7. Drukowanie Rozdział 7. Drukowanie Ćwiczenia zawarte w tym rozdziale ułatwią zainstalowania w komputerze drukarki, prawidłowe jej skonfigurowanie i nadanie praw do drukowania poszczególnym uŝytkownikom. Baza sterowników

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Decorator (dekorator)

Decorator (dekorator) 1/10 Decorator (dekorator) Cel: Dołącza dynamicznie nową funkcjonalność do obiektu elastyczna alternatywa dziedziczenia. Przykład: interface iplik { void zapisz(string tekst); String odczytaj(); class

Bardziej szczegółowo

Aplikacja wielow tkowa prosty komunikator

Aplikacja wielow tkowa prosty komunikator Aplikacja wielow tkowa prosty komunikator Klient 0 (host 1) W tek 0 Komponent serwera W tek pochodny 3.1 Klient 1 (host 2) W tek 1 Komponent serwera W tek pochodny 3.2 Host 4 Serwer W tek 3 Klient 2 (host

Bardziej szczegółowo

Spis treści. 1 Aplet. 2 Od aplikacji do apletu. 1 Aplet 1. 2 Od aplikacji do apletu 1. 3 Budowa apletu 3. 4 Cykl życia apletu 4

Spis treści. 1 Aplet. 2 Od aplikacji do apletu. 1 Aplet 1. 2 Od aplikacji do apletu 1. 3 Budowa apletu 3. 4 Cykl życia apletu 4 Spis treści 1 Aplet 1 2 Od aplikacji do apletu 1 3 Budowa apletu 3 4 Cykl życia apletu 4 5 Aplet jako aplikacja 5 Temat: Aplety. Celem wykładu jest zdefiniowanie sieciowej aplikacji Java T M, zwanej apletem

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

Bardziej szczegółowo

Compas 2026 Vision Instrukcja obsługi do wersji 1.07

Compas 2026 Vision Instrukcja obsługi do wersji 1.07 Compas 2026 Vision Instrukcja obsługi do wersji 1.07 1 2 Spis treści Integracja...5 1.Compas 2026 Lan...5 Logowanie...7 Użytkownicy...8 Raporty...10 Tworzenie wizualizacji Widoki...12 1.Zarządzanie widokami...12

Bardziej szczegółowo