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 elementów interfejsu użytkownika wykorzystuje natywne GUI. Wygląd GUI w tym przypadku jest analogiczny do GUI systemu operacyjnego, na którym uruchamiana jest aplikacja. Jest to tzw. ciężki typ kontrolek, gdyż wołane są odpowiednie funkcje systemowe 2
Okienko w AWT 3
Przykładowe okienko w AWT public class OknoAWT extends Frame { public OknoAWT() { super(); settitle("okienko w AWT"); setsize(300,300); setlocation(500,300); } } public static void main(string[] args) { Frame okno = new OknoAWT(); okno.setvisible(true); okno.addwindowlistener(new WindowAdapter() { @Override public void windowclosing(windowevent e) { System.exit(0); } } ); } 4
Podstawowe komponenty pakietu java.awt 5
Reprezentacja GUI w postaci drzewa komponentów 6
Co to jest Swing Swing jest częścią Java Foundation Classes (JFC) Swing zapewnia: Zbiór kontrolek do tworzenia zaawansowanych GUI: tabele, listy, drzewa, taby, etc rozbudowaną funkcjonalność do pracy z tekstem wsparcie dla wielonarodowości (języki, odpowiedni układ elementów) look & feels Java 2D (Swing został zbudowany na tym pakiecie) Mechanizm do przywracania i ponawiania operacji (undo & redo) wsparcie dla osób niepełnosprawnych (lupa, syntezator, wyświetlanie informacji na wyświetlaczu brile a) transfer danych: operacja wklej, wytnij, drag&drop 7
Kontrolki do wyświetlania informacji oraz kontrolki najwyższego poziomu JLabel JProgressBar JSeparator JToolTip JPanel JScrollPane JSplitPane JTabbedPane JToolBar JInternalFrame JLayeredPane RootPane 8
Swing & Netbeans Wsparcie IDE przy projektowaniu GUI automatyczna generacja kodu Narzędzia do projektowania GUI w Netbeans Paleta kontrolek Obszar do projektowania Okno właściwości Inspektor 9
Przyciski (Buttons) Przycisk umożliwia: Wyświetlanie tekstu i obrazów Przypisanie skrótów (podświetlenie litery w przycisku tzw. mnemonic) Wyświetlanie podpowiedzi (ToolTip) wyświetlenie tekstu formatowanego w HTML Nasłuchiwacze: Action Listner Ustawienie standardowego przycisku (setdefaultbutton) //stworzenie przycisku b1 = new JButton( Nazwa", Icon); //ustawienie skrótu setmnemonic(keyevent.vk_m) //ustawnie nazwy akcji b1.setactioncommand( akcja") //ustawienie Action Listner b1.addactionlistener(this); //ustawienie podpowiedzi b1.settooltiptext( porada ) //wylaczenie przycisku b3.setenabled(false); //Obsluga zdarzenia public void actionperformed(actionevent e) { if( Nazwa".equals(e.getActionCommand() )) { b2.setenabled(false); Więcej informacji: http://java.sun.com/docs/books/tutorial/uiswing/components/button.html#abstractbutton 10
Check Boxes & Przycisk Radio CB stanowi grupę, w której wszystkie, kilka bądź żaden może zostać zaznaczony JCheckBox i JCheckBoxMenuItem dziedziczą z AbstractButton możliwość umieszczania CB w Menu Możliwość formatowania CB podobnie jak przycisku Przycisk Radio możliwość zaznaczenia wyłączenie jednego przycisku pierwszybutton = new JCheckBox( pierwszy"); pierwszybutton.setmnemonic(keyevent.vk_p) ; //zaznaczanie przycisku pierwszybutton.setselected(true); drugibutton = new JCheckBox( Drugi"); drugibutton.setmnemonic(keyevent.vk_g); drugibutton.setselected(true); //obsluga zdarzen pierwszybutton.additemlistener(this); public void itemstatechanged(itemevent e) {... Object source = e.getitemselectable(); if (source == pierwszybutton) { //TODO } else if (source == drugibutton) { 11
Grupowanie przycisków Możliwość dodania różnych RB lub CB do wybranej grupy ButtonGroup Umieszczanie innych rodzajów przycisków poza RB lub CB nie ma sensu, ponieważ nie implementują stanu włączony/wyłączony Kroki przy tworzeniu grupy przycisków Stwórz podklasę JFrame Wywołaj ContextPane razem z layout manager Zadeklaruj zbiór przycisków radio Stwórz obiekt ButtonGroup Wołaj metodę add na obiekcie buttongroup w celu dodania każdego przycisku do grupy 12
Text Component JTextCompnent JTextField JFormattedTextField JPassworField JTextField JTextField JFormattedTextField JPassworField Kontrolki tekstowe Obszar tekstu Formatowane obszary tekstu 13
Look and Feel Możliwość definiowania wyglądu i zachowania aplikacji niezależnie od platformy Użycie l n f pozwala skupić się programiście na logice aplikacji oferując zbiór różnych wyglądów Swing pozwala na stosowanie l n f dzięki podzieleniu JComponent na dwie cześci: podklasa JComponent i powiązana klasa ComponentUI. 14
Okienko w Swing 15
Przykładowe okienko w Swing public class OknoSwing extends Jframe { public OknoSwing() { super(); settitle("okienko w Swing"); setsize(300,300); setlocation(500,300); } } public static void main(string[] args) { JFrame okno = new OknoSwing(); okno.setvisible(true); okno.setdefaultcloseoperation(jframe.exit_on_close); } 16
Podstawowe komponenty java swing 17
Layouty w Swingu 18
Dziękuję za uwagę 19