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

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

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

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

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

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

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

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

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

Programowanie Obiektowe GUI

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

Bardziej szczegółowo

Java 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Przykładowe roz wiązanie:

Przykładowe roz wiązanie: Napisz program (JApplet), który zawiera pole tekstowe (JTextField) oraz przycisk (JButton). Każde wciśnięcie przycisku wydłuża napis w polu tekstowym o pewien znak (indeks). Wciśnięcia przycisku obsługiwane

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

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

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

Metody Metody, parametry, zwracanie wartości

Metody Metody, parametry, zwracanie wartości Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca

Bardziej szczegółowo

Programowanie w Javie

Programowanie w Javie Programowanie w Javie Andrzej Czajkowski Lista nr 0 Debugger w Javie Celem ćwiczenia jest poznanie podstawowych funkcji narzędzia debugera (odpluskwiacz) w środowisku Eclipse. Po ukończeniu ćwiczenia student

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

SYSTEM ZARZĄDZANIA TREŚCIĄ (CMS) STRONY INTERNETOWEJ SZKOŁY PRZEWODNIK

SYSTEM ZARZĄDZANIA TREŚCIĄ (CMS) STRONY INTERNETOWEJ SZKOŁY PRZEWODNIK SYSTEM ZARZĄDZANIA TREŚCIĄ (CMS) STRONY INTERNETOWEJ SZKOŁY PRZEWODNIK Daniel M. [dm.o12.pl] 2012 I. Ogólna charakterystyka systemu 1) System nie wymaga bazy danych oparty jest o pliki tekstowe. 2) Aktualna

Bardziej szczegółowo

Rozdział 2. Konfiguracja środowiska pracy uŝytkownika

Rozdział 2. Konfiguracja środowiska pracy uŝytkownika Rozdział 2. Konfiguracja środowiska pracy uŝytkownika Ćwiczenia zawarte w tym rozdziale pozwolą na dostosowanie pulpitu i menu Start do indywidualnych potrzeb uŝytkownika. Środowisko graficzne systemu

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Krzysztof Lemay, Naughton Barteczko R. Cadenhead JAVA, Java Podręcznik 2 wykłady dla kaŝdego Języka i ćwiczenia Programowania

Bardziej szczegółowo

WSTAWIANIE GRAFIKI DO DOKUMENTU TEKSTOWEGO

WSTAWIANIE GRAFIKI DO DOKUMENTU TEKSTOWEGO WSTAWIANIE GRAFIKI DO DOKUMENTU TEKSTOWEGO Niezwykle uŝyteczną cechą programu Word jest łatwość, z jaką przy jego pomocy moŝna tekst wzbogacać róŝnymi obiektami graficznymi, np. zdjęciami, rysunkami czy

Bardziej szczegółowo

przygotował: Pawel@Kasprowski.pl Bazy danych Paweł Kasprowski pawel@kasprowski.pl Wersja 2006Z

przygotował: Pawel@Kasprowski.pl Bazy danych Paweł Kasprowski pawel@kasprowski.pl Wersja 2006Z Bazy danych Paweł Kasprowski pawel@kasprowski.pl Łączenie z bazą danych Sterownik Protokół komunikacyjny Adres serwera Port nasłuchowy Przesłanie zapytania SQL Odebranie rezultatów Pierwszy przykład JDBC

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

1. Przypisy, indeks i spisy.

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

Bardziej szczegółowo

Zaawansowane aplikacje WWW - laboratorium

Zaawansowane aplikacje WWW - laboratorium Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w

Bardziej szczegółowo

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wprowadzania danych Warszawa 2007

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wprowadzania danych 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 Podręcznik dla uŝytkowników modułu

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

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

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

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 2 z wykorzystaniem języka Java ME ćwiczenia 2 Wykorzystanie plików graficznych w MIDlet ach utworzenie obiektu klasy Image (statyczna metoda createimage()) utworzenie obiektu klasy ImageItem dodanie utworzonego

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf Materiały poprawione Rozwiązanie zadania w NetBeans IDE 7.4: Jarosław Ksybek, Adam Miazio Celem ćwiczenia jest przygotowanie prostej aplikacji

Bardziej szczegółowo

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i

Bardziej szczegółowo

Java Platform Micro Edition

Java Platform Micro Edition Java Platform Micro Edition Instalacja środowiska programistycznego Java Platform Micro Edition Software Development Kit 3.0 for Windows z lokalizacji http://www.oracle.com/technetwork/java/javame/downloads/sdk30-jsp-139759.html

Bardziej szczegółowo

Grafika komputerowa. Zajęcia 7

Grafika komputerowa. Zajęcia 7 Grafika komputerowa Zajęcia 7 Wygląd okna aplikacji programu Corel PhotoPaint Źródło: Podręcznik uŝytkownika pakietu CorelDRAW Graphics Suite 12 Tworzenie nowego obrazka Wybór trybu kolorów Określenie

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

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

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

Bardziej szczegółowo

Podstawowe informacje o obsłudze pliku z uprawnieniami licencja.txt

Podstawowe informacje o obsłudze pliku z uprawnieniami licencja.txt Podstawowe informacje o obsłudze pliku z uprawnieniami licencja.txt W artykule znajdują się odpowiedzi na najczęściej zadawane pytania związane z plikiem licencja.txt : 1. Jak zapisać plik licencja.txt

Bardziej szczegółowo

Obszar pierwszy to pasek narzędzi (rys. 1) zawierający skróty do najczęściej uŝywanych funkcji. Rys. 1 Pasek Narzędzi

Obszar pierwszy to pasek narzędzi (rys. 1) zawierający skróty do najczęściej uŝywanych funkcji. Rys. 1 Pasek Narzędzi Do najwaŝniejszych zmian w CERTO v4.0 naleŝy: MoŜliwość wczytywania do programu plików graficznych zawierających rzuty lub przekroje budynku i zaznaczania na nich elementów wprowadzanych do programu CERTO.

Bardziej szczegółowo

Tworzenie okna dialogowego w edytorze raportu SigmaNEST część 2

Tworzenie okna dialogowego w edytorze raportu SigmaNEST część 2 Tworzenie okna dialogowego w edytorze raportu SigmaNEST część 2 W ostatniej części newslettera wyjaśniliśmy czym jest okno dialogowe oraz w jaki sposób można je utworzyć. Przy pomocy edytora raportów SigmaNEST

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

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

Zaawansowane aplikacje internetowe - laboratorium

Zaawansowane aplikacje internetowe - laboratorium Zaawansowane aplikacje internetowe - laboratorium Web Services (część 3). Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2005. Ponadto wymagany jest

Bardziej szczegółowo

Zaawansowane aplikacje internetowe

Zaawansowane aplikacje internetowe Zaawansowane aplikacje internetowe AJAX 1 Celem tego laboratorium jest pokazanie moŝliwości technologii AJAX. W ramach ćwiczeń zostanie zbudowana prosta aplikacja, przechwytująca kliknięcia uŝytkownika

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Wstęp - Prosta aplikacja internetowa w technologii Java EE 5. Programowanie komponentowe 1

Wstęp - Prosta aplikacja internetowa w technologii Java EE 5. Programowanie komponentowe 1 Wstęp - Prosta aplikacja internetowa w technologii Java EE 5 Programowanie komponentowe 1 Przykład 1- Wykonanie prostej aplikacji internetowej w technologii JavaEE w środowisku Netbeans 5.5 z wykorzystaniem

Bardziej szczegółowo

Rozwiązanie ćwiczenia 8a

Rozwiązanie ćwiczenia 8a Rozwiązanie ćwiczenia 8a Aby utworzyć spis ilustracji: 1. Ustaw kursor za tekstem na ostatniej stronie dokumentu Polska_broszura.doc i kliknij przycisk Podział strony na karcie Wstawianie w grupie Strony

Bardziej szczegółowo

Minimalna wspierana wersja systemu Android to 2.3.3 zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4.

Minimalna wspierana wersja systemu Android to 2.3.3 zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4. Dokumentacja dla Scandroid. Minimalna wspierana wersja systemu Android to 2.3.3 zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4. Scandroid to aplikacja przeznaczona

Bardziej szczegółowo

Access - Aplikacja. Tworzenie bazy danych w postaci aplikacji

Access - Aplikacja. Tworzenie bazy danych w postaci aplikacji Tworzenie bazy danych w postaci aplikacji Access - Aplikacja 1. Otwórz plik zawierający bazę danych Wypożyczalni kaset video o nazwie Wypożyczalnia.mdb. 2. Utworzy kwerendę, która wyświetli tytuły i opisy

Bardziej szczegółowo

BAZA_1 Temat: Tworzenie i modyfikowanie formularzy.

BAZA_1 Temat: Tworzenie i modyfikowanie formularzy. BAZA_1 Temat: Tworzenie i modyfikowanie formularzy. Do wprowadzania danych do tabel słuŝą formularze. Dlatego zanim przystąpimy do wypełniania danymi nowo utworzonych tabel, najpierw przygotujemy odpowiednie

Bardziej szczegółowo

5. Administracja kontami uŝytkowników

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

Bardziej szczegółowo

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

WxPython jest platformą pozwalającą tworzyd aplikacje okienkowe nie tylko dla systemu Windows ale i Mac czy Unix.

WxPython jest platformą pozwalającą tworzyd aplikacje okienkowe nie tylko dla systemu Windows ale i Mac czy Unix. WxPython jest platformą pozwalającą tworzyd aplikacje okienkowe nie tylko dla systemu Windows ale i Mac czy Unix. Instalujemy: 1. Ze strony: http://www.wxpython.org/download.php#stable wybieramy odpowiednią

Bardziej szczegółowo

dokumentacja Edytor Bazy Zmiennych Edytor Bazy Zmiennych Podręcznik użytkownika

dokumentacja Edytor Bazy Zmiennych Edytor Bazy Zmiennych Podręcznik użytkownika asix 4 Edytor Bazy Zmiennych Podręcznik użytkownika asix 4 dokumentacja Edytor Bazy Zmiennych ASKOM i asix to zastrzeżone znaki firmy ASKOM Sp. z o. o., Gliwice. Inne występujące w tekście znaki firmowe

Bardziej szczegółowo

Rozwiązanie ćwiczenia 7a

Rozwiązanie ćwiczenia 7a Rozwiązanie ćwiczenia 7a Podpisy pod rysunkami, zdjęciami możesz wprowadzić w następujący sposób: 1. Kliknij obiekt (rysunek, zdjęcie) i wybierz przycisk Wstaw podpis z grupy narzędzi Podpisy na karcie

Bardziej szczegółowo

Edytor tekstu OpenOffice Writer Podstawy

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

PROJEKT CZĘŚCIOWO FINANSOWANY PRZEZ UNIĘ EUROPEJSKĄ. Opis działania raportów w ClearQuest

PROJEKT CZĘŚCIOWO FINANSOWANY PRZEZ UNIĘ EUROPEJSKĄ. Opis działania raportów w ClearQuest PROJEKT CZĘŚCIOWO FINANSOWANY PRZEZ UNIĘ EUROPEJSKĄ Opis działania raportów w ClearQuest Historia zmian Data Wersja Opis Autor 2008.08.26 1.0 Utworzenie dokumentu. Wersja bazowa dokumentu. 2009.12.11 1.1

Bardziej szczegółowo

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1 Obiektowe programowanie rozproszone Java RMI Krzysztof Banaś Systemy rozproszone 1 Java RMI Mechanizm zdalnego wywołania metod Javy (RMI Remote Method Invocation) posiada kilka charakterystycznych cech,

Bardziej szczegółowo

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Java - tablice, konstruktory, dziedziczenie i hermetyzacja Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja

Bardziej szczegółowo

Programowanie w Internecie. Java

Programowanie w Internecie. Java Programowanie w Internecie Java Autor: dr inż. Zofia Kruczkiewicz Literatura: L. Lemay, R. Cadenhead P. Naughton Krzysztof Barteczko Boone Barry Java 2 dla każdego Podręcznik Języka Programowania Java

Bardziej szczegółowo

Instrukcja Instalacji

Instrukcja Instalacji Generator Wniosków Płatniczych dla Programu Operacyjnego Kapitał Ludzki Instrukcja Instalacji Aplikacja współfinansowana ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Spis treści

Bardziej szczegółowo

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3 3 ASP.NET MVC Podstawy 1 1. Cel zajęć Celem zajęć jest zapoznanie się z podstawami ASP.NET MVC 2.0 Framework. 2. Zadanie Proszę zbudować prostą aplikację WWW przy zastosowaniu framework a ASP.NET MVC 2.0

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

learningpanel - materiały pomocnicze - JAK ZROBIĆ... Jak zrobić...

learningpanel - materiały pomocnicze - JAK ZROBIĆ... Jak zrobić... Jak zrobić... W tym dziale prezentujemy przepisy "krok po kroku" jak stworzyć różne aplikacje multimedialne w generatorze lekcji learningpanel. APLIKACJA I: Zestaw ćwiczeń i zadań testowych. Przykład aplikacji,

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Bazy danych raporty. 1. Przekopiuj na dysk F:\ bazę M5BIB.mdb z dysku wskazanego przez prowadzącego.

Bazy danych raporty. 1. Przekopiuj na dysk F:\ bazę M5BIB.mdb z dysku wskazanego przez prowadzącego. Bazy danych raporty 1. Przekopiuj na dysk F:\ bazę M5BIB.mdb z dysku wskazanego przez prowadzącego. 2. Otwórz bazę (F:\M5BIB). 3. Utwórz raport wyświetlający wszystkie pola z tabeli KSIAZKI. Pozostaw ustawienia

Bardziej szczegółowo

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

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 4, część 1 1 Język JAVA podstawy Plan wykładu: 1. Podstawy modelowania obiektowego 2. Konstruktory 3. Dziedziczenie, związki pomiędzy klasami, UML 4. Polimorfizm 5. Klasy abstrakcyjne

Bardziej szczegółowo

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wyjątki Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wydaje się, że żaden użytkownik oprogramowania nie lubi, kiedy stosowany program nagle zawiesza się,

Bardziej szczegółowo