9. Swing wprowadzenie

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

Download "9. Swing wprowadzenie"

Transkrypt

1 9.1 Komponenty 9. Swing wprowadzenie 9.2 Przykłady tworzenia GUI W. Kasprzak: Programowanie zdarzeniowe Komponenty 1) Przegląd komponentów Swing-a 1. Kontenery główne 2. Kontenery ogólne pośredniego poziomu 3. Kontenery specjalne pośredniego poziomu 4. Podstawowe kontrolki (wejście od uŝytkownika) 5. Nieedytowalne komponenty informacyjne 6. Interaktywne komponenty z edytowalną sformatowaną informacją W. Kasprzak: Programowanie zdarzeniowe 9-2

2 Kontenery główne JApplet JDialog JFrame W. Kasprzak: Programowanie zdarzeniowe 9-3 Kontenery ogólne pośredniego poziomu JPanel JScrollPane JSplitPane JTabbedPane JToolBar W. Kasprzak: Programowanie zdarzeniowe 9-4

3 Kontenery specjalne pośredniego poziomu Internal frame Layered pane Root pane W. Kasprzak: Programowanie zdarzeniowe 9-5 Podstawowe kontrolki JButton JComboBox JList JMenu JSlider JSpinner JTextField lub JFormattedTextField W. Kasprzak: Programowanie zdarzeniowe 9-6

4 Nieedytowalne komponenty informacyjne JLabel JProgressBar JToolTip W. Kasprzak: Programowanie zdarzeniowe 9-7 Interaktywne komponenty z edytowalną sformatowaną informacją JColorChooser JFileChooser JTable JText JTree W. Kasprzak: Programowanie zdarzeniowe 9-8

5 2) Kontenery główne - JFrame, JDialog, JApplet Aby narysować komponent GUI na ekranie musi on naleŝeć do pewnej hierarchii komponentów, której korzeniem jest kontener główny. Komponent GUI moŝe być zawarty w danej hierarchii tylko raz dodanie go do innego kontenera spowoduje automatyczne usunięcie go z pierwszego. KaŜdy kontener główny zawiera content pane - zawiera (bezpośrednio lub pośrednio) wszystkie wizualne komponenty danego kontenera. Opcjonalnym elementem kontenera głównego jest pasek menu nie naleŝy on do content pane - zwykle umieszczany na górze obszaru kontenera. Przykład. Ramka zawiera pasek menu (kolor niebieski) i w content pane zawarta jest duŝa pusta etykieta w kolorze Ŝółtym. W. Kasprzak: Programowanie zdarzeniowe 9-9 Hierarchia komponentów Aplikacja o GUI opartym na Swing-u posiada przynajmniej jedną hierarchię komponentów o korzeniu będącym kontenerem klasy JFrame. Np. aplikacja ma trzy hierarchie komponentów jedną dla okna głównej ramka i dwa dla okien dialogowych (odpowiednio kontenery są obiektami klas JFrame i JDialog). W. Kasprzak: Programowanie zdarzeniowe 9-10

6 Aplet oparty na Swing-u posiada przynajmniej jedną hierarchię komponentów o korzeniu będącym obiektem klasy JApplet. Np. aplet posiadający okno dialogowe posiada dwie hierarchie komponentów jedna o korzeniu klasy JApplet a druga - JDialog. Dodanie komponentu do hierarchii metoda add dla content pane. Np. frame.getcontentpane().add(yellowlabel, BorderLayout.CENTER); Domyślna realizacja content pane to obiekt klasy pochodnej od JComponent posiadający menadŝera układu klasy BorderLayout. Panel zawartości moŝe być ustawiany przez uŝytkownika stosownie do jego wymagań. Uwaga: metoda getcontentpane zwraca obiekt klasy Container nie klasy JComponent wymaga konwersji do JComponent przed ustawieniem cech klasy JComponent panelu zawartości. Alternatywnym rozwiązaniem jest uczynienie własnego panelu panelem zawartości. Powinien on być nieprzezroczysty. Korzystamy z metody setcontentpane. Np. W. Kasprzak: Programowanie zdarzeniowe 9-11 // Utwórz panel i dodaj do niego komponenty JPanel contentpane = new JPanel(new BorderLayout()); contentpane.setborder(someborder); contentpane.add(somecomponent, BorderLayout.CENTER); contentpane.add(anothercomponent, BorderLayout.PAGE_END); // Uczyń panel panelem zawartości kontenera głównego contentpane.setopaque(true); głównykontener.setcontentpane(contentpane); Uwaga. Z zasady panelami zawartości nie powinny być obiekty klas przezroczystych kontenerów takich, jak JScrollPane, JSplitPane i JTabbedPane. Nawet po wymuszeniu ich nieprzezroczystości metodą setopaque(true) nie będą miały właściwego wyglądu. Jeszcze innym sposobem ustawienia panelu zawartości jest dodanie komponentu będącego kontenerem do panelu zawartości, który przykrywa w pełni obszar wizualizacji panelu. W. Kasprzak: Programowanie zdarzeniowe 9-12

7 Dodanie paska menu NaleŜy utworzyć obiekt klasy JMenuBar, dodać do niego obiekty menu i wywołać metodę setjmenubar. Np. frame.setjmenubar(cyanmenubar); Root Pane KaŜdy kontener główny zawiera pośredni kontener zwany root pane. Zarządza on content pane, paskiem menu i dalszymi kontenerami tzw. layered pane i glass pane. layered pane zawiera panel zawartości i pasek menu, umoŝliwia uporządkowanie dalszych komponentów na osi Z; glass pane słuŝy do przechwytywania zdarzeń wprowadzania informacji dla kontenera głównego i do jednoczesnego rysowania w obszarze wielu komponentów. W. Kasprzak: Programowanie zdarzeniowe Przykłady tworzenia GUI Pakiet Swing ( javax.swing ) jest częścią "Java Foundation Classes (JFC)". Swing dostarcza wizualnych komponentów aplikacji - od przycisków do dzielonych paneli i wykazów - wspomagając uŝytkownika podczas projektowania jego GUI. Nazwy komponentów Swing-a rozpoczynają się na literę J. Pakiet Swing pojawił się jako dodatek do JDK 1.1. Przedtem komponenty GUI pochodziły z Abstract Window Toolkit (AWT) - w JDK 1.0 i 1.1. Wprawdzie Java 2 nadal zawiera komponenty AWT jednak powinniśmy zasadniczo korzystać z komponentów Swing-a. Gdy komponenty Swing-a "przecinają się" na ekranie z komponentami AWT, te ostatnie są zawsze kreślone na wierzchu. W. Kasprzak: Programowanie zdarzeniowe 9-14

8 1) Pierwszy program w Swing-u Przykład 9.1. Program HelloWorldSwing. Wizualny efekt programu: Kod programu HelloWorldSwing: import javax.swing.*; // Zaimportuj główny pakiet Swing-a. public class HelloWorldSwing { public static void main(string[] args) { JFrame frame = new JFrame("HelloWorldSwing"); // Kontener główny. final JLabel label = new JLabel("Hello World"); // Komponent frame.getcontentpane().add(label); // Dodaj etykietę do kontenera frame.setdefaultcloseoperation(jframe.exit_on_close); // Ustaw // domyślną reakcję obiektu klasy JFrame na aktywację przycisku "close". frame.pack(); // Przygotuj okno do prezentacji frame.setvisible(true); // Wyświetl okno Komentarz 1) Obok głównego pakietu W. Kasprzak: Programowanie zdarzeniowe 9-15 import javax.swing.*; większość programów w Swing-u będzie potrzebować 2 pakietów AWT: import java.awt.*; import java.awt.event.*; w celu obsługi zdarzeń. 2) KaŜdy program GUI w Swing-u wymaga przynajmniej jednego głównego kontenera, wspomagającego komponenty w rysowaniu i obsłudze zdarzeń. Istnieją 3 kontenery główne: JFrame, JDialog, JApplet (dla apletów). Obiekt klasy JFrame implementuje pojedyncze główne okno; Obiekt klasy JDialog implementuje wtórne okno (zaleŝne od innego okna); Obiekt klasy JApplet implementuje obszar ekranu wewnątrz okna przeglądarki. Obiekt klasy JFrame implementowany jest wizualnie jako okno posiadające "dekoracje" w postaci: ramki, tytułu, przycisków dla zmniejszania ("ikonizacji") i zamykania okna. W. Kasprzak: Programowanie zdarzeniowe 9-16

9 2) Przyciski i etykiety. Inny sposób zamykania okna to skorzystanie z mechanizmu obsługi zdarzeń - WindowListener: Np. frame.addwindowlistener(new WindowAdapter() { public void windowclosing(windowevent e) { System.exit(0); ); Przykład 9.2. Program SwingApplication. Po kaŝdym kliknięciu przycisku (obiekt klasy JButton) modyfikowana jest wartość etykiety (obiekt klasy JLabel). import javax.swing.*; import java.awt.*; W. Kasprzak: Programowanie zdarzeniowe 9-17 import java.awt.event.*; public class SwingApplication { private static String labelprefix = "Number of button clicks: "; private int numclicks = 0; public Component createcomponents() { // Utwórz komponenty final JLabel label = new JLabel(labelPrefix + "0 "); JButton button = new JButton("I'm a Swing button!"); button.setmnemonic(keyevent.vk_i); // Skrót klawiszowy dla akcji przycisku button.addactionlistener(new ActionListener() { // Rejestracja obsługi // zdarzenia i blok inicjalizacji instancji klasy anonimowej public void actionperformed(actionevent e) { // Metoda obsługi zdarzenia numclicks++; label.settext(labelprefix + numclicks); ); label.setlabelfor(button); // Ustawia komponent, dla którego przeznaczona jest // ta etykieta. W. Kasprzak: Programowanie zdarzeniowe 9-18

10 /* Zawartość kontenera będzie dodana do obiektu klasy JPanel:*/ JPanel pane = new JPanel(); pane.setborder(borderfactory.createemptyborder( // Definicja brzegu. 30, // góra 30, // lewa strona 10, // dół 30) // prawa strona ); pane.setlayout(new GridLayout(1, 2)); // Nowy menadŝer układu. pane.add(button); pane.add(label); return pane; public static void main(string[] args) { try { UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName()); catch (Exception e) { W. Kasprzak: Programowanie zdarzeniowe 9-19 // Utwórz obiekt głównego kontenera i dodaj komponenty: JFrame frame = new JFrame("SwingApplication"); SwingApplication app = new SwingApplication(); Component contents = app.createcomponents(); frame.getcontentpane().add(contents, BorderLayout.CENTER); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.pack(); frame.setvisible(true); Uwagi do powyŝszego programu: (1) Program SwingApplication korzysta z 4 komponentów Swing-a: kontenera głównego ramki (JFrame) - czyli głównego okna GUI; kontenera pośredniego panelu (JPanel) ; kontrolki - przycisku (JButton) ; komponentu - etykiety (JLabel). JPanel jako pośredni kontener upraszcza pozycjonowanie komponentów takich jak przycisk i etykieta. Inne waŝne pośrednie kontenery to: W. Kasprzak: Programowanie zdarzeniowe 9-20

11 panel z moŝliwością przewijania (JScrollPane) i panel z zakładkami (JTabbedPane). Program moŝe generować okno o postaci zaleŝnej od systemu - programista moŝe wybrać postać okna: wygląd charakterystyczny dla Java, CDE/Motif, Windows, lub inny. Java CDE/Motif Windows public static void main(string[] args) { try { UIManager.setLookAndFeel( // Ustawia wygląd okna UIManager.getCrossPlatformLookAndFeelClassName()); // Podaje klasę implementującą dekoracje typowe dla środowiska Java. catch (Exception e) {... // Utwórz i wizualizuj GUI. W. Kasprzak: Programowanie zdarzeniowe 9-21 (2) Utworzenie przycisku i etykiety. Np. inicjalizacja przycisku: JButton button = new JButton("I'm a Swing button!"); // Utwórz obiekt button.setmnemonic('i'); // Ustaw klawisz "i" jako skrót akcji. button.addactionlistener(... obiekt nasłuchujący...); // Rejestruj obsługę Np. inicjalizacja etykiety:...// W miejscu deklaracji zmiennych: private static String labelprefix = "Number of button clicks: "; private int numclicks = 0;...// W kodzie inicjalizacji dla GUI: final JLabel label = new JLabel(labelPrefix + "0 ");... label.setlabelfor(button); // Etykieta jest przeznaczona dla przycisku...// W procedurze obsługi zdarzenia "kliknięcia" przycisku: label.settext(labelprefix + numclicks); // Zmiana tekstu etykiety W. Kasprzak: Programowanie zdarzeniowe 9-22

12 3) Listy opcji Istnieje abstrakcyjna klasa public abstract class AbstractButton extends JComponent implements ItemSelectable, SwingConstants Ta klasa opisuje wspólne cechy dla klas JButton i JMenuItem. Po tych klasach dziedziczą: klasy pól wyboru JCheckBox i przycisków radiowych JRadioButton; klasy opcji "menu" (JCheckBoxMenuItem, JMenu, JRadioButtonMenuItem). Pola wyboru (check box) są zbliŝone funkcjonalnie do przycisków radiowych (radio button), ale inny jest ich tryb wyboru z grupy takich W. Kasprzak: Programowanie zdarzeniowe 9-23 samych elementów - z grupy pól wyboru moŝna wybrać dowolną ich liczbę naraz, ale z grupy przycisków radiowych - tylko jeden przycisk. Inna kontrolka wyboru opcji to lista wysuwnych opcji (JComboBox). (4) Brzegi panelu Wokół komponentów panelu istnieje pusty obszar - "brzeg" utworzony metodą setborder: pane.setborder(borderfactory.createemptyborder( 30, // rozmiar brzegu u góry wyraŝony w pikselach 30, // na lewo 10, // u dołu 30) // na prawo ); W. Kasprzak: Programowanie zdarzeniowe 9-24

13 5) Panel zawartości ( content pane ) KaŜdy kontener główny posiada jeden ukryty kontener pomocniczy "content pane". Za wyjątkiem paska menu panel zawartości zawiera wszystkie wizualne komponenty głównego okna. Do dołączania komponentów do kontenera słuŝą róŝne wersje metody add(). Np. frame = new JFrame(...); button = new JButton(...); label = new JLabel(...); pane = new JPanel(); pane.add(button); pane.add(label); frame.getcontentpane().add(pane, BorderLayout.CENTER); W. Kasprzak: Programowanie zdarzeniowe ) Obsługa zdarzeń Typowe zdarzenia w systemie to przyciśnięcie klawisza klawiatury lub przycisku myszy. KaŜdy obiekt moŝe zostać powiadomiony o zdarzeniu - wystarczy, jeśli implementuje właściwy interfejs i jest zarejestrowany jako "listener" dla odpowiedniego źródła zdarzeń. Obsługa zdarzeń wymaga trzech fragmentów kodu. a. Definicja klasy obsługującej zdarzenia jest to klasa implementująca właściwy interfejs XXXListener lub dziedzicząca po klasie, która implementuje taki interfejs; np. public class MojaKlasa implements ActionListener { b. Rejestracja obiektu tej klasy dla obsługi zdarzenia jednego lub więcej komponentów; np. komponent.addactionlistener(obiektklasy); c. Definicja metod interfejsu w treści klasy obsługującej zdarzenie. Np. public void actionperformed(actionevent e) {...// właściwy kod obsługi zdarzenia W. Kasprzak: Programowanie zdarzeniowe 9-26

14 Uwaga: często klasa obsługi zdarzenia definiowana jest jako anonimowa klasa wewnętrzna. W klasie SwingApplication są dwa rodzaje obsługi zdarzeń: dla zamykania okna ("WindowListener"), dla przycisku ("ActionListener"). button.addactionlistener(...); - rejestracja obsługi zdarzenia dla button. Np. button.addactionlistener(new ActionListener() { public void actionperformed(actionevent e) { numclicks++; label.settext(labelprefix + numclicks); ); Zdarzenie typu "Action" dla przycisku spowoduje wywołanie metody actionperformed (jedynej metody deklarowanej w interfejsie ActionListener) o jednym argumencie, obiekcie klasy ActionEvent, podającym informację o zdarzeniu i jego źródłowym obiekcie. W. Kasprzak: Programowanie zdarzeniowe 9-27 Przykłady zdarzeń zgłaszanych przez komponenty Swing: Zjawisko powodujące zdarzenie UŜytkownik wybiera i "klika" na przycisk, wybiera "Return" pisząc w polu tekstowym, lub wybiera element menu. UŜytkownik zamyka główne okno. UŜytkownik "klika" myszą, gdy kursor znajduje się nad komponentem. UŜytkownik przesuwa kursor myszą nad komponentem. Komponent staje się widoczny. Komponent uzyskuje kontekst klawiatury. Zmiany opcji na wykazie lub liście. Typ obsługi zdarzenia ActionListener WindowListener MouseListener MouseMotionListener ComponentListener FocusListener ListSelectionListener Obsługa zdarzeń aplikacji realizowana jest w jednym wątku. W. Kasprzak: Programowanie zdarzeniowe 9-28

15 4) Pole tekstowe, tekst w HTML i ikonki Klasa JTextField pole tekstowe Utworzenie obiektu typu pole tekstowe, np.: JTextField tempcelsius = null; tempcelsius = new JTextField(5); Parametr konstruktora podaje liczbę kolumn pola tekstowego, co wraz z miarą dla aktualnej czcionki wyznacza szerokość pola. Przykład 9.3. Program CelsiusConverter: uŝytkownik wprowadza wartość temperatury wyraŝoną w stopniach Celsjusza, wybiera przycisk "Convert" a komponent - "etykieta" podaje równowaŝną wartość w stopniach Fahrenheita. import java.awt.*; import java.awt.event.*; W. Kasprzak: Programowanie zdarzeniowe 9-29 import javax.swing.*; // Klasa zawiera komponenty typu JButton, JTextField, JLabel. public class CelsiusConverter implements ActionListener { JFrame converterframe; // Identyfikator ramki JPanel converterpanel; // Identyfikator panelu JTextField tempcelsius; // Identyfikator pola teksowego JLabel celsiuslabel, fahrenheitlabel; // Dwa identyfkatory etykiet JButton converttemp; // Identyfikator przycisku // Konstruktor : public CelsiusConverter() { // Utwórz okno główne i panel converterframe = new JFrame("Convert Celsius to Fahrenheit"); converterpanel = new JPanel(); converterpanel.setlayout(new GridLayout(2, 2)); addwidgets(); // Dołącz komponenty - metoda programisty // Dołącz panel to okna. converterframe.getcontentpane().add ( converterpanel, BorderLayout.CENTER); W. Kasprzak: Programowanie zdarzeniowe 9-30

16 // Zakończ program, gdy okno zostanie zamknięte. converterframe.setdefaultcloseoperation(jframe.exit_on_close); // Realizacja i pierwsza wizualizacja ramki z komponentami: converterframe.pack(); converterframe.setvisible(true); // Koniec konstruktora // Metoda dla tworzenia i dołączania komponentów: private void addwidgets() { tempcelsius = new JTextField(2); celsiuslabel = new JLabel("Celsius", SwingConstants.LEFT); converttemp = new JButton("Convert..."); fahrenheitlabel = new JLabel("Fahrenheit", SwingConstants.LEFT); // Rejestruj obiekt dla obsługi zdarzeń dla przycisku Convert : converttemp.addactionlistener(this); // Dołącz komponenty do panelu: converterpanel.add(tempcelsius); converterpanel.add(celsiuslabel); converterpanel.add(converttemp); W. Kasprzak: Programowanie zdarzeniowe 9-31 converterpanel.add(fahrenheitlabel); celsiuslabel.setborder(borderfactory.createemptyborder(5,5,5,5)); fahrenheitlabel.setborder(borderfactory.createemptyborder(5,5,5,5)); // Koniec metody addwidgets() // Implementacja interfejsu ActionListener: public void actionperformed(actionevent event) { // Pobierz i zamień napis na wartość double oraz przelicz na Fahrenheita: int tempfahr = (int)((double.parsedouble(tempcelsius.gettext())) * ); fahrenheitlabel.settext(tempfahr + " Fahrenheit"); // Metoda main public static void main(string[] args) { // Ustaw wygląd okna try { UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName()); catch(exception e) { W. Kasprzak: Programowanie zdarzeniowe 9-32

17 // Utwórz obiekt klasy programisty: CelsiusConverter converter = new CelsiusConverter(); Komentarz: Obsługa zdarzeń dla przycisku "convert" zawiera operację pobrania napisu i jego konwersję na liczbę: JButton converttemp;... converttemp.addactionlistener(this);... public void actionperformed(actionevent event) { int tempfahr = (int)((double.parsedouble(tempcelsius.gettext())) * ); fahrenheitlabel.settext(tempfahr + " Fahrenheit"); W. Kasprzak: Programowanie zdarzeniowe 9-33 Dołączanie tekstu sformatowanego w HTML Tekst przycisków i etykiet moŝe być specyfikowany w języku HTML. Specyfikacja tekstu w HTML dla obiektu typu "etykieta" polega na rozpoczęciu napisu od znacznika <HTML> i podaniu poprawnego kodu w html. Jest to poŝyteczne rozwiązanie wtedy, gdy zmieniamy krój czcionki i kolor lub wprowadzamy łamanie wiersza w polu etykiety. Przykład 9.4. Poprzedni program 9.3 po zmianach uwzględniających tekst w HTML: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class CelsiusConverter2 implements ActionListener { JFrame converterframe; W. Kasprzak: Programowanie zdarzeniowe 9-34

18 JPanel converterpanel; JTextField tempcelsius; JLabel celsiuslabel, fahrenheitlabel; JButton converttemp; public CelsiusConverter2() { converterframe = new JFrame("Convert Celsius to Fahrenheit"); converterpanel = new JPanel(); converterpanel.setlayout(new GridLayout(2, 2)); addwidgets(); converterframe.getcontentpane().add(converterpanel, BorderLayout.CENTER); converterframe.setdefaultcloseoperation(jframe.exit_on_close); converterframe.pack(); converterframe.setvisible(true); private void addwidgets() { ImageIcon icon = new ImageIcon("img/convert.gif", "Convert temperature"); tempcelsius = new JTextField(2); W. Kasprzak: Programowanie zdarzeniowe 9-35 celsiuslabel = new JLabel("Celsius", SwingConstants.LEFT); converttemp = new JButton(icon); fahrenheitlabel = new JLabel("Fahrenheit", SwingConstants.LEFT); celsiuslabel.setborder(borderfactory.createemptyborder(5,5,5,5)); fahrenheitlabel.setborder(borderfactory.createemptyborder(5,5,5,5)); converttemp.addactionlistener(this); converterpanel.add(tempcelsius); converterpanel.add(celsiuslabel); converterpanel.add(converttemp); converterpanel.add(fahrenheitlabel); public void actionperformed(actionevent event) { int tempfahr = (int)((double.parsedouble(tempcelsius.gettext())) * ); // HTML: kolor czcionki zaleŝy teraz od wartości temperatury: if (tempfahr <= 32) { fahrenheitlabel.settext("<html><font Color=blue>" + tempfahr + "&#176 </Font><Font Color=black> Fahrenheit</font></html>"); W. Kasprzak: Programowanie zdarzeniowe 9-36

19 else if (tempfahr <= 80) { fahrenheitlabel.settext("<html><font Color=green>" + tempfahr + "&#176 </Font><Font Color=black> Fahrenheit </Font></html>"); else { fahrenheitlabel.settext("<html><font Color=red>" + tempfahr + "&#176 </Font><Font Color=black> Fahrenheit</Font></html>"); public static void main(string[] args) { try { UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName()); catch(exception e) { CelsiusConverter2 converter = new CelsiusConverter2(); Wyświetlanie symbolu temperatury umoŝliwia kod w html-u: &#176. Metoda setfont umoŝliwia ustawienie czcionki dla całego komponentu. W. Kasprzak: Programowanie zdarzeniowe 9-37 Dołączanie ikon "Ikona" to obraz o ustalonym rozmiarze. Obiekt typu "ikona" odwołuje się do interfejsu Icon. Implementacja tego interfejsu w Swingu to np.: ImageIcon - rysuje obraz zadany w formacie GIF lub JPEG. Np. ImageIcon icon = new ImageIcon("img/convert.gif", // Nazwa pliku obrazka "Convert temperature");... converttemp = new JButton(icon); // PrzekaŜ ikonę konstruktorowi etykiety W. Kasprzak: Programowanie zdarzeniowe 9-38

20 5) Wiele paneli, listy opcji, obrazy Przykład 9.5. Program LunarPhases : uŝytkownik wybiera fazę księŝyca z listy, a odpowiedni obraz pojawia się w obszarze dolnego panelu. import java.awt.*; import java.awt.event.*; import javax.swing.*; W. Kasprzak: Programowanie zdarzeniowe 9-39 import java.net.url; public class LunarPhases implements ActionListener { final static int NUM_IMAGES = 8; final static int START_INDEX = 3; ImageIcon[] images = new ImageIcon[NUM_IMAGES]; JPanel mainpanel, selectpanel, displaypanel; // Ident. trzech paneli JComboBox phasechoices = null; // Dla listy wysuwnych opcji JLabel phaseiconlabel = null; public LunarPhases() { // Konstruktor utworzy 3 panele. selectpanel = new JPanel(); // Najpierw utworzymy 2 pod-panele displaypanel = new JPanel(); addwidgets(); // Dołączenie komponentów do paneli // Główny panel będzie zawierać 2 pod-panele mainpanel = new JPanel(); mainpanel.setlayout(new GridLayout(2,1,5,5)); mainpanel.setborder(borderfactory.createemptyborder(5,5,5,5)); // Dołącz pod-panele. W. Kasprzak: Programowanie zdarzeniowe 9-40

21 mainpanel.add(selectpanel); mainpanel.add(displaypanel); // Koniec konstruktora // Metoda tworzenia komponentów dla listy opcji i prezentacji faz księŝyca. private void addwidgets() { for (int i = 0; i < NUM_IMAGES; i++) { String imagename = "images/image" + i + ".jpg"; System.out.println("getting image: " + imagename); // Pobierz obraz URL iconurl = ClassLoader.getSystemResource(imageName); ImageIcon icon = new ImageIcon(iconURL); images[i] = icon; // Utwórz obiekt typu "etykieta" dla wyświetlania obrazów phaseiconlabel = new JLabel(); phaseiconlabel.sethorizontalalignment(jlabel.center); phaseiconlabel.setverticalalignment(jlabel.center); phaseiconlabel.setverticaltextposition(jlabel.center); phaseiconlabel.sethorizontaltextposition(jlabel.center); W. Kasprzak: Programowanie zdarzeniowe 9-41 phaseiconlabel.setborder(borderfactory.createcompoundborder( BorderFactory.createLoweredBevelBorder(), BorderFactory.createEmptyBorder(5,5,5,5))); phaseiconlabel.setborder(borderfactory.createcompoundborder( BorderFactory.createEmptyBorder(0,0,10,0), phaseiconlabel.getborder())); // Utwórz wysuwaną listę opcji - faz księŝyca String[] phases = { "New", "Waxing Crescent", "First Quarter", "Waxing Gibbous", "Full", "Waning Gibbous", "Third Quarter", "Waning Crescent" ; phasechoices = new JComboBox(phases); phasechoices.setselectedindex(start_index); // Wyświetl pierwszy obraz. phaseiconlabel.seticon(images[start_index]); phaseiconlabel.settext(""); // Dodaj obramowanie panelu wyboru selectpanel.setborder(borderfactory.createcompoundborder( BorderFactory.createTitledBorder("Select Phase"), BorderFactory.createEmptyBorder(5,5,5,5))); W. Kasprzak: Programowanie zdarzeniowe 9-42

22 // Dodaj obramowanie panelu wyświetlania displaypanel.setborder(borderfactory.createcompoundborder( BorderFactory.createTitledBorder("Display Phase"), BorderFactory.createEmptyBorder(5,5,5,5))); // Dodaj listę opcji do panelu wyboru i etykietę z obrazem do 2-go panelu selectpanel.add(phasechoices); displaypanel.add(phaseiconlabel); // Zarejestruj swoją obsługę zdarzeń dla listy opcji: phasechoices.addactionlistener(this); // Implementacja obsługi zdarzeń public void actionperformed(actionevent event) { if ("comboboxchanged".equals(event.getactioncommand())) { // Zmodyfikuj ikonę - odpowiednio do aktualnego wyboru phaseiconlabel.seticon(images[phasechoices.getselectedindex()]); public static void main(string[] args) { // Metoda main W. Kasprzak: Programowanie zdarzeniowe 9-43 LunarPhases phases = new LunarPhases(); // Nowy obiekt głównej klasy JFrame lunarphasesframe = new JFrame("Lunar Phases"); // Utwórz okno try { // Ustaw wygląd okna: UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName()); catch(exception e) { // Ustaw kontener: lunarphasesframe.setcontentpane(phases.mainpanel); // Zakończ po zamknięciu okna lunarphasesframe.setdefaultcloseoperation(jframe.exit_on_close); // Realizacja i wizualizacja ramki lunarphasesframe.pack(); lunarphasesframe.setvisible(true); Uwagi do programu (1) Panele w głównym oknie W. Kasprzak: Programowanie zdarzeniowe 9-44

23 Trzy panele programu LunarPhases rozmieszczono następująco: Wszystkie 3 panele tworzone są w konstruktorze klasy LunarPhases a następnie dwa z nich (selectpanel, displaypanel) dołączane są do trzeciego (mainpanel). mainpanel = new JPanel(); mainpanel.setlayout(new GridLayout(2,1,5,5)); mainpanel.setborder(borderfactory.createemptyborder(5,5,5,5)); mainpanel.add(selectpanel); mainpanel.add(displaypanel); Za właściwy rozmiar i rozmieszczenie dołączanych komponentów w głównym panelu odpowiada menadŝer rozkładu. Domniemanym zarządcą dla JPanel jest FlowLayout - rozmieszczanie od lewej do prawej. W. Kasprzak: Programowanie zdarzeniowe 9-45 (2) ZłoŜony brzeg W omawianym przykładzie oba panele (selectpanel i displaypanel) posiadają złoŝone brzegi, które składają się z zewnętrznego brzegu z tytułem i wewnętrznego brzegu "pustego". Np. dodanie brzegu dla selectpanel : selectpanel.setborder(borderfactory.createcompoundborder( BorderFactory.createTitledBorder("Select Phase"), BorderFactory.createEmptyBorder(5,5,5,5))); Podobny kod wystąpi dla ustawienia brzegu panelu displaypanel. W. Kasprzak: Programowanie zdarzeniowe 9-46

24 (3) Lista wysuwanych opcji Wysuwalna lista opcji jest domyślnie nieedytowalną listą. Nieedytowalna lista wysuwana wygląda początkowo jak przycisk.. Po jej wybraniu wyświetlona zostaje lista wykluczających się opcji.. Np. utworzenie i ustawienie wysuwanej listy opcji - phasechoices: phasechoices = new JComboBox(phases); phasechoices.setselectedindex(start_index); // Początkowy napis W powyŝszym kodzie następuje inicjalizacja obiektu tablicą napisów. Inne sposoby inicjalizacji - przekazanie ikonek lub wektora danych. W. Kasprzak: Programowanie zdarzeniowe 9-47 (4) Obsługa zdarzeń dla wysuwanej listy opcji Wysuwalna lista opcji zgłasza zdarzenie typu akcji ("Action") po wybraniu przez uŝytkownika jednej z jej opcji. Przykład kodu obsługi takiego zdarzenia: phasechoices.addactionlistener(this);... public void actionperformed(actionevent event) { if ("comboboxchanged".equals(event.getactioncommand())) { // Zmień ikonę w celu wyświetlenia wybranej fazy księŝyca phaseiconlabel.seticon(images[phasechoices.getselectedindex()]); Kod obsługi - pobierz indeks wybranej opcji, zamień go na nazwę obrazu i zmodyfikuj etykietę dla wyświetlenia właściwej ikony. (5) Wiele obrazów W programie LunarPhases obiekt typu "etykieta" wykorzystuje 8 obrazów, ale tylko jeden z nich jest widoczny w danej chwili. Mamy wybór W. Kasprzak: Programowanie zdarzeniowe 9-48

25 pomiędzy wcześniejszym załadowaniem wszystkich obrazów a ładowaniem pojedynczego obrazu w razie jego wybrania. Np. wszystkie obrazy ładowane są na raz z chwilą tworzenia obiektu. final static int NUM_IMAGES = 8; final static int START_INDEX = 3; ImageIcon[] images = new ImageIcon[NUM_IMAGES];... private void addwidgets() { // W metodzie addwidgets: // pobierz obrazy i umieść je w tablicy ikonek typu ImageIcon. for (int i = 0; i < NUM_IMAGES; i++) { String imagename = "images/image" + i + ".jpg"; URL iconurl = ClassLoader.getSystemResource(imageName); ImageIcon icon = new ImageIcon(iconURL); images[i] = icon; Wykorzystano tu metodę getsystemresource w klasie ClassLoader która poszukuje plików na domyślnej ścieŝce klas. W. Kasprzak: Programowanie zdarzeniowe ) Przyciski radiowe JRadioButton. Okna dialogowe JOptionPane. Przykład 9.6. Program VoteDialog ilustruje tworzenie dialogu z uŝytkownikiem i korzystanie z przycisków radiowych. UŜytkownik wybiera właściwy przycisk radiowy i potwierdza swój wybór przyciskiem "głosowania". Pojawia się potwierdzenie w postaci okna dialogowego, które moŝe teŝ być kontynuacją zapytań. import javax.swing.*; import java.awt.*; W. Kasprzak: Programowanie zdarzeniowe 9-50

26 import java.awt.event.*; public class VoteDialog extends JPanel { JLabel label; JFrame frame; String simpledialogdesc = "The candidates"; public VoteDialog(JFrame frame) { // Konstruktor klasy głównej this.frame = frame; JLabel title; // Utwórz komponenty JPanel choicepanel = createsimpledialogbox(); // Metoda własna title = new JLabel("Click the \"Vote\" button" + " once you have selected a candidate.", JLabel.CENTER); label = new JLabel("Vote now!", JLabel.CENTER); label.setborder(borderfactory.createemptyborder(10,10,10,10)); choicepanel.setborder(borderfactory.createemptyborder(20,20,5,20)); // Ustal rozkład komponentów. W. Kasprzak: Programowanie zdarzeniowe 9-51 setlayout(new BorderLayout()); add(title, BorderLayout.NORTH); add(label, BorderLayout.SOUTH); add(choicepanel, BorderLayout.CENTER); // Koniec konstruktora void setlabel(string newtext) { label.settext(newtext); // PoniŜsza metoda tworzy okno dialogowe private JPanel createsimpledialogbox() { final int numbuttons = 4; JRadioButton[] radiobuttons = new JRadioButton[numButtons]; final ButtonGroup group = new ButtonGroup(); // Grupa przycisków JButton votebutton = null; final String defaultmessagecommand = "default"; final String yesnocommand = "yesno"; final String yeahnahcommand = "yeahnah"; final String ynccommand = "ync"; W. Kasprzak: Programowanie zdarzeniowe 9-52

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Bardziej szczegółowo

Kurs programowania. Wykład 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

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

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

Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy. Tworzenie łącz w apletach

Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy. Tworzenie łącz w apletach Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy. Tworzenie łącz w apletach Przykład 1 a) Program ProstyAplet2.class uruchomiony jako aplet w przeglądarce

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

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

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

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

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

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

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

Aplikacja wielowątkowa prosty komunikator

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

Bardziej szczegółowo

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. inne przydatne komponenty.

SWING ZAGADNIENIA: wprowadzenie, kontenery i komponenty, LayoutManager, komponenty tekstowe. inne przydatne komponenty. SWING ZAGADNIENIA: wprowadzenie, kontenery i komponenty, LayoutManager, komponenty tekstowe. inne przydatne komponenty. MATERIAŁY: http://docs.oracle.com/javase/tutorial/uiswing/ http://th-www.if.uj.edu.pl/zfs/ciesla/

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

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

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

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku Przykładowa dostępna aplikacja w Visual Studio - krok po kroku Zadaniem poniższego opisu jest pokazanie, jak stworzyć aplikację z dostępnym interfejsem. Sama aplikacja nie ma konkretnego zastosowania i

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

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

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1). Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1). Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej technologię usług sieciowych (ang. Web Services).

Bardziej szczegółowo

Programowanie w języku Java WYKŁAD

Programowanie w języku Java WYKŁAD Programowanie w języku Java WYKŁAD dr inż. Piotr Zabawa Certyfikowany Konsultant IBM/Rational e-mail: pzabawa@pk.edu.pl www: http://www.pk.edu.pl/~pzabawa 05.05.2014 WYKŁAD 11 GUI w Swing cz. 1 Wykład

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

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

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 1

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 1 z wykorzystaniem języka Java ME ćwiczenia 1 Budowa aplikacji MIDP utworzenie klasy dziedziczącej z klasy java.microedition.midlet.midlet Klasa musi posiadać przynajmniej trzy metody: startapp() inicjalizacja

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

Multimedia JAVA. Historia

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

Bardziej szczegółowo

KaŜdy z formularzy naleŝy podpiąć do usługi. Nazwa usługi moŝe pokrywać się z nazwą formularza, nie jest to jednak konieczne.

KaŜdy z formularzy naleŝy podpiąć do usługi. Nazwa usługi moŝe pokrywać się z nazwą formularza, nie jest to jednak konieczne. Dodawanie i poprawa wzorców formularza i wydruku moŝliwa jest przez osoby mające nadane odpowiednie uprawnienia w module Amin (Bazy/ Wzorce formularzy i Bazy/ Wzorce wydruków). Wzorce formularzy i wydruków

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

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5. Ćwiczenie 5 Aplikacja wielo-okienkowa

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5. Ćwiczenie 5 Aplikacja wielo-okienkowa Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5 Ćwiczenie 5 Aplikacja wielo-okienkowa 1. Opracuj aplikację realizującą obliczenia na podstawie danych wpisywanych w komponencie

Bardziej szczegółowo

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

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

Bardziej szczegółowo

JAVA CZ.2 Programowanie obiektowe. poniedziałek, 20 kwietnia 2009

JAVA CZ.2 Programowanie obiektowe. poniedziałek, 20 kwietnia 2009 JAVA CZ.2 Programowanie obiektowe Przygotowanie projektu aplikacji 1. File >New Project 2. Z listy Categories z panelu Projects wybieramy Java Application. Nasz wybór zatwierdzamy przyciskiem Next. 3.

Bardziej szczegółowo

Aplikacja wielow tkowa prosty komunikator

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

Bardziej szczegółowo

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

C-geo definicja/edycja obiektów, zapis danych w formacie shape

C-geo definicja/edycja obiektów, zapis danych w formacie shape C-geo definicja/edycja obiektów, zapis danych w formacie shape 1. ZałoŜenie projektu i tabeli. Aby rozpocząć pracę przy aktualizacji mapy zasadniczej, naleŝy załoŝyć nowy projekt, w nim nową tabelę roboczą,

Bardziej szczegółowo

Wykład 7: Pakiety i Interfejsy

Wykład 7: Pakiety i Interfejsy Wykład 7: Pakiety i Interfejsy Plik Źródłowy w Javie Składa się z: instrukcji pakietu (pojedyncza, opcjonalna) instrukcji importujących (wielokrotne, opcjonalne) deklaracji klasy publicznej (pojedyncza,

Bardziej szczegółowo

Wykład 4_1. Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy.

Wykład 4_1. Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy. Wykład 4_1 Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy. Przykład 1 a) Program ProstyAplet2.class uruchomiony jako aplet w przeglądarce (appletviewer)

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

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

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy - Narzędzie Windows Forms - Przykładowe aplikacje 1 Narzędzia Windows Form Windows Form jest narzędziem do tworzenia aplikacji dla

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

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

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

Aplikacje w środowisku Java

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

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

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

Bardziej szczegółowo

1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4);

1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4); 1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4); a) b) c) d) 2. Jaki będzie wynik kompilacji i wykonania

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Za pomocą atrybutu ROWS moŝemy dokonać podziału ekranu w poziomie. Odpowiedni kod powinien wyglądać następująco:

Za pomocą atrybutu ROWS moŝemy dokonać podziału ekranu w poziomie. Odpowiedni kod powinien wyglądać następująco: 1 1. Ramki Najbardziej elastycznym sposobem budowania stron jest uŝycie ramek. Ułatwiają one nawigowanie w wielostronicowych dokumentach HTML, poprzez podział ekranu na kilka obszarów. KaŜdy z nich zawiera

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

Bezpieczne uruchamianie apletów wg

Bezpieczne uruchamianie apletów wg Bezpieczne uruchamianie apletów wg http://java.sun.com/docs/books/tutorial/security1.2/ Zabezpieczenia przed uruchamianiem apletów na pisanych przez nieznanych autorów 1) ograniczenie możliwości odczytywania,

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

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

Język JAVA podstawy. Wykład 5, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 5, część 3 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 zdarzeń

Bardziej szczegółowo

Interfejsy i klasy wewnętrzne

Interfejsy i klasy wewnętrzne Interfejsy i klasy wewnętrzne mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Interfejs klasy sposób komunikacji z jej obiektami (zestaw składowych publicznych). Określa on zestaw

Bardziej szczegółowo

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla administratora systemu Warszawa 2007

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla administratora systemu Warszawa 2007 GEO-SYSTEM Sp. z o.o. 02-732 Warszawa, ul. Podbipięty 34 m. 7, tel./fax 847-35-80, 853-31-15 http:\\www.geo-system.com.pl e-mail:geo-system@geo-system.com.pl GEO-RCiWN Rejestr Cen i Wartości Nieruchomości

Bardziej szczegółowo

Klasy i obiekty cz II

Klasy i obiekty cz II Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy

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

Kadry Optivum, Płace Optivum

Kadry Optivum, Płace Optivum Kadry Optivum, Płace Optivum Jak seryjnie przygotować wykazy absencji pracowników? W celu przygotowania pism zawierających wykazy nieobecności pracowników skorzystamy z mechanizmu Nowe wydruki seryjne.

Bardziej szczegółowo

Java Foundation Clases. Tworzenie graficznych interfejsów użytkownika (GUI) w Javie

Java Foundation Clases. Tworzenie graficznych interfejsów użytkownika (GUI) w Javie Java Foundation Clases Tworzenie graficznych interfejsów użytkownika (GUI) w Javie Jacek Starzyński, IETiSIP PW, 2006 Tematyka: Co to jest JFC? Swing zadania i struktura Szkielet programu Model zdarzeń

Bardziej szczegółowo

Laboratorium 7 Blog: dodawanie i edycja wpisów

Laboratorium 7 Blog: dodawanie i edycja wpisów Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

Bardziej szczegółowo

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1) Instrukcja tworzenia aplikacji EE na podstawie aplikacji z dostępem do bazy danych, prezentowanej na zajęciach lab.5 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom. Projektowanie i wdrażanie

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

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

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

Bardziej szczegółowo

Projektowanie aplikacji internetowych laboratorium

Projektowanie aplikacji internetowych laboratorium Projektowanie aplikacji internetowych laboratorium Programowanie w języku Java Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne NetBeans 7 (zrzuty ekranów pochodzą z wersji

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

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

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium JavaServer Faces Celem ćwiczenia jest przygotowanie aplikacji internetowej z wykorzystaniem technologii JSF. Prezentowane ćwiczenia zostały wykonane w środowisku Oracle JDeveloper

Bardziej szczegółowo

System imed24 Instrukcja Moduł Analizy i raporty

System imed24 Instrukcja Moduł Analizy i raporty System imed24 Instrukcja Moduł Analizy i raporty Instrukcja obowiązująca do wersji 1.8.0 Spis treści 1. Moduł Analizy i Raporty... 3 1.1. Okno główne modułu Analizy i raporty... 3 1.1.1. Lista szablonów

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Tworzymy projekt File->New Project->Java Application, przy czym tym razem odznaczamy create main class

Tworzymy projekt File->New Project->Java Application, przy czym tym razem odznaczamy create main class Tworzymy projekt File->New Project->Java Application, przy czym tym razem odznaczamy create main class Mamy Prawym przyciskiem na default packeges I wybieramy New JFrame. Teraz pamiętajmy o podaniu jakiejś

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