Programowanie w języku Java WYKŁAD

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

Download "Programowanie w języku Java WYKŁAD"

Transkrypt

1 Programowanie w języku Java WYKŁAD dr inż. Piotr Zabawa Certyfikowany Konsultant IBM/Rational pzabawa@pk.edu.pl www:

2 WYKŁAD 11 GUI w Swing cz. 2 Wykład został w znacznej mierze opracowany na podstawie:

3 GUI w Swing Zakład Inżynierii Oprogramowania Zasady działania na komponentach GUI: Komponenty tworzymy za pomocą wyrażenia new wywołującego odpowiedni konstruktor klasy komponentu, któremu podajemy argumenty, określające niektóre właściwości komponentu (np. tekst/ikonę na przycisku). Komponenty mają właściwości (np. kolory, pismo tekstu na przycisku), które możemy ustalać (lub pobierać) za pomocą metod z odpowiednich klas komponentów (metody setnnn(...), getnnn(...), isnnn(...), gdzie NNN nazwa właściwości). Większość właściwości komponentów jest reprezentowane przez obiekty odpowiednich klas (np. pismo klasa Font, kolor klasa Color) Komponenty, które mogą zawierać inne komponenty nazywają się kontenerami. Do kontenerów dodajemy inne komponenty (w tym inne kontenery) Z każdym kontenerem związany jest określony zarządca rozkładu, który określa układ komponentów w kontenerze i ich zachowanie (zmiany rozmiarów i położenia) przy zmianie rozmiarów kontenera. Inaczej: rozkład jest jedną z właściwości kontenera. Zarządcy rozkładu są obiektami odpowiednich klas

4 GUI w Swing Zakład Inżynierii Oprogramowania Dla każdego kontenera możemy ustalić wybranego zarządcę rozkładu Aplikacja komunikuje się z użytkownikiem za pomocą okna lub wielu okien Okna AWT są kontenerami, do których dodajemy komponenty wizualnej interakcji z użytkownikiem (w tym inne kontenery) Okna Swingu zawierają tzw. contentpane, który jest kontenerem do którego domyślnie dodajemy komponenty wizualnej interakcji (w tym inne kontenery). Okna (w tym "okno" apletu) są zawsze kontenerami najwyższego poziomu w hierarchii zawierania się komponentów Współdziałanie użytkownika z aplikacją odbywa się na zasadzie obsługi zdarzeń (np. zdarzenia kliknięcia w przycisk). Obsługą zdarzeń zarządza specjalny, równolegle z naszym programem wykonujący się kod w JVM wątek obsługi zdarzeń. O obsłudze zdarzeń w następnym wykładzie.

5 GUI w Swing AWT/Swing Ograniczenia AWT, dla których pokonania opracowano Swing: ubogie możliwości graficzne i interakcyjne komponentów, brak komponentów istotnych dla oprogramowania nowoczesnych GUI (np. tabel) zależny od platformy systemowej wygląd komponentów Umiejscowienie pakietu AWT: java.awt Kolejny ważny problem AWT, to fakt, że komponenty końcowe (powoływane do życia w aplikacjach) są komponentami ciężkimi.

6 GUI w Swing AWT/Swing Zalety Swing: Rozbudowanie istniejących komponentów AWT Wprowadzenie nowych komponentów AWT Odpowiednie rozdzielone hierarchie zostaną pokazane dalej. Umiejscowienie pakietu Swing: javax.swing Kolejna cech charakterystyczna Swing, to fakt, że wszystkie komponenty Swing z wyjątkiem znajdujących się najwyżej w hierarchii są komponentami lekkimi.

7 GUI w Swing AWT/Swing Komponenty ciężkie są realizowane poprzez użycie graficznych bibliotek GUI systemu operacyjnego. Komponenty lekkie są natomiast rysowane za pomocą kodu Javy w obszarze jakiegoś komponentu ciężkiego znajdującego się wyżej w hierarchii zawierania się komponentów (zwykle jest to kontener najwyższego poziomu).

8 GUI w Swing AWT/Swing Znaczenie tego gdzie lepiej w hierarchii umieścić klasy lekkie a gdzie ciężkie można prawidłowo i ogólnie zrozumieć studiując wzorce projektowe: Strategia Dekorator

9 GUI w Swing AWT/Swing Zatem komponenty lekkie: mogą być przezroczyste, a zatem mogą przybierać wizualnie dowolne kształty mają wygląd niezależny od platformy. Lekkie komponenty Swingu spełniają oba te warunki, a architektura klas Swingu pozwala wybierać wygląd jego lekkich komponentów (pluggable look and feel).

10 GUI w Swing AWT/Swing UWAGA: da się mieszać ze sobą komponenty ciężkie AWT i lekkie Swing poprzez umieszczenie ich w tym samym kontenerze, ale nie jest to zalecane. Powoduje to problemy z prawidłową obsługą kolejności nakładania na siebie elementów GUI w osi Z (Z-order). Ze względu na ten problem zdecydowano się opracować dość złożoną strukturę okien w Swing. Dlatego w Swing należy dodawać komponenty do ContentPane okna JFrame.

11 GUI w Swing AWT/Swing Poniżej przedstawiono na diagramie klas związki między AWT i Swing.

12

13 GUI w Swing AWT/Swing Komponenty Swingu o rozbudowanych możliwosciach w stosunku do AWT (AWT ma swoje odpowiedniki) [Źródło: Magellan Institute Swing Short Course.]

14

15 GUI w Swing AWT/Swing Hierarchia klas komponentów Swingu, nie mających odpowiedników w AWT [Żródło: Magellan Institute Swing Short Course.]

16

17 GUI w Swing kontenery Panel: klasa JPanel służy do grupowania komponentów Panel dzielony: klasa JSplitPane podział kontenera na dwie części (poziomo lub pionowo) z możliwością przesuwania belki podziału dla ustalenia rozmiarów widoków części Panel zakładkowy: klasa JTabbedPane zakładki służą do wybierania komponentów, które mają być uwidocznione w panelu

18 GUI w Swing kontenery Panel przewijany: klasa JScrollPane służy do pokazywania komponentów, które nie mieszczą się w polu widoku; suwaki umożliwiają "przewijanie" widoku komponentu, tak, by odsłaniać kolejne jego fragmenty. JTextArea i JList powinny być umieszczane w JScrollPane, jeśli ich zawartość (wiersze tekstu, elementy listy) może się powiększać. Pasek narzędzi: klasa JToolBar

19 GUI w Swing komponenty Lista własności wszystkich komponentów Swing: rozmiar (Size) szerokość (Width) wysokość (Height) położenie (Location) rozmiar i położenie (Bounds) minimalny rozmiar (MinimumSize) preferowany rozmiar (PreferredSize) mksymalny rozmiar (MaximumSize) wyrównanie po osi X (AlignmentX) wyrównanie po osi Y (AlignmentY)

20 GUI w Swing komponenty pismo (Font) kolor tła (Background) kolor pierwszego planu (Foreground) rodzic (Parent) nazwa (Name) widzialność (Visible) lekkość (LigthWeight) przezrosczystość (Opaque) dostępność (Enabled).

21 GUI w Swing Zakład Inżynierii Oprogramowania UWAGI: Rozmiary komponentów znane są dopiero po spakowaniu metodą pack() okna zawierającego te komponenty Położenie komponentu określane jest przez współrzędne (x,y), a punkt (0,0) oznacza lewy górny róg obszaru w którym znajduje się komponent Zmiana położenia i rozmiarów za pomocą metod set ma w zasadzie sens tylko dla komponentów znajdujących się w kontenerach bez zarządcy rozkładu lub dla komponentów-okien.

22 GUI w Swing Zakład Inżynierii Oprogramowania Pismo jest obiektem klasy Font, tworzonym za pomocą konstruktora Font(nazwa_pisma, styl, rozmiar) gdzie: nazwa_pisma - jest łańcuchem znakowym, określającym rodzaj pisma (np. "Dialog") styl - jest jedną ze stałych statycznych typu int z klasy Font: Font.BOLD Font.ITALIC Font.PLAIN (kombinacje uzyskujemy np. jako Font.BOLD Font.ITALIC) rozmiar - liczba całkowita określająca rozmiar pisma w punktach.

23 GUI w Swing Zakład Inżynierii Oprogramowania Kolor jest obiektem klasy Color, która ma kilka konstruktorów oraz udostępnia stałe statyczne typu Color z predefiniowanymi kolorami, np. Color.red, Color.blue, Color.white... Kolory przycisku możemy więc ustalić za pomocą takich konstrukcji: b.setbackground(color.blue); b.setforeground(color.white); albo: int r, g, b; r = 200; g = 200; b = 255; b.setbackground(new Color(r,g,b));

24 GUI w Swing Zakład Inżynierii Oprogramowania Zablokowanie/odblokowanie komponentu b.setenabled(false); // zablokowanie b.setenabled(true); // odblokowanie Zablokowanie komponentu powoduje, że nie jest on zdolny do przyjmowania zdarzeń.

25 GUI w Swing Zakład Inżynierii Oprogramowania Ukrywanie/uwidacznianie komponentów b.setvisible(false); // stanie się niewidoczny b.setvisible(true); // stanie się widoczny Komponent po ukryciu staje się niewidoczny na ekranie. Wszystkie komponenty z wyjątkiem wywodzących się z klasy Window są domyślnie widoczne. Dodanie komponentu do wcześniej uwidocznionego kontenera powoduje pojawienie się tego komponentu.

26 GUI w Swing Zakład Inżynierii Oprogramowania Ustawianie/wyłączanie przeźroczystości Wszystkie komponenty AWT są nieprzeźroczyste. Przeźroczystością wszystkich komponentów Swing można sterować. Wszystkie komponenty Swing z wyjątkiem JLabel są domyślnie nieprzeźroczyste. setopaque(true); // komponent stanie się nieprzeźroczysty setopaque(false); // komponent stanie się przeźroczysty

27 GUI w Swing Zakład Inżynierii Oprogramowania Odświeżanie komponentu Swing Jest ono realizowane za pomocą odwołań zwrotnych (callback) inicjowanych przez JVM a skierowanych do metody paint() komponentu zaimplementowanej w klasie JComponent. Metody tej nie wolno wywoływać z kodu aplikacji, można ją jedynie przesłonić własną implementacją. Jeśli istnieje konieczność odrysowania komponentu przez aplikację, to należy użyć metody repaint(...). Przedefiniowanie metod paint(): w AWT należy przedefiniować public void paint(graphics), w Swingu metodę public void paintcomponent(graphics). Ostatnie z powyższych rozwiązań jest jednak nieeleganckie.

28 GUI w Swing Zakład Inżynierii Oprogramowania W metodzie paint() jednym z argumentów jest referencja do obiektu klasy Graphics. Obiekt ten reprezentuje tzw. kontekst graficzny danego komponentu. Kontekst graficzny jest swoistym logicznym "urządzeniem wyjściowym". Zwykle jest to ekran komputera, ale może to być np. wydruk lub bufor w pamięci. Logiczny kontekst graficzny może więc być związany z różnymi "urządzeniami wyjściowymi" na których "rysowany" jest komponent. Aby zagwarantować odpowiedni wygląd i funkcjonalność gotowych komponentów, których klasy dziedziczymy, w przedefiniowywanej metodzie paintcomponent należy na początku wywołać metodę paintcomponent z nadklasy.

29 GUI w Swing Zakład Inżynierii Oprogramowania Wyprowadzanie napisów w Swing

30 GUI w Swing - grafika Rysowanie obrazu z pliku Dostęp do obrazu z pliku możemy uzyskać za pomocą odwołania: Image img = Toolkit.getDefaultToolkit().getImage(nazwa_pliku); Wykreślaniem obrazu w obszarze komponentu wizualnego zajmuje się metoda drawimage z klasy Graphics. Ładowanie i wyświetlanie dużych obrazów w Swing wygląda nieładnie dług trwa i obraz ładuje się etapami. Wprowadzono więc dwie klasy: ImageObsrever MediaTracker

31 GUI w Swing okna okno wtórne (secondary window, child window) = okno które ma właściciela - inne okno okno pierwotne, właściciel innych okien (owner) = okno, które jest właścicielem innych okien Skutki prawa własności: zamknięcie okna pierwotnego powoduje zamknięcie okien wtórnych, które są jego własnością, minimalizacja okna pierwotnego powoduje minimalizację okien wtórnych, przesunięcie okna pierwotnego powoduje przesunięcie okien wtórnych (nie na wszystkich platformach) Okno wtórne może być oknem modalnym lub nie. Modalność oznacza, iż interakcja z oknem pierwotnym jest zablokowana do chwili zamknięcia okna wtórnego. Przy niemodalnym oknie wtórnym - możemy dalej działać na oknie pierwotnym. Z - order = uporządkowanie okien "po osi Z" (czyli jak się okna na siebie nakładają).

32 GUI w Swing okna Klasy okien: JWindow może zostać użyte do utworzenia skastomizowanych okien o następujących cechach: okno bez ramki, menu i tytułu ma właściciela - inne okno nie podlega przesunięciom wraz z właścicielem nie jest modalne JFrame - może zostać użyte do skonstruowania okien, które: nie mają właściciela nie są modalne Zwykle jest nim główne okno aplikacji (nie ma właściciela!).

33 GUI w Swing okna JDialog służy do konstruowania okien o następujących cechach: ma ramkę ma tytuł ma właściciela nie może mieć paska menu może, ale nie musi być modalne Przeznaczone jest wyłącznie do tworzenia okienek dialogowych. JInternalFrame okna wewnętrzne są lekkimi komponetami o funkcjonalności okien ramowych (JFrame). Cechy charakterystyczne: niezależny od platformy wygląd muszą być dodawane do innych kontenerów dodatkowe możliwości programistyczne (np. dynamicznych zmian właściwości takich jak możliwość zmiany rozmiaru, możliwość maksymalizacji itp.)

34 GUI w Swing okna Operacja zamknięcia okna może mieć różne skutki zdefiniowane za pomocą następujących stałych: DO_NOTHING_ON_CLOSE HIDE_ON_CLOSE - operacja domyślna (chowa okno, ale nie likwiduje go) DISPOSE_ON_CLOSE - usunięcie okna EXIT_ON_CLOSE - powoduje zamknięcie aplikacji

35 GUI w Swing rozkłady Rozkłady (Layouts) Metody: pack() wywoływana na rzecz kontenera; wywołuje metody układania komponentów przez zarządców rozkładu (Layout Managers) dla wszystkich kontenerów w hierarchii zawierania się komponentów w oknie revalidate() wywoływana na rzecz zmienionego komponentu, którego rozmiary uległy zmianie; jej wywołanie powoduje ponowne ułożenie komponentów w kontenerze przez zarządcę rozkładu repaint() wywoływana na rzecz zmienionego komponentu, którego rozmiary uległy zmianie; uwidacznia zmiany wynikające z wcześniejszego wywołania revalidate()

36 GUI w Swing rozkłady Menadżerowie rozkładu ingerują w rozkład komponentów w obszarze Content Pane okna a nie w całym oknie. Proste rozkłady: FlowLayout BorderLayout GridLayout Złożone rozkłady: GridBagLayout elastyczny ale trudny w użyciu CardLayout rzadko się przydaje GroupLayout stosowany w edytorach GUI

37 GUI w Swing rozkłady Najbardziej przydatne rozkłady z biblioteki Swing: BoxLayout prosty i bardzo elastyczny Bardzo przydatne rozkłady opracowane poza Swingiem: TableLayout MigLayout Można albo pisać własne Layout Managery, albo wyłączyć je i ustawiać kontrolki ręcznie: kontener.setlayout(null); setbounds(x,y,w,h), gdzie x, y - współrzędne położenia komponentu, w,h - szerokość i wysokość.

38 GUI w Swing rozkłady W celu zapewnienia atrakcyjnego wyglądu GUI w praktyce układa się za pomocą jednych rozkładów panele zagnieżdżając je w sobie, a dopiero w nich umieszcza się w różnych rozkładach kontrolki.

39 GUI w Swing wielowątkowość Tworzenie i odwoływanie się do komponentów Swingu (odczytywanie i zmiana ich właściwości) winno odbywać się wyłącznie w wątku obsługi zdarzeń. Wątek zdarzeń należy wykorzystać we własnej aplikacji za pomocą metod zdefiniowanych w java.awt.eventqueue ale dostępnych również z poziomu javax.swing.swingutilities: SwingUtilities.invokeLater() kod implementacji interfejsu Runnable zostanie przekazany do wykonania wątkowi obsługi zdarzeń, a wykonanie bieżącego wątku będzie kontynuowane SwingUtilities.invokeAndWait() j.w., ale wykonanie bieżącego wątku zostanie wstrzymane do chwili wykonania przekazanego kodu przez wątek obsługi zdarzeń

40 GUI w Swing wielowątkowość Przyjmuje się zasadę, że wszelkie działania na GUI (tworzenie komponentów, dodawanie komponentów do kontenerów, ustalanie właściwości komponentów wizualnych) winny być wykonywane w wątku obsługi zdarzeń. Możliwe jest też stosowanie osłabionej wersji powyższej zasady Swingu - dopiero po realizacji komponentów - czyli spakowaniu i/lub uwidocznieniu okna - wszelkie na nich działania muszą odbywać się w wątku obsługi zdarzeń, jednak nie jest to dobra praktyka ze względu na brak gwarancji poprawnego działania. UWAGA: w przykładzie załączonym do poprzedniego wykładu skorzystano oczywiście z zasady Swingu w poprawnej postaci. Z kodu przekazanego do wątku obsługi zdarzeń nie wolno wywoływać metody invokeandwait(), gdyż zablokuje to GUI.

41 GUI w Swing - komponenty Cechy wspólne komponentów Swing: są komponentami lekkimi o niezależnym od platformy systemowej wyglądzie (ale zależnym od dobieranych przez programistę ustaleń - "Look and Feel") możemy ustalać czy mają być przezroczyste, czy nie, istnieje możliwość zewnętrznego ustalania ich preferowanych, maksymalnych i minimalnych rozmiarów (metody setpreferredsize, setmaximumsize, setminimumsize), oraz ich wyrównania względem innych komponentów (metody setalignmentx, setalignmenty) mogą mieć ramki o dowolnie ustalanej formie (klasa BorderFactory), mogą mieć podpowiedzi ( "dymki" pomocy - fly-over help, tooltips) mogą być uaktywniane z klawiatury (operowanie na GUI za pomocą klawiatury, nie tylko myszki) mogą mieć przypisaną dodatkową informację (w postaci tablicy asocjacyjnej, kojarzącej obiekty-klucze i obiekty-wartości)

42 GUI w Swing - komponenty Przykład zawansowanych możliwości tworzenia ramek złożonych z kilku: comp.setborder( BorderFactory.createCompoundBorder( BorderFactory.createLineBorder(Color.blue), comp.getborder()); Można tworzyć własne ramki implementując metody paintborder() i getborderinsets() we własnej klasie dziedziczącej z AbstractBorder.

43 GUI w Swing komponenty Podpowiedzi: JButton b = new JButton("Commit"); b.settolltiptext("zapisz zmiany w bazie danych"); Tekst podpowiedzi może być napisem HTML.

44 GUI w Swing komponenty Ikony: Mogą zostać pobrane metodą getimage() z pliku graficznego zapisanego w jednym z następujących formatów: GIF, JPG/JPEG, PNG lub mogą zostać narysowane metodą painticon().

45 GUI w Swing - komponenty Przyciski Dostępne są następujące rodzaje: JButton JToggleButton (też nadklasa dla kolejnych dwóch) JCheckBox JradioButton Do grupowania przycisków typu "radio" (a więc wzajemnie wykluczających się zaznaczeń) służy klasa ButtonGroup. Po stworzeniu obiektu tej klasy, za pomocą metody add dodajemy do niego przyciski JRadioButton. Od tej chwili tylko jeden z dodanych przycisków może być aktualnie "zaznaczony". Uwaga: ButtonGroup nie jest kontenerem!

46 GUI w Swing komponenty Dla każdego rodzaju przycisku za pomocą metody setmnemonic(int c); możemy ustalić mnemonikę czyli literę (znak), który wciśnięty wraz z klawiszem alt spowoduje "kliknięcie" w przycisk. Znak ten jest podkreślony w tekście na przycisku.

47 GUI w Swing menu Hierarchia klas menu pokazana została na następnym slajdzie

48

49 GUI w Swing menu Możliwości dodawania skrótów klawiszowych do menu: setmnemonic(int) obsługuje pojedynczy klawisz skrótu setaccelerator(keystroke) obsługuje sekwencje klawiszy Istnieje też możliwość dodawania kleju pomiędzy elementy menu w celu rozsuwania ich pozycji, np. przesunięcia pozycji Help w menu bar do prawej strony. Można również modyfikować layout menu, gdyż jest ono kontenerem(!).

50 GUI w Swing okna Wszystkie okna w Swing, jako jedyny rodzaj komponentów są komponentami ciężkimi (z wyjątkiem lekkiego JInternalFrame). Struktura okna:

51

52 GUI w Swing okna Kontener layeredpane umożliwia operowanie warstwami komponentów. Są dwa rodzaje uporządkowania: warstw, głębokość których określa obiekt typu Integer (numer warstwy). Im wyższy numer, tym warstwa bliższa przedniego planu (Z-order), Np. komponent dodany do warstwy 1 będzie zasłaniany przez komponent dodany do warstwy 2 pozycji komponentów (na osi Z) umieszczonych w jednej warstwie; tutaj porządek jest odwrotny: komponent o wyższej pozycji jest przykrywany przez komponent o niższej pozycji Można też używać własnych warstw i dodawać do nich komponenty.

53 GUI w Swing okna Odniesienie do kontenera layeredpane okna frame możemy uzyskać poprzez: JLayeredPane lp = frame.getlayeredpane(); Dodanie komponentu comp do warstwy n (liczba całkowita): lp.add(comp, new Integer(n)); Dodanie komponentu comp do warstwy n na pozycji m (liczba całkowita): lp.add(comp, new Integer(n), m); Oprócz tego dostępne są metody klasy JLayeredPane, które dynamicznie zmieniają położenie komponentów w ramach warstwy i pomiędzy warstwami: lp.movetofront(comp) lp.movetoback(comp); lp.setlayer(comp, n); lp.setlayer(comp, n, m);

54 GUI w Swing okna Szyba Jest zawarta w rootpane i przykrywa cały rootpane. Domyślnie jest niewidoczna. Można ją jednak uaktywnić poprzez uwidocznienie: Component g = frame.getglasspane(); g.setvisible(true); Po uwidocznieniu oddziela ona nas od okna. Operacje możliwe do wykonywania na szybie: przechwytywanie zdarzeń wejściowych (mysz i klawiatura) rysowanie

55 GUI w Swing okna Można też stworzyć własną szybę, co jest szczególnie użyteczne, gdy na szybie chcemy coś rysować. Wtedy utworzoną przez nas szybę podstawiamy na miejsce standardowej za pomocą metody: setglasspane()

56 GUI w Swing okna Okna wewnętrzne (JInternalFrame) są lekkimi komponentami o funkcjonalności okien ramowych. Podstawowe różnice wobec zwykłych okien ramowych (JFrame): niezależny od platformy wygląd, muszą być dodawane do innych kontenerów, dodatkowe możliwości programistyczne (np. dynamicznych zmian właściwości takich jak możliwość zmiany rozmiaru, możliwość maksymalizacji itp.). Ponieważ okna wewnętrzne zawarte są zawsze w jakimś kontenerze, to stanowią one okna na wirtualnym pulpicie (nie mogą "wyjść" poza pulpit). Pulpitem (kontenerem zawierającym okna wewnętrzne) jest zwykle obiekt typu JDesktopPane, choć może to być i jakiś inny kontener.

57 GUI w Swing okna Okna klasy JInternalFrame nie generują zdarzeń typu WindowEvent. Zamiast tego dostępne są zdarzenia typu InternalFrameEvent, a do ich obsługi służą metody z interfejsu InternalFrameListener

58 GUI w Swing kontenery Każdy komponent Swing jest jednocześnie kontenerem. Nie należy jednak nadużywać możliwości traktowania wszystkich komponentów Swingu jako kontenerów. Swing dostarcza bowiem lepszych sposobów grupowania komponentów w wyspecjalizowanych panelach: JPanel - najprostszy panel, różniący się od panelu AWT tym, że jest J- komponentem (ze wszystkimi, omawianymi wcześniej konsekwencjami) JSplitPane - panel składających się z dwóch rozdzielonych paskiem podziału części, w których mogą być umieszczone dowolne komponenty (w tym oczywiście - kontenery) JTabbedPane - panel z zakładkami. Każda z zakładek daje dostęp do innego komponentu (zwykle kontenera) po kliknięciu w zakładkę wypełniającego cały panel, JScrollPane - panel przewijany, z suwakami; odpowiednik ScrollPane z AWT, ale o rozbudowanych możliwościach, JToolBar - pasek narzędzi, zawierający dowolne komponenty (zwykle przyciski obrazkowe)

59 GUI w Swing kontenery JTabbedPane Panel zakładkowy udostępnia zakładki (tekst, tekst i ikona lub sama ikona, możliwe jest również ustalenie jako zakładki dowolnego komponentu). Z każdą zakładką związany jest inny komponent, który po kliknięciu w zakładkę wypełnia panel. Zakładki mogą być ulokowane u góry, u dołu, po lewej lub po prawej stronie panelu. JScrollPane Komponenty mogące mieć paski przewijania powinny zostać umieszczone w kontenerze JScroll Pane, aby ich paski przewijania zostały uwidocznione. JScrollPane ma złożoną budowę - zarządza aż dziewięcioma komponentami.

60 GUI w Swing Zakład Inżynierii Oprogramowania JToolbar Od zwykłych kontenerów JToolBar różni się tym, że: może być przesywany myszką i doczepiany do dowolnego brzegu okna lub całkiem od okna odczepiony (właściwość "floatable") można do niego dodać separator za pomocą metody addseparator, można do niego dodawać obiekty typu Action (metoda add(action a)) ma domyślny rozkład BoxLayout.

61 GUI w Swing akcje Jeśli mamy kilka komponentów (np. przycisk na pasku narzędzi, element menu rozwijalnego lub element menu kontekstowego), które powinny mieć tę samą funkcjonalność, to możemy w łatwy sposób, jednokrotnie, funkcjonalność tę zdefiniować i łatwo przypisać ją tym komponentom. Służą do tego obiekty implementujące interfejs Action. Atrakcyjność obiektu-akcji polega na tym, iż po jego utworzeniu może on być równolegle dodany: do paska narzędzi (klasa JToolBar ma metodę add(action)), do menu rozwijalnego (klasa JMenu ma metodę add(action)), do menu kontekstowego

62 GUI w Swing akcje Mapy akcji i mapy klawiaturowe są bardziej ogólnym mechanizmem wiązania skrótów klawiszowych z akcjami (za pomocą nazw) niż mechanizmy omówione wcześniej (KeyListener, mnemoniki, akceleratory).

63 GUI w Swing akcje

64 GUI w Swing akcje Mapę klawiaturową J-komponentu comp można uzyskać za pomocą odwołania: InputMap imap = comp.getinputmap(int rodzaj); gdzie: rodzaj - rodzaj mapy: WHEN_FOCUSED, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN _IN_FOCUSED_WINDOW. Mapę akcji komponentu comp można uzyskać poprzez: ActionMap amap = comp.getactionmap(); Można też użyć odpowiednich metod setinputmap(...) i setactionmap(...). do ustalania map dla komponentów. Mapowanie odbywa się za pomocą wywołań metody: put(keystroke, Object)

65 GUI w Swing akcje Aby uzyskać obiekt klasy KeyStroke, reprezentujący skrót klawiaturowy stosujemy statyczmną metodę tej klasy: KeyStroke getkeystroke(string) której argumentem jest napis, oznaczający skrót klawiaturowy, np. "control D". Wiązanie odbywa się za pomocą wywołań metody: put(object, Action)

66 GUI w Swing obieralny wygląd W Swing można dynamicznie ustalać wygląd i zachowanie. Zarządzaniem wyglądem komponentów zajmuje się klasa UIManager. Można też korzystać z gotowych menadżerów wyglądu oferowanych poza Swingiem, np. : JGoodies elegancki UIManager.setLookAndFeel( "com.jgoodies.looks.plastic.plasticxplookandfeel"); Substance bardzo elastyczny i konfigurowalny UIManager.setLookAndFeel(new SubstanceLookAndFeel()); SubstanceLookAndFeel.setCurrentTheme(new SubstanceSteelBlueTheme()); Nimbus bardzo elegancki UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");

67 GUI w Swing integracja z pulpitem Istnieje możliwość integrowania aplikacji desktopowej Java opartej o Swing z pulpitami systemów operacyjnych. Rozwiązani te nie zostaną jednak tu omówione.

68 GUI w Swing czynności długotrwałe Czynności długotrwałe realizowane z poziomu GUI w Swing mogą być długotrwałe. Ich normalne wykonanie w wątku obsługi zdarzeń zablokowałoby możliwość korzystania z GUI na czas wykonania tych czynności. Długotrwałe czynności nie mogą być wykonywane w wątku obsługi zdarzeń (Event Dispatching Thread - EDT). Do rozwiązywania tych problemów służy klasa SwingWorker. Klasę tę wykorzystuje się przez dziedziczenie z niej. Dostępne metody: doinbackground() execute() done() get()

69 GUI w Swing czynności długotrwałe Klasa ta pozwala również uzyskiwać wyniki pośrednie długotrwałych operacji, co pozwala na aktualizowanie danych w GUI w celu wizualizacji postępów w wykonywaniu długotrwałego zadnia.

70 GUI w Swing MVC Architektura Swinga jest oparta o wzorzec architektoniczny MVC (Model-View-Controler). Zastosowanie tego wzorca służy m.in. ułatwieniu wprowadzania zmian do kodu źródłowego dzięki ograniczeniu zasięgu tych zmian. W ramach tego wzorca: model - określa dane związane z komponentem lub stany komponentu, widok (view) - określa wizualną reprezentację danych lub stanów, sterownik (controller) - zapewnia interakcję użytkownika z widokiem i wynikające stąd modyfikacje modelu.

71 GUI w Swing MVC W implementacji Swinga wprowadzono jednak pewne dodatkowe założenie ograniczające elastyczność podejścia oferowanego przez MVC, mianowicie połączono widok z kontrolerem za pomocą delegacji (delegacja jest prostym mechanizmem obiektowym polegającym na przeniesieniu części zobowiązań z obiektu do obiektu w nim agregowanego innymi słowy delegowanie oznacza stosowanie relacji agregacji). Obiekt ten to tzw. delegat UI. Zatem w Swing odseparowano model od delegatów UI. Wyróżnia się dwa typy modelu dla komponentów Swing: modele GUI - interfejsy definiujące wizualne stany komponentów, np. przycisk wciśnięty lub zaznaczenie elementu na liście, modele danych - interfejsy reprezentujące dane takie jak np. wartość komórki w tabeli lub elementu listy

72 GUI w Swing MVC Dostęp do modelu w ramach komponentu Swing dają metody: getmodel() setmodel()

73 GUI w Swing MVC JList Klasa ta implementuje oba interfejsy modelu: GUI i danych. Do tej pory działaliśmy na tym komponencie statycznie jak na liście (zamknięty zbiór danych). Jednak czasem potrzebne jest skorzystanie z modelu danych: jeśli chcemy w sposób niestandardowy (nie sprowadzający się do użycia tablic lub wektorów) określić zawartość listy - winniśmy stworzyć własny model danych jeśli chcemy mieć listę dynamiczną tzn. zmieniającą swoją zawartość - możemy stworzyć własny model lub posłużyć się modelem implementowanym w klasie DefaultListModel

74 GUI w Swing MVC Model danych dla listy jest określany przez interfejs ListModel, abstrakcyjna klasa AbstractListModel implementuje ten interfejs, pozostawiając do zdefiniowania w klasach pochodnych dwie ważne metody: Object getelementat(int i) - zwraca i-ty element modelu (element listy) int getsize() - zwraca liczbę elementów listy

75 GUI w Swing MVC Przykład powiązania modelu z kontrolerem: AbstractListModel listmodel = } new AbstractListModel() { public Object getelementat(int i) {} int getsize() {} Możliwości powiązania modelu z komponentem: JList list = new JList(); list.setmodel(listmodel); albo: JList list = new JList(listModel);

76 GUI w Swing MVC Komunikacja model-widok Zasady: Wszelkie zmiany (które ew. będą uwidocznione w widoku) muszą być dokonywane jako zmiany w modelu danych O każdej zmianie model musi powiadamiać zainteresowanych słuchaczy, kreując odpowiednie zdarzenia za pomocą metod fire...; zdarzenia te będą przekazywane do odpowiednich delegatów

77 GUI w Swing MVC Komunikacja model-widok dla JList Rodzaje modeli danych: model automatyczny, tworzony w konstruktorach, które nie mają modelu jako argumentu model domyślny (DefaultListModel) przygotowana klasa, która ułatwia tworzenie dynamicznych list modele własne Model automatyczny nie pozwala na automatyczne uwidacznianie zmian modelu w widoku. Oby uniknąć tego ograniczenia należy utworzyć własny model.

78 GUI w Swing MVC Zdarzenia zmian modelu należą do klasy ListDataEvent i mają następujące charakterystyki: typ (zapytanie gettype()): przedział indeksów dodany, przedział indeksów usunięty, zmiana zawartości dolny indeks przedziału (zapytanie getindex0()) górny indeks przedziału (zapytanie getindex1())

79 GUI w Swing MVC Do nasłuchu zmian w modelu służy interfejs ListDataListener, który udostępnia trzy metody: intervaladded(listdataevent e) intervalremoved(listdataevent e) contentschanged(listdataevent e) Klasa AbstractListModel definiuje trzy zabezpieczone metody, służące do powiadamiania słuchaczy o zmianach w modelu: protected void fireintervaladded(object source, int index0, int index1) protected void fireintervalremoved(object source, int index0, int index1) protected void firecontentschanged(object source, int index0, int index1) Metody te generują zdarzenia ListDataEvent z odpowiednimi charakterystykami i rozsyłają te zdarzenia do wszystkich zarejestrowanych słuchaczy.

80 GUI w Swing MVC Przykład tworzenia własnego modelu: Zbyt skomplikowany na slajdy, daje możliwość zrealizowania szerokiego spektrum funkcjonalności, ale rzadko jest potrzebny.

81 GUI w Swing MVC Realizowanie własnego modelu jest dość kłopotliwe. Dlatego twórcy Swinga wbudowali w tę bibliotekę klasę DefaultListModel. Sposób korzystania: DefaultListModel lm = new DefaultListModel(); JList list = new JList(lm); lm.addelement(...)

82 GUI w Swing MVC Nasłuch zmian modelu Istnieją dwa typy interfejsów nasłuchu: ChangeListener, który nasłuchuje zdarzeń typu ChangeEvent. Można z niego jedynie uzyskać informację o źródle zmiany (getsource), ale nie o jej charakterze trzeba odpytywać model. wyspecjalizowane interfejsy, które obsługują zdarzenia zawierające informacje o konkretnych zmianach modelu (wiele typów interfejsów nasłuchu oraz zdarzeń, specyficznych dla konkretnych modeli).

83 GUI w Swing MVC JComboBox Klasa JComboBox ma dwie przyjemne właściwości: pozwala na selekcję elementów listy poprzez wciskanie klawiszy oznaczających pierwsze litery napisów, oraz umożliwia dynamiczne zmiany zawartości listy bez bezpośredniego użycia modelu danych z nią związanych. Mimo to model może być nadal przydatny. Można go np. wykorzystać do odsiewania duplikatów z listy.

84 GUI w Swing MVC Wykreślacze (Renderers) Służą do rysowania komponentu, ale jedynie jako widok bez funkcjonalności.

85 GUI w Swing MVC JTable Komponent ten należy do najbardziej rozbudowanych. Prosty przykład: Object[][] dane = { {"Kowalski", "Jan", new Integer(30), new Boolean(true) }, { Jankowski", "Jan", new Integer(20), new Boolean(false) },... }; Object[] nazwykolumn = { }; "Nazwisko", "Imię", "Wiek", "Urlop wykorzystany?" JTable tab = new JTable(dane, nazwykolumn); JScrollPane sp = new JScrollPane(tab);

86 GUI w Swing MVC Każda tabela jest związana z trzema modelami: modelem danych - obiektem klasy implementującej interfejs TableModel, modelem kolumn - TableColumnModel, modelem selekcji - znany już interfejs ListSelectionModel. Zróżnicowanie modeli związane jest m.in. z potrzebą zapewnienia braku zgodności kolejności kolumn w modelu danych z ich kolejnością w widoku. Tabela może zawierać dowolne obiekty i wyświetlać w komórkach dowolne komponenty.

87 GUI w Swing MVC Klasa TableColumn zawiera metody określające właściwości kolumn tabeli. Z każdą kolumną - obiektem TableColumn - skojarzony jest: nagłówek, wykreślacz komórek (obiekt typu TableCellRenderer) edytor komórek (obiekt typu TableCellEditor) wykreślacz nagłówka. Pewne typy danych mają ustalone domyślne wykreślacze i edytory.

88 GUI w Swing MVC JTree Klasa JTree zapewnia hierarchiczne obrazowanie danych w postaci drzewa. W drzewach - podobnie jak w tabelach - mamy do czynienia: z modelem danych (klasy implementujące interfejs TreeMedel; domyślna implementacja DefaultTreeModel pozwala modyfikować drzewo przez modyfikacje modelu danych) z modelem selekcji węzłów (TreeSelectionModel) z nasłuchem zdarzeń selekcji (TreeSelectionListener) z wykreślaczami komórek (TreeCellRenderer) z edytorami komórek (TreeCellEditor).

89 GUI w Swing MVC Komponenty tekstowe Są to najbardziej rozbudowane komponenty Swinga. Uważa się, że pozwalają one na tworzenie dowolnie złożonych rozwiązań. Na kolejnym slajdzie pokazano hierarchię tych komponentów.

90

91 GUI w Swing MVC W tej złożonej architekturze można wyróżnić: model danych - reprezentowany przez obiekty klasy implementujących interfejs Document; model danych opisuje zawartość dokumentu widok - który zarządza uwidaczanianiem dokumentu i jego fragmentów (widoki są produkowane przez podklasy klasy View; pośredniczą pomiędzy modelem danych a widokami "niskiego poziomu" związanymi z delegatami UI) kontroler - edytor, który dostarcza możliwości edycyjnych oraz odczytu/zapisu dokumentów z/do strumieni. Edytory są obiektami klas dziedziczących klasę EditorKit powiązania pomiędzy klawiszami i akcjami edycyjnymi; interfejs KeyMap wiąże klawisze (obiekty typu KeyStroke) z obiektami typu Action; jest to alternatywny wobec ogólnego modelu akcji klawiaturowych (ActionMap i InputMap, o których mowa była w wykładzie 11) sposób tworzenia. modyfikacji i użycia klawiszy edycyjnych; model ogólny jest obecnie preferowany menedżer cofania (undo) i przywracania (redo) edycji (UndoManager), pozwalający łatwo realizować właściwości undo-redo kursor tekstowy - realizowany przez interfejs Caret; może być dowolnie dostosowywany jeśli chodzi o wygląd poprzez odpowiednią implementację tego interfejsu podświetlacze - realizowane przez interfejs Highliter; klasy implementujące ten interfejs określają sposoby zaznaczania różnych fragmentów dokumentu

92 GUI w Swing MVC Z komponentami tekstowymi wiążą się również nowe zdarzenia i nowe interfejsy nasłuchu: DocumentListener umożliwia śledzenie i reagowanie na zmiany w dokumencie (zdarzenie typu DocumentEvent) CaretListener pozwala śledzić zmiany pozycji kursora tekstowego (CaretEvent) UndoableEditionListener umożliwia kompletowanie dokonanych edycji (poprawek) i przygotowanie UndoManagera do ich cofania (a po cofnięciu - przywracania)

93 GUI w Swing Zakład Inżynierii Oprogramowania Istnieje możliwość tworzenia GUI z plików zasobów (property files lub XML), ale jest ona wspierana przez zewnętrzne narzędzia. Zaletą jest mniej kodu po stronie GUI i możliwość skupienia się w nim na obsłudze zdarzeń. Przykład narzędzia działającego w ten sposób: Czy w NetBeans też tak się da?

94 GUI w Swing MVC Architektura Swing jest zgodna z wzorcem architektonicznym (należy odróżniać tę kategorię wzorców od wzorców projektowych) MVC (Model-View_Controler). W ramach tego wzorca warstwa prezentacji może być zależna od warstwy kontrolerów jak i od warstwy danych. Jednocześnie warstwa kontrolerów zależy od warstwy danych. Innych zależności w tym wzorcu nie ma. Są jednak znane wzorce architektoniczne lepsze pod względem możliwości wprowadzania, np. MVP (Model-View-Presenter) wolny od zależności warstwy prezentacji od warstwy danych.

95 GUI w Swing MVC Testowanie Wykorzystanie wzorca MVC nadaje nie tylko ramy implementacji ale wprowadza też możliwości uporządkowania podejścia do testowania oprogramowania. Można w ramach tego wzorca wykonywać następujące testy: Testy jednostkowe Testy elementów warstwy danych (klas encyjnych w UML stereotyp <<entity>>) Testy elementów warstwy kontrolerów (klas kontrolerów w UML stereotyp <<control>>)

96 GUI w Swing Zakład Inżynierii Oprogramowania Testy funkcjonalne Są to tylko i wyłącznie testy API warstwy kontrolerów Testy integracyjne - weryfikują one poprawność komunikacji pomiędzy warstwami: Danych i kontrolerów Prezentacji i kontrolerów Prezentacji i danych Testy GUI są to testy wykonywane na obiektach biblioteki Swing Warto pamiętać, że testy te są zwykle wykonywane kolejnymi kategoriami w takiej kolejności jak zostało to przedstawione powyżej ze względu na zależności pomiędzy ich rodzajami i czas ich wykonania.

97 GUI w Swing Zakład Inżynierii Oprogramowania Narzędzia testujące GUI w Swing z poziomu Eclipse: FEST -Swing Jubula functional testing tools (wraz z GUI Dancer) UISpec4J Google Window Tester Pro GUI Tester Maveryx Aktualny przegląd i charakterystyka niektórych narzędzi:

98 Koniec

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1 Wyższa Szkoła Ekologii i Zarządzania Informatyka Arkusz kalkulacyjny 2010 dla WINDOWS cz. 1 Slajd 1 Slajd 2 Ogólne informacje Arkusz kalkulacyjny podstawowe narzędzie pracy menadżera Arkusz kalkulacyjny

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

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

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

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

Aplikacje w Javie wykład 12 Programowanie GUI

Aplikacje w Javie wykład 12 Programowanie GUI Aplikacje w Javie wykład 12 1 Programowanie GUI Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/ C.

Bardziej szczegółowo

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1 Wyższa Szkoła Ekologii i Zarządzania Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1 Slajd 1 Excel Slajd 2 Ogólne informacje Arkusz kalkulacyjny podstawowe narzędzie pracy menadżera Arkusz

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

Celem ćwiczenia jest zapoznanie się z podstawowymi funkcjami i pojęciami związanymi ze środowiskiem AutoCAD 2012 w polskiej wersji językowej.

Celem ćwiczenia jest zapoznanie się z podstawowymi funkcjami i pojęciami związanymi ze środowiskiem AutoCAD 2012 w polskiej wersji językowej. W przygotowaniu ćwiczeń wykorzystano m.in. następujące materiały: 1. Program AutoCAD 2012. 2. Graf J.: AutoCAD 14PL Ćwiczenia. Mikom 1998. 3. Kłosowski P., Grabowska A.: Obsługa programu AutoCAD 14 i 2000.

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

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

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

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3 Wyższa Szkoła Ekologii i Zarządzania Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3 Slajd 1 Slajd 2 Numerowanie i punktowanie Automatyczne ponumerowanie lub wypunktowanie zaznaczonych akapitów w

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

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3 Wyższa Szkoła Ekologii i Zarządzania Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3 Slajd 1 Slajd 2 Numerowanie i punktowanie Automatyczne ponumerowanie lub wypunktowanie zaznaczonych akapitów w

Bardziej szczegółowo

Graphic User Interfaces pakiet Swing

Graphic User Interfaces pakiet Swing Graphic User Interfaces pakiet Swing Streszczenie Celem wykładu jest zaprezentowanie podstaw tworzenia graficznych interfejsów przy użyciu pakietu Swing. Czas wykładu 90 minut. Można śmiało stwierdzić,

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

I. Spis treści I. Spis treści... 2 II. Kreator szablonów... 3 1. Tworzenie szablonu... 3 2. Menu... 4 a. Opis ikon... 5 3. Dodanie nowego elementu...

I. Spis treści I. Spis treści... 2 II. Kreator szablonów... 3 1. Tworzenie szablonu... 3 2. Menu... 4 a. Opis ikon... 5 3. Dodanie nowego elementu... Kreator szablonów I. Spis treści I. Spis treści... 2 II. Kreator szablonów... 3 1. Tworzenie szablonu... 3 2. Menu... 4 a. Opis ikon... 5 3. Dodanie nowego elementu... 7 a. Grafika... 7 b. Tekst... 7 c.

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

Słowa kluczowe Sterowanie klawiaturą, klawiatura, klawisze funkcyjne, przesuwanie obiektów ekranowych, wydawanie poleceń za pomocą klawiatury

Słowa kluczowe Sterowanie klawiaturą, klawiatura, klawisze funkcyjne, przesuwanie obiektów ekranowych, wydawanie poleceń za pomocą klawiatury Obsługa za pomocą klawiatury Różnego typu interfejsy wykorzystują różne metody reagowania i wydawania poleceń przez użytkownika. W środowisku graficznym najpopularniejsza jest niewątpliwie mysz i inne

Bardziej szczegółowo

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.1

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.1 Wyższa Szkoła Ekologii i Zarządzania Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.1 Slajd 1 Uruchomienie edytora Word dla Windows otwarcie menu START wybranie grupy Programy, grupy Microsoft Office,

Bardziej szczegółowo

1. Umieść kursor w miejscu, w którym ma być wprowadzony ozdobny napis. 2. Na karcie Wstawianie w grupie Tekst kliknij przycisk WordArt.

1. Umieść kursor w miejscu, w którym ma być wprowadzony ozdobny napis. 2. Na karcie Wstawianie w grupie Tekst kliknij przycisk WordArt. Grafika w dokumencie Wprowadzanie ozdobnych napisów WordArt Do tworzenia efektownych, ozdobnych napisów służy obiekt WordArt. Aby wstawić do dokumentu obiekt WordArt: 1. Umieść kursor w miejscu, w którym

Bardziej szczegółowo

Zadanie 1. Stosowanie stylów

Zadanie 1. Stosowanie stylów Zadanie 1. Stosowanie stylów Styl to zestaw elementów formatowania określających wygląd: tekstu atrybuty czcionki (tzw. styl znaku), akapitów np. wyrównanie tekstu, odstępy między wierszami, wcięcia, a

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

Programowanie w środowisku graficznym- wykład 9 Programowanie GUI cz1

Programowanie w środowisku graficznym- wykład 9 Programowanie GUI cz1 1 Programowanie w środowisku graficznym- wykład 9 Programowanie GUI cz1 Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 http://docs.oracle.com/javase/8/docs/

Bardziej szczegółowo

BAZY DANYCH Formularze i raporty

BAZY DANYCH Formularze i raporty BAZY DANYCH Formularze i raporty Za pomocą tabel można wprowadzać nowe dane, przeglądać i modyfikować dane już istniejące. Jednak dla typowego użytkownika systemu baz danych, przygotowuje się specjalne

Bardziej szczegółowo

Ćwiczenia 9 - Swing - część 1

Ćwiczenia 9 - Swing - część 1 Ćwiczenia 9 - Swing - część 1 Utwórz nowy projekt wybierając: File->New Project->Java Application, przy czym odznacz opcję Create Main Class. Kliknij prawym przyciskiem myszy na podfolder Source Packages

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

1. Przypisy, indeks i spisy.

1. Przypisy, indeks i spisy. 1. Przypisy, indeks i spisy. (Wstaw Odwołanie Przypis dolny - ) (Wstaw Odwołanie Indeks i spisy - ) Przypisy dolne i końcowe w drukowanych dokumentach umożliwiają umieszczanie w dokumencie objaśnień, komentarzy

Bardziej szczegółowo

Edytor tekstu MS Office Word

Edytor tekstu MS Office Word Edytor tekstu program komputerowy ukierunkowany zasadniczo na samo wprowadzanie lub edycję tekstu, a nie na nadawanie mu zaawansowanych cech formatowania (do czego służy procesor tekstu). W zależności

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

Edytor tekstu MS Word 2003 - podstawy

Edytor tekstu MS Word 2003 - podstawy Edytor tekstu MS Word 2003 - podstawy Cz. 4. Rysunki i tabele w dokumencie Obiekt WordArt Jeżeli chcemy zamieścić w naszym dokumencie jakiś efektowny napis, na przykład hasło reklamowe, możemy wykorzystać

Bardziej szczegółowo

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI LABORATORIUM TECHNOLOGIA SYSTEMÓW INFORMATYCZNYCH W BIOTECHNOLOGII Aplikacja bazodanowa: Cz. II Rzeszów, 2010 Strona 1 z 11 APLIKACJA BAZODANOWA MICROSOFT ACCESS

Bardziej szczegółowo

Nr: 15. Tytuł: Kancelaris w systemie Windows 8 i Windows 8.1. Data modyfikacji:

Nr: 15. Tytuł: Kancelaris w systemie Windows 8 i Windows 8.1. Data modyfikacji: Nr: 15 Tytuł: Kancelaris w systemie Windows 8 i Windows 8.1 Data modyfikacji: 2013-10-25 Co zawiera ten dokument: Ten dokument opisuje elementy systemu Windows 8 i Windows 8.1 powiązane z programem Kancelaris.

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

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface) Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface) 1. Udostępnianie wszystkich prywatnych atrybutów do prezentacji, wprowadzenie standardu nazewnictwa plików nazwy plików

Bardziej szczegółowo

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia nowego projektu (poniżej są utworzone projekty) Po kliknięciu

Bardziej szczegółowo

Kurs programowania 2 - listy

Kurs programowania 2 - listy Kurs programowania 2 - listy Listy rozwijane (ComboBox) Listy rozwijane (rozwijalne) można tworzyć przy użyciu klasy ComboBox. W tabeli poniżej właściwości udostępniane przez tę kontrolkę. Najważniejsza

Bardziej szczegółowo

Edytor tekstu OpenOffice Writer Podstawy

Edytor tekstu OpenOffice Writer Podstawy Edytor tekstu OpenOffice Writer Podstawy OpenOffice to darmowy zaawansowany pakiet biurowy, w skład którego wchodzą następujące programy: edytor tekstu Writer, arkusz kalkulacyjny Calc, program do tworzenia

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

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM 1.1. PODSTAWOWE INFORMACJE PC to skrót od nazwy Komputer Osobisty (z ang. personal computer). Elementy komputera można podzielić na dwie ogólne kategorie: sprzęt - fizyczne

Bardziej szczegółowo

Tworzenie okna dialogowego w edytorze raportu SigmaNEST. część 1

Tworzenie okna dialogowego w edytorze raportu SigmaNEST. część 1 Tworzenie okna dialogowego w edytorze raportu SigmaNEST część 1 Edytor raportu SigmaNEST to wszechstronne narzędzie umożliwiające zarówno dostosowanie każdego raportu pod specyficzne oczekiwania klienta,

Bardziej szczegółowo

ROZDZIAŁ I. BUDOWA I FUNKCJONOWANIE KOMPUTERA PC

ROZDZIAŁ I. BUDOWA I FUNKCJONOWANIE KOMPUTERA PC Spis treści WSTĘP ROZDZIAŁ I. BUDOWA I FUNKCJONOWANIE KOMPUTERA PC 1.1. Elementy budowy fizycznej mikrokomputera 1.1.1. Jednostka centralna 1.1.2. Urządzenia wejściowe 1.1.3. Urządzenia wyjściowe 1.2.

Bardziej szczegółowo

Visual Studio instalacja

Visual Studio instalacja Visual Studio 2017 - instalacja Do tej pory napisaliśmy wiele programów, z czego niemal wszystkie były aplikacjami konsolowymi. Najwyższy więc czas zająć się tworzeniem aplikacji z graficznym interfejsem

Bardziej szczegółowo

Adobe InDesign lab.1 Jacek Wiślicki, Paweł Kośla. Spis treści: 1 Podstawy pracy z aplikacją Układ strony... 2.

Adobe InDesign lab.1 Jacek Wiślicki, Paweł Kośla. Spis treści: 1 Podstawy pracy z aplikacją Układ strony... 2. Spis treści: 1 Podstawy pracy z aplikacją... 2 1.1 Układ strony... 2 strona 1 z 7 1 Podstawy pracy z aplikacją InDesign jest następcą starzejącego się PageMakera. Pod wieloma względami jest do niego bardzo

Bardziej szczegółowo

Systemy operacyjne na platformach mobilnych

Systemy operacyjne na platformach mobilnych Systemy operacyjne na platformach mobilnych Wykład 2 Grzegorz Jabłoński, Piotr Perek Katedra Mikroelektroniki i Technik Informatycznych Zagadnienia wykładu Interfejs użytkownika Activity Views Resources

Bardziej szczegółowo

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej. Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej. Dział Zagadnienia Wymagania podstawowe Wymagania ponadpodstawowe Arkusz kalkulacyjny (Microsoft Excel i OpenOffice) Uruchomienie

Bardziej szczegółowo

Aktywności są związane z ekranem i definiują jego wygląd. Dzieje się to poprzez podpięcie do aktywności odpowiedniego widoku.

Aktywności są związane z ekranem i definiują jego wygląd. Dzieje się to poprzez podpięcie do aktywności odpowiedniego widoku. Aktywności to podstawowe elementy związane z platformą Android. Dzięki poznaniu aktywności będziesz w stanie napisać pierwszą aplikację przeznaczoną na urządzenie mobilne. Po dodaniu kontrolek możesz w

Bardziej szczegółowo

Sekretne menu Start. Przycisk pulpitu

Sekretne menu Start. Przycisk pulpitu Nieco mniej znane rozwiązania. {reklama-artykul} Systemy Windows od zawsze posiadały ukryte i mniej oczywiste funkcje. Nie inaczej jest w przypadku Windows 10, który kontynuuje ten trend. Poniżej wymieniamy

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

Wzorce projektowe cz. II. Wzorce projektowe cz. II 1/35

Wzorce projektowe cz. II. Wzorce projektowe cz. II 1/35 Wzorce projektowe cz. II Wzorce projektowe cz. II 1/35 Wzorce projektowe cz. II 2/35 Iterator Przeznaczenie Wzorzec zapewnia sekwencyjny dostęp do elementów obiektu zagregowanego bez ujawniania jego reprezentacji

Bardziej szczegółowo

Techniki wstawiania tabel

Techniki wstawiania tabel Tabele w Wordzie Tabela w Wordzie to uporządkowany układ komórek w postaci wierszy i kolumn, w które może być wpisywany tekst lub grafika. Każda komórka może być formatowana oddzielnie. Możemy wyrównywać

Bardziej szczegółowo

Podręcznik użytkownika programu. Ceremonia 3.1

Podręcznik użytkownika programu. Ceremonia 3.1 Podręcznik użytkownika programu Ceremonia 3.1 1 Spis treści O programie...3 Główne okno programu...4 Edytor pieśni...7 Okno ustawień programu...8 Edycja kategorii pieśni...9 Edytor schematów slajdów...10

Bardziej szczegółowo

Przypisy i przypisy końcowe

Przypisy i przypisy końcowe - 1 - Przypisy i przypisy końcowe Przypisami nazywamy pewne teksty służące do podawania wyjaśnień, komentarzy, odsyłaczy do tekstu, do bibliografii itp. Edytor WORD rozróżnia dwa rodzaje przypisów: przypisy

Bardziej szczegółowo

Forum Client - Spring in Swing

Forum Client - Spring in Swing Forum Client - Spring in Swing Paweł Charkowski. 0. Cel projektu Celem projektu jest próba integracji Spring Framework z różnymi technologiami realizacji interfejsu użytkownika, oraz jej ocena. Niniejszy

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

Kurs programowania aplikacji bazodanowych

Kurs programowania aplikacji bazodanowych Wykład 2 Instytut Informatyki Uniwersytet Wrocławski Plan wykładu Połączenie za pomocą JNDI i DataSource Połączenie za pomocą JNDI i DataSource Krótki wstęp do usług katalogowych Dotychczas w celu uzyskania

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

Systemy wirtualnej rzeczywistości. Komponenty i serwisy

Systemy wirtualnej rzeczywistości. Komponenty i serwisy Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Systemy wirtualnej rzeczywistości Laboratorium Komponenty i serwisy Wstęp: W trzeciej części przedstawione zostaną podstawowe techniki

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

Tworzenie bazy danych na przykładzie Access

Tworzenie bazy danych na przykładzie Access Tworzenie bazy danych na przykładzie Access Tworzenie tabeli Kwerendy (zapytania) Selekcja Projekcja Złączenie Relacja 1 Relacja 2 Tworzenie kwedend w widoku projektu Wybór tabeli (tabel) źródłowych Wybieramy

Bardziej szczegółowo

Podstawy technologii cyfrowej i komputerów

Podstawy technologii cyfrowej i komputerów BESKIDZKIE TOWARZYSTWO EDUKACYJNE Podstawy technologii cyfrowej i komputerów Budowa komputerów cz. 2 systemy operacyjne mgr inż. Radosław Wylon 2010 1 Spis treści: Rozdział I 3 1. Systemy operacyjne 3

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

E-geoportal Podręcznik użytkownika.

E-geoportal Podręcznik użytkownika. PROCAD SA E-geoportal Podręcznik użytkownika. gis@procad.pl 2 Spis treści 1. Wstęp.... 3 2. Ikony narzędziowe.... 4 2.1. Ikony narzędziowe przesuwanie obszaru mapy.... 5 2.2. Ikony narzędziowe informacja

Bardziej szczegółowo

Komputery I (2) Panel sterowania:

Komputery I (2) Panel sterowania: Komputery I (2) Paweł Jamer Panel sterowania: Podstawowym miejscem z którego zarządzamy ustawieniami systemu Windows jest panel sterowania. Znaleźć tam możemy wszelkiego rodzaju narzędzia umożliwiające

Bardziej szczegółowo

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.1

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.1 Wyższa Szkoła Ekologii i Zarządzania Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.1 Uruchomienie edytora Word dla Windows otwarcie menu START wybranie grupy Programy, grupy Microsoft Office, a następnie

Bardziej szczegółowo

na podstawie modelu 3D

na podstawie modelu 3D Przygotowanie dokumentacji technicznej 2D na podstawie modelu 3D SST-2013/2014 Przygotowanie dokumentacji technicznej 2D 1 Wydruk rysunku z AutoCAD 2D można przygotować na dwa sposoby 1. na zakładce Model

Bardziej szczegółowo

Prezentacja multimedialna MS PowerPoint 2010 (podstawy)

Prezentacja multimedialna MS PowerPoint 2010 (podstawy) Prezentacja multimedialna MS PowerPoint 2010 (podstawy) Cz. 1. Tworzenie slajdów MS PowerPoint 2010 to najnowsza wersja popularnego programu do tworzenia prezentacji multimedialnych. Wygląd programu w

Bardziej szczegółowo

Kraków, ver

Kraków, ver Kraków, ver. 2016.001 Spis treści I. Tworzenie nowego slajdu... 3 1. Dodanie Widgetu... 5 2. Dodanie daty i godziny... 5 3. Dodanie mediów... 5 4. Dodawania pola tekstowego... 5 5. Układy graficzne...

Bardziej szczegółowo

1. Dockbar, CMS + wyszukiwarka aplikacji Dodawanie portletów Widok zawartości stron... 3

1. Dockbar, CMS + wyszukiwarka aplikacji Dodawanie portletów Widok zawartości stron... 3 DODAJEMY TREŚĆ DO STRONY 1. Dockbar, CMS + wyszukiwarka aplikacji... 2 2. Dodawanie portletów... 3 Widok zawartości stron... 3 Omówienie zawartości portletu (usunięcie ramki itd.)... 4 3. Ikonki wybierz

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych

Bardziej szczegółowo

Lokalizacja jest to położenie geograficzne zajmowane przez aparat. Miejsce, w którym zainstalowane jest to urządzenie.

Lokalizacja jest to położenie geograficzne zajmowane przez aparat. Miejsce, w którym zainstalowane jest to urządzenie. Lokalizacja Informacje ogólne Lokalizacja jest to położenie geograficzne zajmowane przez aparat. Miejsce, w którym zainstalowane jest to urządzenie. To pojęcie jest używane przez schematy szaf w celu tworzenia

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 8 PHP, czyli poczatki nowej, dynamicznej znajomosci Na dzisiejszych zajęciach rozpoczniemy programowanie po stronie serwera w języku PHP. Po otrzymaniu żądania serwer

Bardziej szczegółowo

Cel: Przypisujemy przyciskom określone funkcje panel górny (Panel1)

Cel: Przypisujemy przyciskom określone funkcje panel górny (Panel1) W odcinku III tworzyliśmy paski narzędzi. Umieszczaliśmy na panelach ikony, reprezentujące czynności (charakterystyczne dla edytorów tekstu). Musimy teraz przypisać każdemu przyciskowi jego czynność (wycinanie,

Bardziej szczegółowo

Rozdział II. Praca z systemem operacyjnym

Rozdział II. Praca z systemem operacyjnym Rozdział II Praca z systemem operacyjnym 55 Rozdział III - System operacyjny i jego hierarchia 2.2. System operacyjny i jego życie Jak już wiesz, wyróżniamy wiele odmian systemów operacyjnych, które różnią

Bardziej szczegółowo

Expo Composer. www.doittechnology.pl 1. Garncarska 5 70-377 Szczecin tel.: +48 91 404 09 24 e-mail: info@doittechnology.pl. Dokumentacja użytkownika

Expo Composer. www.doittechnology.pl 1. Garncarska 5 70-377 Szczecin tel.: +48 91 404 09 24 e-mail: info@doittechnology.pl. Dokumentacja użytkownika Expo Composer Dokumentacja użytkownika Wersja 1.0 www.doittechnology.pl 1 SPIS TREŚCI 1. O PROGRAMIE... 3 Wstęp... 3 Wymagania systemowe... 3 Licencjonowanie... 3 2. PIERWSZE KROKI Z Expo Composer... 4

Bardziej szczegółowo

5. Kliknij teraz na ten prostokąt. Powinieneś w jego miejsce otrzymać napis. Jednocześnie została wywołana kolejna pozycja menu.

5. Kliknij teraz na ten prostokąt. Powinieneś w jego miejsce otrzymać napis. Jednocześnie została wywołana kolejna pozycja menu. Dziś zastosujemy w naszym projekcie komponent MainMenu (menu główne). Ten element należy do grupy komponentów niewidocznych i daje możliwość skonstruowania rozwijanego menu i dostosowania go do potrzeb

Bardziej szczegółowo

4.2. Ustawienia programu

4.2. Ustawienia programu 4.2. Ustawienia programu Zmiana wielkości dokumentu Pracując w programie MS Excel 2010 niejednokrotnie doświadczysz sytuacji, w której otwarty przez Ciebie arkusz nie będzie mieścił się na ekranie monitora.

Bardziej szczegółowo

MS Word 2010. Długi dokument. Praca z długim dokumentem. Kinga Sorkowska 2011-12-30

MS Word 2010. Długi dokument. Praca z długim dokumentem. Kinga Sorkowska 2011-12-30 MS Word 2010 Długi dokument Praca z długim dokumentem Kinga Sorkowska 2011-12-30 Dodawanie strony tytułowej 1 W programie Microsoft Word udostępniono wygodną galerię wstępnie zdefiniowanych stron tytułowych.

Bardziej szczegółowo

Ćwiczenia nr 2. Edycja tekstu (Microsoft Word)

Ćwiczenia nr 2. Edycja tekstu (Microsoft Word) Dostosowywanie paska zadań Ćwiczenia nr 2 Edycja tekstu (Microsoft Word) Domyślnie program Word proponuje paski narzędzi Standardowy oraz Formatowanie z zestawem opcji widocznym poniżej: Można jednak zmodyfikować

Bardziej szczegółowo

MS Access formularze

MS Access formularze MS Access formularze Formularze to obiekty służące do wprowadzania i edycji danych znajdujących się w tabelach. O ile wprowadzanie danych bezpośrednio do tabel odbywa się zawsze w takiej samej formie (arkusz

Bardziej szczegółowo

Lp. Nazwisko Wpłata (Euro)

Lp. Nazwisko Wpłata (Euro) Tabele_Writer Wstawianie tabeli Na początku dokumentu wpisz tekst Rzym-Lista Wpłat i wciśnij Enter. Następnie naciśnij symbol strzałki przypisanej do ikony Tabela znajdujący się na pasku narzędzi Pracę

Bardziej szczegółowo

Czcionki bezszeryfowe

Czcionki bezszeryfowe Czcionki szeryfowe Czcionki szeryfowe wyposażone są w dodatkowe elementy ułatwiające czytanie. Elementy te, umieszczone w dolnej i górnej części liter tworzą poziome, optyczne linie ułatwiające prowadzenie

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