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. 1 Wykład został w znacznej mierze oparty na:

3 GUI

4 GUI Zakład Inżynierii Oprogramowania GUI = Graphical User Interface Może być związane: z aplikacją desktopową (nasz wykład) z aplikacją webową (inne przedmioty) Z punktu widzenia inżynierii oprogramowania opracowanie wymagań/architektury/projektu/implementacji/testów prace w projekcie informatycznym nad GUI związane są z tzw. user experience. Istnieją dobre praktyki związane z projektowaniem GUI. Oprócz ogólnych praktyk (kwestie techniczne) należy mieć na względzie fakt, że w różnych dziedzinach zastosowań mogą być różne zwyczaje.

5 GUI Zakład Inżynierii Oprogramowania Technologie służące wytwarzaniu GUI niezależnego od platformy dostępne w 2013 roku: QML Qt Juce Adobe Air Mono+GTK Java FX SWT

6 GUI Zakład Inżynierii Oprogramowania W ramach Java SE GUI może być realizowane w postaci aplikacji desktopowej zarządzanej bezpośrednio przez Window Manager danego systemu operacyjnego albo w postaci apletów zarządzanych przez przeglądarkę. Koncepcja apletów została jednak zdominowana przez bardziej dojrzałe technologie webowe, dlatego zostanie całkowicie pominięta w czasie wykładów.

7 GUI Zakład Inżynierii Oprogramowania Na kolejnym slajdzie pokazano kontekst działania GUI nawiązujący do rozwiązań znanych z Linuxa.

8 GUI Zakład Inżynierii Oprogramowania

9 GUI Zakład Inżynierii Oprogramowania Na kolejnym slajdzie pokazano strukturę okna w systemie okienkowym.

10 GUI Zakład Inżynierii Oprogramowania

11 GUI w Swing

12 GUI w Swing Zakład Inżynierii Oprogramowania Do niedawna uważano, że Swing jest wzorcowo zaprojektowaną biblioteką ilustrującą dobre praktyki stosowane w języku Java. Jednak są przeciwnicy tego podejścia/realizacji oraz trwają prace nad JavaFX biblioteką GUI mającą wkrótce (Java 9?) zastąpić bibliotekę Swing. W ramach wykładu omówimy Swing ze względu na następujące ograniczenia w Java FX: Braki w implementacji dostępnej w Java 7 Niedojrzałość jej implementacji w Java 8 Brak dostatecznego wsparcia narzędziowego Brak dostatecznego wsparcia społecznościowego (tutoriale, książki, fora dyskusyjne, )

13 GUI w Swing Zakład Inżynierii Oprogramowania Zalety biblioteki Swing: Sprzętowo przyspieszane wyświetlanie MVC Wykorzystanie technologii Java managed code Wsparcie przez środowiska deweloperskie projektowanie WYSIWYG, narzędzia testowania Wsparcie społecznościowe (por. rys)

14 GUI w Swing Zakład Inżynierii Oprogramowania

15 GUI w Swing Zakład Inżynierii Oprogramowania Wady biblioteki Swing w Java 7: Zdarzają się krytyczne błędy, które długo pozostają nierozwiązane (np. File.exists) Ograniczenia związane z Mac OS Konieczność umieszczania JRE w dystrybucji oprogramowania Ograniczenia implementacyjne związane z BufferedImage trudności z przyspiesznaiem sprzętowym, trudności z wyświetlaniem obiektów rastrowych BufferedImage Problemy z wyświetlaniem GUI przy dostępie przez VMware lub przez remote desktop

16 GUI w Swing Zakład Inżynierii Oprogramowania Przegląd Swing API stanowi zbiór rozszerzalnych komponentów GUI ułatwiających programiście implementację GUI aplikacji desktopowych. Biblioteka ta została skonstruowana na bazie AWT i stanowi jej nakładkę (wrapper). Komponenty Swing zostały opracowane zgodnie z wzorcem architektonicznym MVC i spełniają następujące założenia: Pojedyncze API zapewniające obsługę różnorodnych widoków Możliwość automatycznego generowania aplikacji z modelu Zorientowanie na wsparcie narzędziowe

17 GUI w Swing Zakład Inżynierii Oprogramowania Architektura MVC Architektura Swing API wspiera MVC następująco: Model reprezentuje dane komponentów. View reprezentuje widok danych komponentu. Controller pobiera dane od użytkownika z widoku i odzwierciedla zmiany w danych komponentu. Komponenty Swing mają Model jako osobny element a View i Controller należą do elementów GUI. Dzięki temu Swing jest łatwo rozszerzalny.

18 GUI w Swing Zakład Inżynierii Oprogramowania Cechy Swing Light Weight komponenty Swing są niezależne od natywnych API systemów operacyjnych ponieważ jego komponenty nie odwołują się wprost do API systemu operacyjnego. Rich controls - Swing dostarcza bogatego zbioru zaawansowanych kontrolek jak np. Tree, TabbedPane, slider, colorpicker, table controls Highly Customizable kontrolki Swing mogą być łatwo dostosowywane do potrzeb użytkownika gdyż ich wygląd jest niezależny od reprezentacji wewnętrznej. Pluggable look-and-feel wygląd aplikacji, których GUI oparte jest na Swing API może być zmieniany w czasie wykonania.

19 GUI w Swing Zakład Inżynierii Oprogramowania Kontrolki Swing Każde GUI uwzględnia następujące trzy aspekty: UI elements: Główne elementy wizualne dostępne dla użytkownika. Ich przykłady zostaną omówione dalej. Layouts: Określają jak poszczególne kontrolki powinny być położone na ekranie. Zagadnienie to zostanie omówione dalej. Behavior: Są związane ze zdarzeniami generowanymi przez użytkownika działającego na elementach GUI. Pozwalają obsługiwać zdarzenia w sposób asynchroniczny i wielowątkowy.

20 GUI w Swing Zakład Inżynierii Oprogramowania

21 GUI w Swing - komponenty Swing klasa Component Klasa Component jest bazową klasą abstrakcyjną dla kontrolek AWT nie będących elementami menu. Component reprezentuje obiekt mający reprezentację graficzną.

22 GUI w Swing - komponenty Swing - klasa Container Klasa Container jest nadklasą dla kontenerów AWT. Obiekt klasy Container może zawierać inne komponenty AWT.

23 GUI w Swing - komponenty Swing - klasa JComponent Klasa JComponent jest klasą bazową dla wszystkich komponentów Swing z wyjątkiem komponentów leżących najwyżej w hierarchii. Aby skorzystać z komponentu dziedziczącego z JComponent należy umieścić go w hierarchii kontenerów, której wierzchołkiem jest jeden z kontenerów Swing.

24 GUI w Swing - komponenty Swing klasa JLabel Klasa JLabel może wyświetlać tekst i/lub obraz. Zawartość obiektu Label może być pozycjonowana w pionie i w poziomie względem tego komponentu. Domyślnie jest wycentrowana w pionie. Etykiety tekstowe są domyślnie ustawione przy lewej krawędzi kontrolki, a graficzne są domyślnie wycentrowane.

25 GUI w Swing - komponenty Swing klasa JButton Klasa JButton stanowi implementację przycisku. Komponent ten ma etykietę (tekst i/lub grafika jak Label) i generuje zdarzenia w czasie wciskania.

26 GUI w Swing - komponenty Swing klasa JColorChooser Klasa JColorChooser dostarcza panelu kontrolek zaprojektowanych w celu umożliwienia użytkownikowi manipulowania kolorami i dokonywania wyboru koloru.

27 GUI w Swing - komponenty Swing JCheckBox Class Klasa JCheckBox jest implementacją check-boxu.

28 GUI w Swing - komponenty Swing - klasa JRadioButton Klasa JRadioButton jets implementacją radio-button.

29 GUI w Swing - komponenty Swing klasa JList Klasa JList jest komponentem wyświetlającym listę obiektów pozwalającą użytkownikowi wybrać jeden lub wiele z nich.

30 GUI w Swing - komponenty Swing klasa JComboBox Klasa JComboBox jest komponentem zawierającym przycisk lub pole edytowalne oraz listę rozwijaną dynamicznie.

31 GUI w Swing - komponenty Swing klasa JTextField Klasa JTextField jest komponentem pozwalającym na edytowanie pojedynczej linii tekstu.

32 GUI w Swing - komponenty Swing klasa JPasswordField Klasa JPasswordField jest komponentem dedykowanym do obsługi funkcjonalności hasła i pozwala na edytowanie pojedynczej linii tekstu maskując jego treść.

33 GUI w Swing - komponenty Swing klasa JTextArea Klasa JTextArea jest wieloliniowym obszarem do edycji tekstu.

34 GUI w Swing - komponenty Swing klasa ImageIcon Klasa ImageIcon jest implementacją interfejsu Icon wyświetlającego ikonę dla obrazu graficznego.

35 GUI w Swing - komponenty Swing klasa JScrollBar Klasa JScrollBar jest implementacją paska przewijania.

36 GUI w Swing - komponenty Swing klasa JOptionPane Klasa JOptionPane jest komponentem dostarczającym standardowych metod dla wyskakującego okienka dialogowego służącego poinformowaniu użytkownika o czymś.

37 GUI w Swing - komponenty Swing klasa JFileChooser Klasa JFileChooser jest komponentem dostarczającym użytkownikowi prostego mechanizmu wybierania pliku.

38 GUI w Swing - komponenty Swing klasa JProgressBar Klasa JProgressBar jest komponentem wyswietlającym postęp jakiegoś zadania.

39 GUI w Swing - komponenty Swing klasa JSlider Klasa JSlider jest komponentem pozwalającym użytkownikowi na graficzny wybór wartości za pomocą suwaka poruszającego się w określonym zakresie.

40 GUI w Swing - komponenty Swing klasa JSpinner Klasa JSpinner jest komponentem pozwalającym użytkownikowi na wybranie wartości parametru z uporządkowanej sekwencji wartości za pomocą strzałek przewijania lub za pomocą pola wejściowego.

41 GUI w Swing - zdarzenia SWING klasy Event Klasy Event reprezentują zdarzenia. Java dostarcza wielu różnych wyspecjalizowanych klas tej kategorii. Omówione zostaną przykładowe, najczęściej używane.

42 GUI w Swing - zdarzenia Klasa EventObject Jest to klasa bazowa, z której wyprowadzane są wszystkie klasy zdarzeń. Obiekty tych klas konstruowane są w taki sposób, aby źródło zdarzenia obiekt, w którym zdarzenie zostało zainicjowane było w nim reprezentowane za pomocą referencji do tego obiektu. Klasa ta jest zdefiniowana w pakiecie java.util.

43 GUI w Swing - zdarzenia SWING klasa AWTEvent Jest to klasa bazowa dla wszystkich zdarzeń AWT. Zastępuje ona klasy zdarzeń wywodzonych z klasy java.awt.event. Jest ona zdefiniowana w pakiecie java.awt. Za pomocą metody getid() można zidentyfikować typ zdarzenia.

44 GUI w Swing - zdarzenia SWING klasa ActionEvent Klasa ta jest zdefiniowana w pakiecie java.awt.event. Obiekt ActionEvent jest generowany gdy zostanie wciśnięty przycisk lub nastąpi kliknięcie lub podwójne kliknięcie na pozycji z listy.

45 GUI w Swing - zdarzenia SWING klasa InputEvent Klasa InputEvent jest klasą bazową dla wszystkich zdarzeń generowanych na poziomie komponentów. Zdarzenia wejściowe są dostarczane do Listener ów zanim zostaną obsłużone przez źródło, w którym powstały. Pozwala to na przejęcie kontroli nad wygenerowanym zdarzeniem przez Listener a lub podklasę komponentu zanim komponent źródłowy obsłuży je w sposób dla niego charakterystyczny. Np. przejęcie zdarzenia mousepressed wygenerowanego na komponencie przycisku Button pozwala zabezpieczyć obiekt klasy Button przed aktywowaniem go.

46 GUI w Swing - zdarzenia SWING klasa KeyEvent Obiekt tej klasy jest generowany w czasie wprowadzania z klawiatury znaku. Są trzy rodzaje takich zdarzeń reprezentowane za pomocą następujących stałych całkowitych: KEY_PRESSED KEY_RELASED KEY_TYPED

47 GUI w Swing - zdarzenia SWING klasa MouseEvent Zdarzenie to świadczy o wykonaniu czynności za pomocą myszy na komponencie. Jest ono generowane gdy: Zostanie wciśnięty przycisk myszy Zostanie zwolniony przycisk myszy Zostanie kliknięty (wciśnięty i zwolniony) przycisk myszy Kursor myszy wejdzie w obszar komponentu Kursor myszy znajduje się w obszarze komponentu Mysz zostanie poruszona Przycisk myszy zostanie wciśnięty i przytrzymany

48 GUI w Swing - zdarzenia SWING klasa WindowEvent Obiekt tej klasy reprezentuje zmianę stanu okna. Zdarzenie to jest generowane w przypadku otwarcia, zamknięcia, aktywacji, dezaktywacji, zwinięcia, rozwinięcia, uzyskania lub utraty fokusu.

49 GUI w Swing - zdarzenia SWING klasa AdjustmentEvent Klasa AdjustmentEvent reprezentuje zdarzenie zmiany rozmiaru generowane przez komponenty mogące zmieniać rozmiar (nie wszystkie).

50 GUI w Swing - zdarzenia SWING - klasa ComponentEvent Klasa ComponentEvent reprezentuje zdarzenia generowane gdy komponent zostanie przesunięty, zmieni rozmiar lub widoczność (zostanie ukryty lub odsłonięty).

51 GUI w Swing - zdarzenia SWING klasa ContainerEvent Klasa ContainerEvent reprezentuje zdarzenie informujące o zmianie zawartości kontenera związane z dodaniem do niego lub usunięciem z niego komponentu.

52 GUI w Swing - zdarzenia SWING interfejs MouseMotionEvent Interfejs MouseMotionEvent świadczy o czynności myszy wykonanej na komponencie. Zdarzenie takie jest generowane przez komponent gdy mysz zostanie przesunięta lub wciśnięta nad nim.

53 GUI w Swing - zdarzenia SWING klasa PaintEvent Klasa PaintEvent jest używana do zapewnienia skolejkowania wywołań metody paint/update wraz z innymi zdarzeniami dostarczanymi z kolejki zdarzeń.

54 GUI w Swing obsługa zdarzeń SWING klasy Event Listeners Event listener reprezentuje interfejsy odpowiedzialne za obsługę zdarzeń. Java dostarcza wielu klas Event listener ów tutaj zostaną pokazana najczęściej wykorzystywane. Każda metoda event listener a ma jeden argument będący odpowiednią podklasą klasy EventObject. Np. metody klasy będącej mouse event listener em przyjmują jako argument obiekty klasy MouseEvent, gdzie MouseEvent dziedziczy z klasy EventObject.

55 GUI w Swing obsługa zdarzeń Interfejs EventListner Jest to interfejs, który musi być rozszerzany przez każdy interfejs event listenera.definicja tego interfejsu znajduje się w pakiecie java.util.

56 GUI w Swing obsługa zdarzeń SWING interfejs ActionListener Musi być implementowany przez każdą klasę przetwarzającą ActionEvent. Obiekt tej klasy musi być zarejestrowany w komponencie. Można tego dokonać za pomocą metody addactionlistener(). Kiedy powstanie action event, wtedy zostanie wywołana metoda actionperformed() obiektu.

57 GUI w Swing obsługa zdarzeń SWING interfejs ComponentListener Powinna go implementować klasa, która przetwarza ComponentEvent. Obiekt tej klasy musi zostać zarejestrowany w komponencie. Można tego dokonać za pomocą metody addcomponentlistener(). Zdarzenia component event są generowane jedynie dla celów informacyjnych.

58 GUI w Swing obsługa zdarzeń SWING interfejs ItemListener Powinien zostać zaimplementowany przez klasę przetwarzającą ItemEvent. Obiekt tej klasy musi zostać zarejestrowany w komponencie. Można tego dokonać za pomocą metody additemlistener(). Gdy pojawi się action event, wtedy zostanie wywołana metoda itemstatechanged() obiektu.

59 GUI w Swing obsługa zdarzeń SWING interfejs KeyListener Powinien zostać zaimplementowany przez klasę przetwarzającą KeyEvent. Obiekt tej klasy musi zostać zarejestrowany w komponencie. Można tego dokonać za pomocą metody addkeylistener().

60 GUI w Swing obsługa zdarzeń SWING interfejs MouseListener Klasa przetwarzająca MouseEvent powinna implementować ten interfejs. Obiekt tej klasy musi zostać zaimplementowany w komponencie. Można tego dokonać za pomocą metody addmouselistener().

61 GUI w Swing obsługa zdarzeń SWING interfejs WindowListener Klasa przetwarzająca WindowEvent powinna implementować ten interfejs. Obiekt tej klasy musi zostać zarejestrowany w komponencie. Można tego dokonać za pomocą metody addwindowlistener().

62 GUI w Swing obsługa zdarzeń SWING interfejs AdjustmentListener Interfejs AdjustmentListener jest używany do odbierania zdarzeń dopasowania (adjustment events). Klasa przetwarzająca te zdarzenia musi implementować ten interfejs.

63 GUI w Swing obsługa zdarzeń SWING interfejs ContainerListener Interfejs ContainerListener jest używany do odbierania zdarzeń container events. Klasa przetwarzająca te zdarzenia musi implementować ten interfejs.

64 GUI w Swing obsługa zdarzeń SWING interfejs MouseMotionListener Interfejs MouseMotionListener jest używany do odbierania zdarzeń mouse motion events generowanych na komponencie. Klasa przetwarzająca te zdarzenia musi implementować ten interfejs.

65 GUI w Swing obsługa zdarzeń SWING interfejs FocusListener Interfejs FocusListener jest używany do odbierania zdarzeń focus events. Klasa przetwarzająca te zdarzenia musi implementować ten interfejs.

66 GUI w Swing obsługa zdarzeń Adaptery SWING Event Adapters Adaptery są klasami abstrakcyjnymi służącymi odbieraniu różnych zdarzeń. Metody w tych klasach są puste. Klasy te służą jako Utility Classes do tworzenia obiektów listener ów.

67 GUI w Swing obsługa zdarzeń SWING klasa FocusAdapter Klasa FocusAdapter jest abstrakcyjną klasą adaptera do odbierania zdarzeń focus events.

68 GUI w Swing obsługa zdarzeń SWING klasa KeyAdapter Klasa KeyAdapter jest klasą abstrakcyjną adaptera służącą odbieraniu zdarzeń keyboard events.

69 GUI w Swing obsługa zdarzeń SWING klasa MouseAdapter Klasa MouseAdapter jest abstrakcyjną klasą adaptera do odbierania zdarzeń mouse events.

70 GUI w Swing obsługa zdarzeń SWING klasa MouseMotionAdapter Klasa MouseMotionAdapter jest klasą abstrakcyjną adaptera do odbierania zdarzeń mouse motion events.

71 GUI w Swing obsługa zdarzeń SWING klasa WindowAdapter Klasa WindowAdapter jest abstrakcyjną klasą adaptera do odbierania zdarzeń window events.

72 GUI w Swing - layout SWING Layouts Layout oznacza ułożenie komponentów w kontenerze w określonych pozycjach. Zadanie układania komponentów realizowane jest automatycznie przez Layout Manager.

73 GUI w Swing - layout Layout Manager Automatycznie rozmieszcza wszystkie komponenty w kontenerze. Jeśli go nie określimy, to jest używany domyślny. Ręcznie nie opłaca się implementować jego funkcjonalności jest to trudne z następujących powodów: Obsłużenie dużej ilości kontrolek w kontenerze jest trudne Zwykle nie dysponujemy informacją o rozmiarach komponentu wtedy gdy chcemy go odpowiednio umieścić w kontenerze. Swing dostarcza wielu klas layout manager. Obsługują one również skutki zmiany rozmiaru okna kontenera rozmieszczając ponownie w nim komponenty. Z każdą instancją klasycontainer skojarzony jest obiekt layout managera. Każda klasa layout managera musi implementować interfejs LayoutManager.

74 GUI w Swing - layout SWING iterfejs LayoutManage Interfejs LayoutManager jest używany do definiowania interfejsu klas wiedzących jak rozmieszczać komponenty w kontenerach.

75 GUI w Swing - layout SWING interfejs LayoutManager2 Interfejs LayoutManger jest używany do definiowania interfejsu dla klas wiedzących jak rozmieszczą komponenty w kontenerach w oparciu o obiekt layout constraints.

76 GUI w Swing - layout SWING klasa BorderLayout Klasa BorderLayout rozmieszcza komponenty tak aby ulokować je w pięciu regionach: east, west, north, south i center. Każdy region może zawierać tylko jeden komponent i każdy komponent jest identyfikowany za pomocą odpowiedniej stałej NORTH, SOUTH, EAST, WEST i CENTER.

77 GUI w Swing - layout SWING klasa CardLayout Klasa CardLayout rozmieszcza każdy komponent w kontenerze jako kartę. Wdanej chwili może być widoczna tylko jedna karta i kontener jest wykorzystywany jako stos kart.

78 GUI w Swing - layout SWING klasa FlowLayout Klasa FlowLayout rozmieszcza komponenty od lewej strony do prawej.

79 GUI w Swing - layout SWING klasa GridLayout Klasa GridLayout rozmieszcza komponenty w siatce prostokątnej.

80 GUI w Swing - layout SWING klasa GridBagLayout Klasa GridBagLayout rozmieszcza komponenty horyzontalnie i wertykalnie.

81 GUI w Swing - layout SWING klasa GroupLayout Klasa GroupLayout grupuje komponenty hierarchicznie.

82 GUI w Swing - layout SWING klasa SpringLayout Klasa SpringLayout rozmieszcza komponenty na podstawie zbioru ograniczeń (constraints).

83 GUI w Swing - menu Klasy SWING Menu Każde główne okno aplikacji ma w górnej części skojarzony z nim pasek menu. Pasek menu składa się z wielu pozycji dostępnych dla użytkownika aplikacji. Ponadto każdy wybór może zawierać listę opcji zwanych drop down menu. Kontrolki Menu i MenuItem są podklasami MenuComponent.

84 GUI w Swing - menu

85 GUI w Swing - menu SWING klasa JMenuBar Klasa JMenuBar dostarcza implementacji paska menu.

86 GUI w Swing - menu SWING klasa JMenuItem Klasa JMenuItem reprezentuje pozycję w menu. Wszystkie pozycje w menu powinny dziedziczyć z klasy JMenuItem lub z jednej z jej podklas. Domyślnie skojarzona jest z etykietą.

87 GUI w Swing - menu SWING klasa JMenu Klasa Menu reprezentuje element menu rozwijany z poziomu paska menu.

88 GUI w Swing - menu SWING klasa JCheckboxMenuItem Klasa JCheckboxMenuItem reprezentuje check-box, który może znajdować się w menu. Wybranie check-box a w menu zmienia stan kontrolki z on na off albo z off na on.

89 GUI w Swing - menu SWING klasa JRadioButtonMenuItem Klasa JRadioButtonMenuItem reprezentuje radio-button, który może zostać umieszczony w menu. Wybranie radio-button w menu zmienia stan kontrolki z on na off albo z off na on.

90 GUI w Swing - menu SWING klasa JPopupMenu Klasa ta reprezentuje menu rozwijane dynamicznie w określonej pozycji komponentu.

91 GUI w Swing - kontenery Kontenery SWING Kontenery są integralną częścią komponentów GUI w SWING. Kontener dostarcza miejsca, w którym może znaleźć się komponent. Container w AWT jest komponentem pozwalającym na dodawanie do niego komponentów. Warto zwrócić uwagę na następujące własności kontenerów: Podklasy Container są nazywane kontenerami. Np. JPanel, JFrame i JWindow. Kontener może zawierać jedynie komponenty. Z każdym kontenerem związany jest charakterystyczny dla niego domyślny layout. Może on zostać zmieniony za pomocą przeciążonej metody setlayout().

92 GUI w Swing - kontenery SWING klasa JPanel Klasa JPanel jest ogólnym lekkim kontenerem.

93 GUI w Swing - kontenery SWING klasa JFrame Klasa JFrame jest rozszerzeniem klasy java.awt.frame wprowadzającą do niej wsparcie dla komponentowej architektury JFC/Swing.

94 GUI w Swing - kontenery SWING klasa JWindow Klasa JWindow jest kontenerem, który może zostać wyświetlony ale nie zawiera paska tytułu ani przycisków zarządzania oknem.

95 GUI w Swing Zakład Inżynierii Oprogramowania Dobre praktyki w Swing: Każde okno powinno rozszerzać JFrame albo JDialog (w zależności od typu okna). Ułatwia to zarządzanie własnościami okna bez konieczności odwoływania się do konkretnego obiektu jego podklasy.. Metoda main() powinna zostać umieszczona w osobnej klasie. Zwiększa to prawdopodobieństwo ponownego wykorzystania okna. Listener y powinny być implementowane w anonimowych klasach wewnętrznych w Java 7 lub za pomocą wyrażeń lambda w Java 8. Klasa główna nie powinna implementować żadnego listenera. Chroni to przed atakiem polegającym na przechwytywaniu komunikatów poza obiektem, z którym są one skojarzone.

96 GUI w Swing Zakład Inżynierii Oprogramowania Klasy GridBagLayout należy używać ostrożnie. Jest to bardzo bogaty Layout Manager, chociaż trudny do opanowania. Klasy JPanel należy używać ostrożnie. Należy najpierw zastanowić się, które komponenty powinny zmienić swój rozmiar wraz ze zmianą rozmiaru okna a następnie zgrupować te komponenty w JPanel. Czasem wymaga to zagnieżdżania w sobie obiektów klasy JPanel. Zawsze należy zaczynać od utworzenia wątku dispatchera zdarzeń. Najpierw należy wywołać metodę pack() potem dopasować rozmiar ramki a dopiero potem wywołać metodę setvisible(). Warto rozważyć użycie metody getmaximumwindowbounds(): GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment(); Rectangle bounds = env.getmaximumwindowbounds();

97 GUI w Swing Zakład Inżynierii Oprogramowania Przykład zastosowania powyższych dobrych praktyk public class Main { } public static void main(string[] args) { } final String text = args[0]; SwingUtilities.invokeLater(new Runnable() public void run() { } }); final MyWindow wnd = new MyWindow(text); wnd.setvisible(true);

98 GUI w Swing Zakład Inżynierii Oprogramowania public class MyWindow extends JFrame { public MyWindow(String text) { super("my Window"); setdefaultcloseoperation(windowconstants.do_nothing_on_close); addwindowlistener(new WindowAdapter() public void windowclosing(windowevent e) { MyWindow.this.setVisible(false); MyWindow.this.dispose(); } }); final JButton btn = new JButton(text); btn.addactionlistener(new ActionListener() public void actionperformed(actionevent e) { JOptionPane.showMessageDialog(MyWindow.this, "Button Pressed", "Hey", JOptionPane.INFORMATION_MESSAGE); } }); setlayout(new FlowLayout()); add(btn); pack(); } }

99 Koniec

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

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

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

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

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

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

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 zdarzeniowe

Programowanie zdarzeniowe Programowanie zdarzeniowe III. Zaawansowana obsługa zdarzeń Małgorzata Prolejko ZDA JA16Z03 Plan Hierarchia zdarzeń Typy zdarzeń niskiego poziomu Zdarzenia okna Obsługa kliknięcia myszy Adaptery Zdarzenia

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 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

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

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

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

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

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

setdefaultcloseoperation(jframe.exit_on_close);//obsługa zamykania aplikacji setvisible(true); } //wyświetlenie okna

setdefaultcloseoperation(jframe.exit_on_close);//obsługa zamykania aplikacji setvisible(true); } //wyświetlenie okna Programowanie wizualne- pakiet Swing 1. Główny obiekt interfejsu uŝytkownika - obiekt klasy JFrame 1.1. Przykład prostej aplikacji Zdefiniowanie klasy dziedziczącej po klasie JFrame z pakietu Swing (lub

Bardziej szczegółowo

Interfejs graczny w Javie.

Interfejs graczny w Javie. Interfejs graczny w Javie. Robert A. Kªopotek r.klopotek@uksw.edu.pl Wydziaª Matematyczno-Przyrodniczy. Szkoªa Nauk cisªych, UKSW 20.04.2017 Interfejs graczny w Javie Java dostarcza dwóch podstawowych

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

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

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

Podstawowe informacje o apletach

Podstawowe informacje o apletach Podstawowe informacje o apletach 1 Co to są aplety? Aplety (ang. applets) są to programy napisane w Javie i uruchamiane w przeglądarce WWW po stronie klienta. Posiadają następujące cechy: wymagają obecności

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

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

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

Obsługa zdarzeń. Wykład 4

Obsługa zdarzeń. Wykład 4 Obsługa zdarzeń Wykład 4 Zdarzenia Zdarzenie niskiego poziomu to wciśnięcie klawisza klawiatury lub kliknięcie przycisku myszki. Większość zdarzeń jest generowana przez: mysz klawiaturę elementy interfejsu

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

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

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

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

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

Programowanie graficznych interfejsów uŝytkownika

Programowanie graficznych interfejsów uŝytkownika Programowanie obiektowe The Java Tutorials http://java.sun.com/docs/books/tutorial/ui/index.html Programowanie graficznych interfejsów uŝytkownika Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki

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

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

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

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

JAVA. Strumienie wejścia i wyjścia. Pliki - zapis i odczyt

JAVA. Strumienie wejścia i wyjścia. Pliki - zapis i odczyt JAVA Pliki - zapis i odczyt Opracował: Andrzej Nowak Bibliografia: JAVA Szkoła programowania, D. Trajkowska Ćwiczenia praktyczne JAVA. Wydanie III,M. Lis Strumienie wejścia i wyjścia Strumienie wejścia

Bardziej szczegółowo

Tworzenie i obsługa graficznego interfejsu uŝytkownika

Tworzenie i obsługa graficznego interfejsu uŝytkownika Tworzenie i obsługa graficznego interfejsu uŝytkownika Programowanie w środowisku rozproszonym. Wykład 3. Aplety aplikacje uruchamiane w środowisku przeglądarki - przykład import java.applet.applet; import

Bardziej szczegółowo

Języki Programowania II Wykład 7. Java Swing

Języki Programowania II Wykład 7. Java Swing Języki Programowania II Wykład 7 Java Swing GUI w Javie Abstract Window Toolkit (AWT) podstawowy zbiór komponentów opartych na zarządcy okien wspólny mianownik funkcjonalności ze wszystkich platform rozbudowany

Bardziej szczegółowo

Programowanie aplikacji na urządzenia mobilne

Programowanie aplikacji na urządzenia mobilne Informatyka I Programowanie aplikacji na urządzenia mobilne dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 JME - Java Platform Micro Edition JME platforma Java przeznaczona

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

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

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

Programowanie w języku JAVA. Wykład IV Swing - GUI

Programowanie w języku JAVA. Wykład IV Swing - GUI Programowanie w języku JAVA Wykład IV Swing - GUI Architektura 2 JFC (Java Foundation Classes) zbiór klas do budowy interfejsu graficznego użytkownika i interaktywności aplikacji Javy Komponenty Swing

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

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

Kolory elementów. Kolory elementów

Kolory elementów. Kolory elementów Wszystkie elementy na schematach i planach szaf są wyświetlane w kolorach. Kolory te są zawarte w samych elementach, ale w razie potrzeby można je zmienić za pomocą opcji opisanych poniżej, przy czym dotyczy

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

Scenariusz Lekcji. Część organizacyjna:

Scenariusz Lekcji. Część organizacyjna: Scenariusz Lekcji Część organizacyjna: Rok szkolny: 2014/2015 Data: 03.III.2015r Imię i nazwisko nauczyciela: Magdalena Ślusarczyk Przedmiot: programowanie strukturalne i obiektowe Klasa: 4c grupa 2 Liczba

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 12 - wstęp do JavyFX mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 31 maja 2017 1 / 15 mgr inż. Krzysztof Szwarc Programowanie obiektowe Krótka lekcja

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

SWING ZAGADNIENIA: wprowadzenie, kontenery I komponenty, LayoutManager, komponenty tekstowe.

SWING ZAGADNIENIA: wprowadzenie, kontenery I komponenty, LayoutManager, komponenty tekstowe. SWING ZAGADNIENIA: wprowadzenie, kontenery I komponenty, LayoutManager, komponenty tekstowe. MATERIAŁY: http://docs.oracle.com/javase/tutorial/uiswing/ http://th-www.if.uj.edu.pl/zfs/ciesla/ JĘZYK JAVA,

Bardziej szczegółowo

Programowanie Multimediów. Programowanie Multimediów JAVA. programowanie GUI. (AWT i Swing) [1]

Programowanie Multimediów. Programowanie Multimediów JAVA. programowanie GUI. (AWT i Swing) [1] [1] JAVA programowanie GUI (AWT i Swing) [2] Wprowadzenie Pierwotnym GUI dla Javy był AWT (Abstract Window Toolkit) wg legendy powstał w miesiąc... Swing dodano dopiero w wersji Javy 1.2 (przełom 1997/98)

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

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

SWING c.d. przydatne narzędzia: JFileChooser, JOptionPane. drag'n drop, menu kontekstowe.

SWING c.d. przydatne narzędzia: JFileChooser, JOptionPane. drag'n drop, menu kontekstowe. SWING c.d. ZAGADNIENIA: przydatne narzędzia: JFileChooser, JOptionPane. drag'n drop, menu kontekstowe. MATERIAŁY: http://docs.oracle.com/javase/tutorial/uiswing/dnd/ http://th-www.if.uj.edu.pl/zfs/ciesla/

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

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

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

Wykład 12: Obsługa Zdarzeń

Wykład 12: Obsługa Zdarzeń Wykład 12: Obsługa Zdarzeń Zdarzenia Aplety są sterowane zdarzeniami. Większość zdarzeń jest generowana przez: mysz klawiaturę elementy interfejsu graficznego Obsługa zdarzeń jest zawarta w pakiecie java.awt.event.

Bardziej szczegółowo

Dokumentacja do API Javy.

Dokumentacja do API Javy. Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu

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

Ć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

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

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom. Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom. Projektowanie i wdrażanie systemów informatycznych Przekształcenie

Bardziej szczegółowo

Stworzenie programu KSIĄŻKA ADRESOWA posiadającego funkcjonalności przechowywania danych o osobach dodanych przez użytkownika.

Stworzenie programu KSIĄŻKA ADRESOWA posiadającego funkcjonalności przechowywania danych o osobach dodanych przez użytkownika. XXX XXX PROGRAMOWANIE W JAVA - PROJEKT KSIĄŻKA ADRESOWA Stworzenie programu KSIĄŻKA ADRESOWA posiadającego funkcjonalności przechowywania danych o osobach dodanych przez użytkownika. 1. Przygotowywanie

Bardziej szczegółowo

Spis treści 1. Wstęp Logowanie Główny interfejs aplikacji Ogólny opis interfejsu Poruszanie się po mapie...

Spis treści 1. Wstęp Logowanie Główny interfejs aplikacji Ogólny opis interfejsu Poruszanie się po mapie... Spis treści 1. Wstęp... 2 2. Logowanie... 2 3. Główny interfejs aplikacji... 2 3.1. Ogólny opis interfejsu... 2 3.2. Poruszanie się po mapie... 3 3.3. Przełączanie widocznych warstw... 3 4. Urządzenia...

Bardziej szczegółowo

Laboratorium 8 ( Android -pierwsza aplikacja)

Laboratorium 8 ( Android -pierwsza aplikacja) Dr Mirosław Łątka Informatyka dla medycyny Jesień 2012 Laboratorium 8 ( Android -pierwsza aplikacja) Naszym celem jest stworzenie aplikacji, która wyświetla zdjęcie Alberta Einsteina. Jeden z przycisków

Bardziej szczegółowo

Podstawowe kontrolki i ich obsługa

Podstawowe kontrolki i ich obsługa Podstawowe kontrolki i ich obsługa Sebastian Batko, Jakub Piotrowski Katedra Informatyki Stosowanej Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Akademia Górniczo-Hutnicza

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

JavaFX. Zaawansowane technologie Javy 2019

JavaFX. Zaawansowane technologie Javy 2019 JavaFX Zaawansowane technologie Javy 2019 Historia postania JavaFX Początkowym pakietem do tworzenia aplikacji GUI w Javie był pakiet AWT. Niedługo po wprowadzeniu został on zastąpiony pakietem Swing,

Bardziej szczegółowo

16) Wprowadzenie do raportowania Rave

16) Wprowadzenie do raportowania Rave 16) Wprowadzenie do raportowania Rave Tematyka rozdziału: Przegląd wszystkich komponentów Rave Tworzenie nowego raportu przy użyciu formatki w środowisku Delphi Aktywacja środowiska Report Authoring Visual

Bardziej szczegółowo

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

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 1 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 w klasie! 2 Język

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 07 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami tworzenia aplikacji okienkowych w C#. Wprowadzenie teoretyczne. Rozważana w

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

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

Języki i metody programowania Java Obsługa zdarzeń - przykłady

Języki i metody programowania Java Obsługa zdarzeń - przykłady Języki i metody programowania Java Obsługa zdarzeń - przykłady wg https://docs.oracle.com/javase/tutorial/uiswing/components/ind ex.html Autor Dr inż. Zofia Kruczkiewicz Rodzaje słuchaczy zdarzeń Wydarzenia

Bardziej szczegółowo

JAVA Materiały do laboratorium III wersja niezaawansowana Marcin Borkowski WSEiZ czerwiec 2006

JAVA Materiały do laboratorium III wersja niezaawansowana Marcin Borkowski WSEiZ czerwiec 2006 1 Najprostszy program okienkowy 1.1 Kod: JAVA Materiały do laboratorium III wersja niezaawansowana Marcin Borkowski WSEiZ czerwiec 2006 public class okno1 extends Frame public okno1() ); okno1 o = new

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

Zdarzenia Klasa Application Powiadomienia Toast AlertDialog

Zdarzenia Klasa Application Powiadomienia Toast AlertDialog Android Wykład 3 1 Zdarzenia Klasa Application Powiadomienia Toast AlertDialog 2 Zdarzenia UI (UI Events) zapewniają programowi interakcje z użytkownikiem. Obiekty określają wzajemne oddziaływania z resztą

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

xmlns:prism=http://www.codeplex.com/prism c. <ContentControl prism:regionmanager.regionname="mainregion" />

xmlns:prism=http://www.codeplex.com/prism c. <ContentControl prism:regionmanager.regionname=mainregion /> 1 Tworzenie Shella a. W pierwszej kolejności tworzymy nowy projekt: WPF Application. Name: Shell SolutionName: PrismApp b. Dodajemy bibliotekę PRISM za pomocą NuGet Managera (dla.net Framework 4.5 Prism

Bardziej szczegółowo

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych mluckner@mini.pw.edu.pl http://www.mini.pw.edu.pl/~lucknerm Programy w Javie składają się z pakietów Pakiety zawierają definicje

Bardziej szczegółowo

Instrukcja obsługi funkcji specjalnych szablonu C01 v.1.0

Instrukcja obsługi funkcji specjalnych szablonu C01 v.1.0 Instrukcja obsługi funkcji specjalnych szablonu C01 v.1.0 UWAGA 1: Przed dokonaniem jakichkolwiek zmian, zalecamy skopiować wcześniej kod html modułu do pliku na lokalnym dysku. W przypadku problemów ułatwi

Bardziej szczegółowo

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel etrader Pekao Podręcznik użytkownika Strumieniowanie Excel Spis treści 1. Opis okna... 3 2. Otwieranie okna... 3 3. Zawartość okna... 4 3.1. Definiowanie listy instrumentów... 4 3.2. Modyfikacja lub usunięcie

Bardziej szczegółowo

POLIMORFIZM, INTERFEJSY, PROGRAMOWANIE ZDARZENIOWE

POLIMORFIZM, INTERFEJSY, PROGRAMOWANIE ZDARZENIOWE POLIMORFIZM, INTERFEJSY, PROGRAMOWANIE ZDARZENIOWE Interfejsy Są definiowane za pomocą słowa interface Nie zawierają definicji metod, lecz tylko ich deklaracje publiczne (public) Nie zawierają składowych

Bardziej szczegółowo

Zaawansowane programowanie obiektowe. Wykład 3 część 2

Zaawansowane programowanie obiektowe. Wykład 3 część 2 Zaawansowane programowanie obiektowe Wykład 3 część 2 Środowisko Eclipse Tworzenie projektu File New project Java project Dodanie klasy File New Class Praca w Eclipse Przykład 1 import java.awt.*; public

Bardziej szczegółowo

Laboratorium programowania urządzeń mobilnych

Laboratorium programowania urządzeń mobilnych Laboratorium programowania urządzeń mobilnych Wprowadzenie Hierarcha klas dla aplikacji typu Silverlight tworzonej przez Visual Studio jest następująca: Obsługa ekranu W urządzeniach z Windows Phone 7

Bardziej szczegółowo

MS Excell 2007 Kurs podstawowy Filtrowanie raportu tabeli przestawnej

MS Excell 2007 Kurs podstawowy Filtrowanie raportu tabeli przestawnej MS Excell 2007 Kurs podstawowy Filtrowanie raportu tabeli przestawnej prowadzi: dr inż. Tomasz Bartuś Kraków: 2008 04 04 Przygotowywanie danych źródłowych Poniżej przedstawiono zalecenia umożliwiające

Bardziej szczegółowo

Wprowadzenie do projektu QualitySpy

Wprowadzenie do projektu QualitySpy Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować

Bardziej szczegółowo

1. Wstęp Niniejszy dokument jest instrukcją użytkownika dla aplikacji internetowej DM TrackMan.

1. Wstęp Niniejszy dokument jest instrukcją użytkownika dla aplikacji internetowej DM TrackMan. Instrukcja korzystania z aplikacji TrackMan wersja WEB 1. Wstęp... 1 2. Logowanie... 1 3. Główny interfejs aplikacji... 2 3.1. Ogólny opis interfejsu... 2 3.2. Poruszanie się po mapie... 2 3.3. Przełączanie

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

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

Oficyna Wydawnicza UNIMEX ebook z zabezpieczeniami DRM

Oficyna Wydawnicza UNIMEX ebook z zabezpieczeniami DRM Oficyna Wydawnicza UNIMEX ebook z zabezpieczeniami DRM Opis użytkowy aplikacji ebookreader Przegląd interfejsu użytkownika a. Okno książki. Wyświetla treść książki podzieloną na strony. Po prawej stronie

Bardziej szczegółowo

Wykład 3: Projektowanie graficznych interfejsów użytkownika w Java

Wykład 3: Projektowanie graficznych interfejsów użytkownika w Java Programowanie komputerów Wykład 3: Projektowanie graficznych interfejsów użytkownika w Java dr inż. Walery Susłow walery.suslow@ie.tu.koszalin.pl Graficzny interfejs użytkownika GUI (Graphical User Interface),

Bardziej szczegółowo

Pierwsza ramka. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 10

Pierwsza ramka. dr Anna Łazińska, WMiI UŁ Podstawy języka Java   1 / 10 Pierwsza ramka dr Anna Łazińska, WMiI UŁ Podstawy języka Java https://www.javatpoint.com 1 / 10 Pierwsza ramka - kod package myframe1; import javax.swing.jframe; import javax.swing.jlabel; class MyFrame1

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

Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.2/2015

Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.2/2015 Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.2/2015 Informacje ogólne Wnioski o dofinansowanie projektu w ramach konkursu nr 1/1.1.2/2015 mogą

Bardziej szczegółowo