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

Podobne dokumenty
Podstawy Języka Java

Programowanie zdarzeniowe

Java - interfejs graficzny

Programowanie graficznych interfejsów użytkownika

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

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

Tworzenie elementów graficznych

Programowanie graficznego interfejsu użytkownika. Wykład 8. Maciej Wołoszyn 10 maja 2006

Kontenery i komponenty graficzne

Informatyka I. Interfejs GUI wysokiego poziomu. Biblioteka Swing. Programowanie zdarzeniowe. Politechnika Warszawska Wydział Transportu 2018

Kurs programowania. Wykład 4. Wojciech Macyna. 23 marca 2016

Tworzenie i obsługa graficznego interfejsu uŝytkownika

Programowanie obiektowe

Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com

Programowanie w Javie Wykład 6 Okienka w Javie (AWT)

Grafika i komunikacja człowiek komputer Laboratorium. Część 1: Wstęp do grafiki

Java niezbędnik programisty spotkanie nr 12. Graficzny interfejs użytkownika

Klasy abstrakcyjne. Klasę abstrakcyjną tworzymy przy pomocy modyfikatora abstract

Podstawy Swing. Tomasz Borzyszkowski

Programowanie zdarzeniowe

Graphic User Interfaces pakiet Swing

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

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

Informatyka i Ekonometria Programowanie komputerów Ćwiczenia Tworzenie aplikacji wykorzystaniem graficznego interfejsu użytkownika - Swing.

Aplikacje w Javie wykład 12 Programowanie GUI

Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science

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

Programowanie w języku Java WYKŁAD

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Ćwiczenia 9 - Swing - część 1

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

Java biblioteka Swing

Programowanie w języku Java

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

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

Kurs programowania. Wykład 5. Wojciech Macyna. 31 marzec 2016

SWING. dr Jarosław Skaruz

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

Dokumentacja do API Javy.

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

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

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

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

Programowanie obiektowe

Programowanie graficznych interfejsów uŝytkownika

Programowanie obiektowe

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

PWŚG Ćwiczenia 13. Ukończoną pracę należy przesłać na adres lub

Interfejs graczny w Javie.

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

Architektura interfejsu użytkownika

Programowanie Obiektowe Java

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

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

Kurs programowania 2 - listy

Aplikacja wielowątkowa prosty komunikator

Dodanie nowej formy do projektu polega na:

LABORATORIUM 7 Cel: 1_1

Obsługa zdarzeń w JAVIE ((ActionListener,ItemListener,TableModelListener))

Programowanie Obiektowe GUI

Programowanie aplikacji na urządzenia mobilne

Multimedia JAVA. Historia

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

Aplikacje w Javie wykład 12 Programowanie GUI

9. Swing wprowadzenie

Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science

Applety Java. Applety są przykładem kodu Java wykonywanego po stronie klienta, ale bez ujawnionej (jak w przypadku skryptu) wersji źródłowej

Aplikacje w środowisku Java

Język Java część 2 (przykładowa aplikacja)

PROGRAMOWANIE APLIKACJI MULTIMEDIALNYCH

Grafika i komunikacja człowiek komputer Laboratorium. Część 3: Tekst, czcionki, kolory

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

BAZY DANYCH Formularze i raporty

Aplikacja wielow tkowa prosty komunikator

xmlns:prism= c. <ContentControl prism:regionmanager.regionname="mainregion" />

Laboratorium 8 ( Android -pierwsza aplikacja)

JavaFX. Zaawansowane technologie Javy 2019

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

Visual Studio instalacja

Przykładowe roz wiązanie:

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

1 Atrybuty i metody klasowe

SWING ZAGADNIENIA: wprowadzenie, kontenery i komponenty, LayoutManager, komponenty tekstowe. inne przydatne komponenty.

nazwisko_.setfont(new Font("Times New Roman", Font.BOLD, 12));

Tworzenie projektu zawierającego aplet w środowisku NetBeans. lab1. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

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

Podstawowe informacje o apletach

Henryk Budzisz. materiały przygotowane w ramach projektu ZPORR nr POKL /08-00

Delphi podstawy programowania. Środowisko Delphi

Formularze w programie Word

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

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

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

Programowanie obiektowe

Visual Basic for Applications. Formatki tworzenie,

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

Access - Aplikacja. Tworzenie bazy danych w postaci aplikacji

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

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

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

Transkrypt:

Programowanie komputerów Wykład 3: Projektowanie graficznych interfejsów użytkownika w Java dr inż. Walery Susłow walery.suslow@ie.tu.koszalin.pl

Graficzny interfejs użytkownika GUI (Graphical User Interface), środowisko graficzne jest to ogólne określenie sposobu prezentacji informacji przez komputer oraz interakcji z użytkownikiem, polegającego na rysowaniu i obsługiwaniu widget ów (kontrolek). Interfejs graficzny został wymyślony przez pracowników laboratorium PARC firmy Xerox. W Polsce pierwsze GUI powstały w latach 70. do maszyn Odra. Środowisko graficzne zapewnia alternatywny dla konsoli sposób pracy na komputerze.

Słownictwo związane z projektowaniem GUI Komponenty elementy wyświetlane (widget y). Kontener obszar zawierający widget y. Układ (Layout) sposób aranżacji kontenera. Zdarzenia (Events) interakcje z elementami GUI. Ustawienia regionalne (Locale) Pakiety lokalizacyjne (Resource Bundle)

Object Hierarchia klas GUI: biblioteka AWT AWTEvent Font FontMetrics Color Graphics Container Panel Applet Button Label TextComponent List Window TextField TextArea Frame Dialog FileDialog Component Choice CheckBox LayoutManager CheckBoxGroup Canvas MenuComponent MenuItem Menu Scrollbar MenuBar

Komponenty Abstract Windowing Toolkit AWT zawiera kompletny zestaw klas, służących do tworzenia GUI. Poszczególne elementy GUI to komponenty, takie jak przyciski, listy, etykiety czy pola wyboru. Są one reprezentacją klas wywodzących się z pakietu java.awt.component.

Hierarchia klas GUI: biblioteka Swing Dimension Font LayoutManager 1 Klasy znajdują się w pakiecie java.awt Heavyweight FontMetrics Object Color Panel Applet JApplet Graphics Component Container Window Frame JFrame * Dialog JDialog Lightweight JComponent Komponenty Swing znajdują się w pakiecie javax.swing

. Hierarchia klas Swing (JComponent JComponent) JCheckBoxMenuItem JMenuItem JMenu AbstractButton JButton JRadioButtonMenuItem JToggleButton JCheckBox JComponent JEditorPane JRadioButton JTextComponent JTextField JPasswordField JTextArea JLabel JList JComboBox JMenuBar JPanel JOptionPane JScrollBar JScrollPane JTabbedPane JFileChooser JPopupMenu JSeparator JSlider JRootPane JPane JProgressBar JToolBar JSplitPane JTable JTree JInternalFrame JToolTip JLayeredPane JTableHeader JColorChooser

Komponenty Swing Obecnie Swing jest podstawową biblioteką służącą do tworzenie interfejsów użytkownika w Javie. Swing składa się z komponentów lekkich. Mają one tą zaletę że aplikacja wyglądała tak samo pod różnymi systemami operacyjnymi i na dodatek można zmieniać styl interfejsu podczas pracy z programem.

Główne pakiety Java GUI Główne komponenty Java GUI: java.awt.component java.awt.container javax.swing.jcomponent Manager układu komponentów GUI: java.awt.layoutmanager java.awt.layoutmanager2 Obsługa zdarzeń: java.awt.event javax.swing.event Pakiety lokalizacyjne dla różnych ustawień regionalnych: java.util.resourcebundle

Frame (ramka) Frame to okno, które nie zawiera wewnątrz innych okien. Frame jest to fundament na którym umieszczane są inne komponenty graficznego interfejsu użytkownika danej aplikacji. Klasa Frame może być wykorzystana do tworzenia okna. W aplikacjach Java, wykorzystujących bibliotekę Swing, klasa JFrame służy do budowania okienek.

import javax.swing.*; public class MyFrame { Kod ramki testowej public static void main(string[] args) { } } JFrame frame = new JFrame("Test Frame"); frame.setsize(400, 300); frame.setvisible(true); frame.setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE);

GlassPane LayeredPane RootPane Struktura warstw ramki JFrame Większość elementów GUI jest umieszczana w obszarze ContentPane. Warstwa GlassPane jest wykorzystywana do pop up menu, oraz do niektórych animacji. Dostępne są metody: getrootpane(); getlayeredpane(); getcontentpane(); getglasspane(); Można zarządzać widocznością warstw. JFrame LayeredPane opcjonalnie zarządza JMenuBar LayeredPane zawiera ContentPane

(0, 0) Zarządzanie pozycją ramki na ekranie (x, y) Screen Frame getheight() screenheight getwidth() screenwidth Domyślnie ramka (Frame) jest pokazywana w lewym górnym rogu ekranu. Żeby pokazać ramkę w innym miejscu ekranu można użyć metody setlocation(x, y) z klasy JFrame.

Dodawanie komponentów do ramki // Dodajemy przycisk do ramki frame.getcontentpane().add(new JButton("OK")); Content Pane jest podklasą klasy Container. Dlatego, poprzedni kod można zamienić na: Container container = frame.getcontentpane(); container.add(new JButton("OK")); Obiekt klasy Container jest budowany, gdy buduje się obiekt JFrame, a JFrame wykorzystuje ContentPane żeby utrzymać komponenty wewnątrz ramki.

Menedżer układu Klasy Javy umożliwiające automatyczne rozmieszczanie komponentów nazywamy menedżerami układu (Layout Managers). Menedżer układu zapewnia właściwy poziom abstrakcji, umożliwiając automatyczne mapowanie okna interfejsu użytkownika na wszystkich systemach. Elementy GUI są umieszczone w kontenerach. Każdy kontener posiada własny menedżer układu do zarządzenia elementami GUI wewnątrz siebie.

Menedżer układu, cd. Sposób ułożenia komponentów w oknie aplikacji zależy od użytej klasy menedżera. Pakiet AWT udostępnia pięć takich klas: FlowLayout - układ ciągły; GridLayout - układ siatkowy; BorderLayout - układ brzegowy; CardLayout - układ kartkowy; GridBagLayout - układ torebkowy. Menedżera układu można pominąć, wywołując metodę setlayout(null). Następnie należy własnoręcznie określić współrzędne i rozmiary poszczególnych komponentów i włożonych kontenerów.

Frame Panel Budowanie GUI aplikacji i apletu Java Pull-down Menus User Interface Components (UI) Applet Panel User Interface Components Pull-down Menus Panel User Interface Components Panel Panel Panel Panel Panel Panel User Interface Components User Interface Components UI UI UI panel

przycisk (Button) płótno (Canvas) pole wyboru (Checkbox) etykieta (Label) pasek przewijania (ScrollBar) lista (List) lista rozwijana (Choice) polecenia menu (MenuItem) pole tekstowe (TextField) obszar tekstowy (TextArea) Komponenty i kontenery kontener (Container) okno (Window) ramka (Frame) okno dialogowe (Dialog) dialog plikowy (FileDialog) panel (Panel) okna przewijane (ScrollPane)

Klasa Component W klasie Component zdefiniowane są metody wspólne dla wszystkich komponentów. Metod tych używa się do pobierania (get), ustawiania (set) i sprawdzania (is) właściwości komponentów AWT. Size rozmiar komponentu Location położenie Bounds rozmiar i położenie getsize() getsize(dimension rozmiar) setsize(int width, int height) getlocation() getlocation(point p) setlocation(point p) getbounds() lub getbounds(rectangle r) setbounds(x, y, width, height) setbounds(rectangle r)

Metody klasy Component Font pismo getfont() setfont(font f) Background kolor tła Foreground kolor pierwszego planu Visible widzialność Enabled dostępność getbackground() setbackground(color c) getforeground() setforeground(color c) isvisible() setvisible(boolean b) isenabled() setenabled(boolean b)

Wyrównywanie komponentów Do wyrównywania komponentów używane są następujące stałe, zdefiniowane w klasie Component: BOTTOM_ALIGNMENT CENTER_ALIGNMENT LEFT_ALIGNMENT RIGHT_ALIGNMENT TOP_ALIGNMENT

Zdarzenia GUI Graficzny interfejs użytkownika powinien reagować na zdarzenia, pochodzące od manipulatora czy klawiatury użytkownika. Źródłami i słuchaczami zdarzeń są obiekty: Zdarzenie (Event) obiekt "niosący" informację o stanie źródła; Źródło (Source) obiekt, który generuje zdarzenie; Słuchacz (Listener) obiekt powiadamiany o wystąpieniu zdarzenia.

Zdarzenia GUI, cd. Każdy obiekt-słuchacz, który ma reagować na zdarzenia, musi spełniać dwa wymogi: być zarejestrowany na liście słuchaczy zdarzeń. Rejestracji dokonuje się za pomocą metody addxxxlistener(), wywoływanej na rzecz komponentu inicjującego zdarzenie, gdzie "xxx" reprezentuje typ nasłuchiwanego zdarzenia; mieć zaimplementowany odpowiedni interfejs nasłuchu: ActionListener (dla przycisku i pola tekstowego), Adjustable (dla paska przewijania) oraz, ItemListener (dla pól wyboru i list).

Klasa Button Do tworzenia przycisków wykorzystuje się konstruktor klasy Button: Button(); //Tworzy pusty przycisk (bez napisu). Button(String); //Tworzy przycisk z napisem. Użyteczne metody klasy Button: setlabel(string); //Ustawia tekst na przycisku. getlabel(); //Pobiera tekst wyświetlany na przycisku. Zarządzanie nasłuchem przycisku: addactionlistener(); //Rejestruje słuchacza zdarzeń. removeactionlistener(); //Wyrejestrowuje słuchacza zdarzeń.

import java.awt.*; import java.applet.*; import java.awt.event.*; Przycisk i zdarzenia public class Ok extends Applet implements ActionListener { Button button; String s; public void init() { s=""; button = new Button("OK"); button.addactionlistener(this); add(button); } public void paint(graphics g) { g.drawstring("" + s, 80, 70); } public void actionperformed(actionevent e) { s = "" + Math.random(); repaint(); } //Możemy sprawdzić, który z przycisków wygenerował } //zdarzenie: if (e.getsource() == button1) {...}

Klasa Label Klasa Label służy do tworzenia etykiet umożliwiających wyświetlanie tekstu jednowierszowego. Etykiety są często wykorzystywane do opisywania komponentów GUI, więc tekst wyświetlany na nich nie może być modyfikowany przez użytkownika. Instrukcja tworząca etykietę ma postać: Label label = new Label("Etykieta", Label.CENTER); add(label); Wyrównanie tekstu etykiety poprzez wykorzystanie stałych Java: Label.LEFT; Label.RIGHT; Label.CENTER.

Własności etykiet Aby utworzyć etykietę o zasięgu globalnym należy najpierw zadeklarować na poziomie klasy referencję do obiektu klasy Label, a następnie wewnątrz metody inicjującej utworzyć obiekt klasy Label i ustawić jego początkowe własności. public class Elementy extends Applet { Label label; public void init() { setlayout(null); label = new Label("Etykieta", Label.CENTER); label.setbackground(new Color(96,148,148)); label.setforeground(color.orange); label.setfont(new Font("Arial", Font.BOLD, 16)); label.setlocation(20,20); label.setsize(80,20); add(label); // dodanie etykiety do apletu

Komponenty tekstowe Pola tekstowe i obszary tekstowe to podklasy klasy TextComponent. Pola tekstowe obiekty klasy TextField umożliwiają wprowadzanie i modyfikowanie tekstu, ale ich rozmiar jest ograniczony do jednego wiersza. Do wprowadzania większych, wielowierszowych tekstów stosuje się obszary tekstowe - obiekty klasy TextArea. Za pomocą odpowiednich stałych można wyposażyć obszar tekstowy w żądane paski przewijania: TextArea.SCROLLBARS_BOTH; TextArea.SCROLLBARS_HORIZONTAL_ONLY; TextArea.SCROLLBARS_NONE ; TextArea.SCROLLBARS_VERTICAL_ONLY ;

TextField() Konstruktory klasy TextField Konstruktor Opis Tworzy nowe puste pole tekstowe TextField(int) Tworzy nowe puste pole tekstowe o podanej liczbie kolumn TextField(String) Tworzy nowe pole tekstowe zawierające podany tekst TextField(String, int) Tworzy nowe pole tekstowe zawierające podany tekst o podanej liczbie kolumn

Metoda Metody klasy TextField Opis echocharisset() getcolumns() getechochar() setcolumns(int) setechochar(char) settext(string) Sprawdza, czy pole tekstowe wyświetla zaszyfrowane informacje. Zwraca liczbę widocznych kolumn Zwraca znak zastępujący wprowadzane litery (szyfrowanie tekstu) Ustawia liczbę widocznych kolumn Ustawia znak do szyfrowania Ustawia domyślny tekst w polu tekstowym

TextArea() Konstruktory klasy TextArea Konstruktor Opis Tworzy nowy pusty obszar tekstowy. TextArea(int w, int k) Tworzy nowy pusty obszar tekstowy o określonej liczbie wierszy i kolumn. TextArea(String tekst) Tworzy nowy obszar tekstowy zawierający podany tekst. TextArea(String tekst, int w, int k) Tworzy nowy obszar tekstowy zawierający podany tekst, o określonej liczbie wierszy i kolumn. TextArea(String tekst, int w, int k, int paski) Tworzy nowy obszar tekstowy zawierający podany tekst, o określonej liczbie wierszy i kolumn, z podanymi paskami przewijania.

Metody klasy TextArea Metoda append(string s) getcolumns() getrows() Opis Dołącza podany tekst na koniec obszaru tekstowego Zwraca liczbę kolumn obszaru tekstowego Zwraca liczbę wierszy obszaru tekstowego getscrollbarvisibility() Zwraca informację o paskach przewijania insert(string s, int n) Wstawia podany tekst na podanej pozycji replacerange(string s, int start, int end) setcolumns(int c) setrows(int r) Zastępuje podanym tekstem informację w określonym zakresie Ustawia liczbę wyświetlanych kolumn Ustawia liczbę wyświetlanych wierszy

Klasa ScrollBar Klasa Scrollbar służy do tworzenia pasków przewijania. Komponenty te pozwalają na ustawianie wartości liczbowych za pomocą myszki. Wyróżniamy dwa rodzaje pasków przewijania: Scrollbar.HORIZONTAL Scrollbar.VERTICAL Każda zmiana ustawienia paska przewijania generuje zdarzenie typu Adjustment. Jeśli klasa ma przechwytywać zdarzenia tego typu, powinna implementować interfejs AdjustmentListener. Włącza on tylko jedną metodę: public void adjustmentvaluechanged(adjustmentevent e) { }

Konstruktory klasy Scrollbar Konstruktor Opis Scrollbar( ) Tworzy nowy pionowy pasek przewijania Scrollbar(int) Scrollbar (int orientacja, int wartość, int rozmiar, int min, int max) Tworzy nowy pionowy pasek przewijania o określonej orientacji Tworzy nowy pionowy pasek przewijania o podanej orientacji, wartości początkowej, rozmiarze ruchomego elementu, wartości minimalnej i wartości maksymalnej

getmaximum( ) Metoda Metody klasy Scrollbar Opis Zwraca maksymalną możliwą wartość getminimum( ) getorientation( ) getvalue( ) getblockincrement( ) getunitincrement( ) setorientation(int orientacja) setvalue(int wartość) Zwraca minimalną możliwą wartość Zwraca orientację paska Zwraca wartość bieżącą paska Zwraca wartość blokowego skoku Zwraca wartość jednostkowego skoku Ustawia orientację paska Ustawia wartość bieżącą na pasku

Klasa Checkbox Abstract Windowing Toolkit zawiera klasę Checkbox, która umożliwia tworzenie pól wyboru. Komponenty te mogą znajdować się w jednym z dwóch stanów - "wybrany" (true) albo "niewybrany" (false). Klikając na polu wyboru użytkownik może łatwo zmienić jego stan na przeciwny. Pola te są niezależne od siebie i użytkownik może dokonać wyboru wielokrotnego, tzn. wiele z tych pól może być ustawionych w pozycji "wybrany". Możliwe też jest tworzenie grup opcji za pomocą klasy CheckboxGroup, która wymusza pojedynczy wybór. Kiedy pola są zebrane w grupę, traktowane są jak przyciski radiowe (wzajemnie się wykluczające) i tylko jeden z nich może być wybrany.

Checkbox() Konstruktory klasy Checkbox Konstruktor Checkbox(String opis) Opis Tworzy puste pole wyboru Tworzy pole wyboru z określoną etykietą opisu Checkbox(String opis, boolean stan) Checkbox(String opis, boolean stan, CheckboxGroup grupa) Checkbox(String opis, CheckboxGroup grupa, boolean stan) Tworzy pole wyboru z etykietą opisu oraz ustala jego stan Tworzy pole wyboru z etykietą opisu, ustala jego stan oraz przypisuje je do danej grupy Tworzy pole wyboru z etykietą opisu, przydziela je do danej grupy oraz ustala jego stan.

getcheckboxgroup() getlabel() Metody klasy Checkbox Metoda getselectedobjects() getstate() setcheckboxgroup(checkboxgroup g) Opis Pobiera informację, do jakiej grupy należy dane pole wyboru Pobiera etykietę pola wyboru Zwraca jednoelementową tablicę zawierającą etykietę pola lub null jeśli pole nie jest zaznaczone Sprawdza, czy pole jest zaznaczone Dodaje pole wyboru do podanej grupy setlabel(string etykieta) setstate(boolean stan) Ustawia etykietę pola wyboru Ustawia stan pola wyboru

Listy i listy rozwijane Listy są wykorzystywane w GUI, w którym użytkownik może dokonywać wyboru spośród większej liczby możliwych opcji. Jeśli mamy niewiele miejsca na GUI, możemy utworzyć listę rozwijaną - komponent klasy Choice. List l =new List(); l.add("zielony"); l.add("czerwony"); l.add("niebieski"); add(l); Choice c =new Choice(); c.additem("zielony"); c.additem("czerwony"); c.additem("niebieski"); c.additem("żółty"); c.additem("bronzowy"); add(c);

Metoda add(string element) Metody klasy Choice Dodaje składnik do listy Opis additem(string element) getitem(int numer) getitemcount() getselectedindex() getselecteditem() getselectedobjects() Dodaje składnik do listy Zwraca napis odpowiadający elementowi o podanym numerze Zwraca liczbę elementów listy Zwraca numer zaznaczonego elementu Zwraca napis odpowiadający zaznaczonemu elementowi Zwraca jednoelementową tablicę zawierającą zaznaczony element

Metody klasy Choice Metoda insert(string element, int numer) Opis Wstawia nowy element na podanej pozycji remove(int pozycja) remove(string elem) removeall() select(int nr) select(string s) Usuwa element o podanej pozycji Usuwa pierwszy element wyznaczony przez podany napis Usuwa wszystkie elementy Wybiera element o podanym numerze Wybiera element którego opis jest identyczny jak podany