Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

22.06.1999, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS 1999 1 Erstellung von Benutzerschnittstellen in der Programmiersprache Java.

Ähnliche Präsentationen


Präsentation zum Thema: "22.06.1999, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS 1999 1 Erstellung von Benutzerschnittstellen in der Programmiersprache Java."—  Präsentation transkript:

1 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Erstellung von Benutzerschnittstellen in der Programmiersprache Java

2 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Java Abstract Windowing Toolkit (AWT) Elemente der Benutzeroberfläche: Fenster, Menüs, Schaltfläche, Kontrollfelder, Textfelder, Bildlaufleisten und Listenfelder Container, die Elemente der Benutzeroberfläche und andere Container enthalten Handhabung von System- und Benutzerereignissen Mechanismen zum Auslegen von Komponenten, um eine plattformunabhängige Benutzeroberfläche zu entwickeln auf jeder Plattform das entsprechende native look-and-feel weniger Möglichkeiten zur Oberflächengestaltung, da auf jeder Plattform andere Oberflächenelemente zur Verfügung stehen keine Möglichkeiten das look-and-feel zu ändern

3 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Die Bibliothek Swing komplett in Java implementiert => Oberflächen sehen auf allen Plattformen gleich aus fester Bestandteil des JDK 1.2 das look-and-feel kann zur Laufzeit geändert werden eigene Implementierungen des look-and-feel können benutzt werden größeres Widget-Set, z.B. Tooltips - Benutzerhinweise Erweiterungen mit JLabel, JButton, JCheckBox,... JTabbedPane, JSplitPane, JEditorPane, JTable Borders - verschiedene Rahmen weitere Layout-Manager

4 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Container und Komponenten grafische Oberflächen bestehen aus Komponenten Einfache Komponenten Zusammengesetzte Komponenten (Container) einfache Komponenten des AWT Button, Canvas, Label, List, TextArea, TextField, CheckBox, CheckBoxGroup, Choice, Scrollbar, MenuBar und PopupMenu zusammengesetzte Komponenten des AWT (Container) Panel, ScrollPane, Window, Frame und Dialog Container können wiederum Container enthalten hierarchischer Aufbau der grafischen Oberflächen möglich Container als auch einfache Komponenten sind von der Klasse java.awt.Component abgeleitet

5 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS AWT-Klassenhierarchie Component CanvasContainerButton PanelWindowTextField AppletFrameDialog TextComponent

6 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Methoden der Klasse Component getParent() - liefert den Container, in dem sich die Komponente befindet setForeground(Color) - setzt Vordergrundfarbe der Komponente setBackground(Color) - setzt Hintergrundfarbe der Komponente setSize(int, int) - Legt die Größe der Komponente fest getSize() - liefert die momentane Größe der Komponente paint(Graphics) - Zeichnet die Komponente setEnabled(boolean) - Selektierbar bzw. nicht selektierbar machen setFont() - Setzen des Schriftfonts hide() - Verbergen der Komponente show() - Zeigen der Komponente

7 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Grundlagen Java-Applikationen benutzen als Container oft einen Frame Konstruktion eines Frames Frame myFrame = new Frame(´´A simple Frame´´); myFrame.setSize(300,200); Anzeigen eines Frames myFrame.show(); Entfernen eines Frames myFrame.dispose(); ein Applet ist von der Klasse Panel abgeleitet, deshalb ist es für Applets nicht notwendig einen Frame zu erzeugen Hinzufügen von Komponenten mit der Methode add() myFrame.add(new Button(´´I like Java´´));

8 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Beispiel import java.applet.Applet; import java.awt.*; public class AddButtonDemo extends Applet { public void init(){ // Hinzufügen des Buttons add(new Button(´´I like Java´´)); }

9 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Beispiel import java.applet.Applet import java.awt.* public class FrameApplikationDemo{ static Frame myFrame; static public void main(String argv[]){ // Erzeugen eines Frames myFrame = new Frame(´´ A simple Frame ´´); myFrame.setLayout( new FlowLayout)); myFrame.setSize( 300, 200 ); // Anzeigen des Frames myFrame.show(); myFrame.add( new Button(´´ I like Java ´´)); }

10 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Button Button sind Schaltflächen, die durch Anklicken die bezeichnete Aktion ausführen Konstruktoren Button() erzeugt eine leere Schaltfläche ohne Beschriftung Button(String) erzeugt eine Schaltfläche mit der Beschriftung Button b = new Button(´´Cancel´´); Methoden String getLabel() - gibt den Wert für die Beschriftung des Buttons setLabel(String) - setzt neue Beschriftung des Buttons setEnabled(boolean) - Selektierbarkeit des Buttons

11 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Label eine Komponente, die aus einem einzeiligen Text besteht Konstruktoren Label( String ) erzeugt ein Label mit der angegebenen Zeichenkette, die links ausgerichtet ist Label( String, int ) erzeugt einen Label mit der angegebenen Zeichenkette und Ausrichtung: Label.RIGHT, Label.LEFT, Label.CENTER Methoden String getText() - gibt die Zeichenkette für den Label-Text aus setText(String) - ändert den Label-Text int getAlignment() - gibt die Label-Ausrichtung als ganzzahligen Wert aus: 0 = Label.LEFT, 1 = Label.CENTER, 2 = Label.RIGHT setAlignment( int ) - ändert die Ausrichtung des Labels setFont(Font) - setzt den Font des Labels

12 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Beispiel public class LabelDemo extends Applet { Label rightLabel, leftLabel; public void init(){ Font labelfont = new Font(´´SansSerif´´, Font.Plain, 25); leftLabel = new Label(´´Java´´, Label.LEFT); leftLabel.setFont(labelfont); rightLabel = new Label(´´avaJ´´); rightLabel.setAlignment(Label.RIGHT); rightLabel.setFont(labelfont); setLayout(new BorderLayout()); add(´´West´´, leftLabel); add(´´East´´, rightLabel); }

13 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Listenfelder Listenfelder sind Listen mit mehreren Einträgen, aus denen eine oder mehrere ausgewählt werden können public class ListDemo extends Applet { List myList; public void init(){ // Initialisierung des Listenfeldes myList = new List( 3, false ); myList.add(´´Java´´); myList.add(´´Coffee´´); myList.add(´´Expresso´´); myList.add(´´Cappuccino´´); // Hinzufügen des Listenfeldes add(myList); }

14 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Methoden der Klasse List getItem( int ) - gibt die Zeichenkette des Eintrags an der angegebenen Position aus countItems() - gibt die Anzahl der Einträge in der Liste aus getSelectedIndex() - gibt die Indexposition des ausgewählten Eintrags getSelectedIndexes() - gibt eine Reihe von Indexpositionen aus getSelectedItem() - gibt den momentan ausgewählten Eintrag als Zeichenkette aus getSelectedItems() - gibt eine Reihe von Zeichenketten aus, die ausgewählte Einträge enthalten select(int) - wählt den Eintrag an der bezeichneten Position aus select(String) - wählt den Eintrag mit dieser Zeichenkette aus

15 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Auswahlmenüs Auswahlmenüs öffnen sich beim Anklicken und lassen dem Benutzer eine Auswahl aus mehreren Möglichkeiten treffen public class ChoiceDemo extends Applet { Choice myChoice; public void init(){ // Initialisierung des Listenfeldes myChoice = new Choice(); myChoice.add(´´Java´´); myChoice.add(´´Coffee´´); myChoice.add(´´Expresso´´); myChoice.add(´´Cappuccino´´); // Hinzufügen des Auswahlmenüs add(myChoice); }

16 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Methoden der Klasse Choice addItem( String ) - fügt eine Option in das Menü ein getItem( int ) - gibt die Zeichenkette des Elements an der angegebenen Stelle aus countItem() - gibt die Anzahl der im Menü enthaltenen Elemente aus getSelectedItem() - gibt das momentan ausgewählte Element als Zeichenkette aus select( int ) - wählt das Element an der angegebenen Stelle select( String ) - wählt das Element mit der angegebenen Zeichenkette

17 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Checkboxes Checkboxes sind Kontrollfelder, die ein- und ausgeschaltet werden können Konstruktoren Checkbox() erzeugt ein leeres Kontrollfeld Checkbox( String ) erzeugt ein Kontrollfeld mit der Beschriftung Checkbox( String, null, boolean ) erzeugt ein Kontrollfeld, das je nach dem booleschen Argument gewählt (true) oder nicht gewählt (false) ist Checkbox blau = new Checkbox(´´Blau´´); Checkbox rot = new Checkbox(´´Rot´´, null, true); Blau Rot

18 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS CheckboxGroups Mehrere Checkboxen können in einem Objekt CheckboxGroup zusammengefaßt werden In einer CheckboxGroup kann nur ein einziges Element ausgewählt werden (Radiobuttons) CheckboxGroup answer = new CheckboxGroup(); Checkbox yes = new Checkbox(´´Yes´´, answer, false); Checkbox no = new Checkbox(´´No´´, answer, true); Yes No

19 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Methoden der Klasse Checkbox und CheckboxGroup Methoden der Klasse Checkbox getLabel() - gibt eine Zeichenkette für die Beschriftung aus getState() - gibt den booleschen Wert, ob das Kontrollfeld ausgewählt ist, aus setLabel( String ) - setzt neue Beschriftung für das Kontrollfeld setState( boolean ) - schaltet das Kontrollfeld ein (true) oder aus (false) getCheckboxGroup() - gibt die Gruppe einer Checkbox aus setCheckboxGroup(CheckboxGroup) - ändert die Gruppe einer Checkbox Methoden der Klasse CheckboxGroup getCurrent() - gibt momentan gewählte Checkbox aus setCurrent(Checkbox) - setzt momentan ausgewählte Checkbox

20 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Beispiel public void init(){ // Initialisierung der CheckboxGroup-Komponenten myCheckboxGroup = new CheckboxGroup(); groupBox1 = new Checkbox(´´Java´´, myCheckboxGroup, true); groupBox2 = new Checkbox(´´Coffee´´, myCheckboxGroup, false); groupBox3 = new Checkbox(´´Expresso´´, myCheckboxGroup, false); // Initialisierung der normalen Checkboxen box1 = new Checkbox(´´Milk´´); box1.state = true; box2 = new Checkbox(´´Sugar´´); box2.state = true; box3 = new Checkbox(´´Cream´´); // Hinzufügen der Boxen add(groupBox1); add(groupBox2); add(groupBox3); add(box1); add(box2); add(box3); }

21 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Textfelder ein Textfeld ist ein umrandeter Bereich, in dem Daten eingeben werden können Konstruktoren TextField() erzeugt ein leeres Textfeld, das 0 Zeichen breit ist TextField( int ) erzeugt ein leeres Textfeld mit einer bestimmten Anzahl an Zeichen TextField( String ), das die in der Zeichenkette anhaltene Anzahl an Zeichen breit ist und mit dieser initilialisiert wird TextField( String, int ) erzeugt ein Textfeld mit der angegebenen Breite in Zeichen und initialisiert es mit der Zeichenkette TextField hello = new TextField(´´Hello´´, 20); Hello

22 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Methoden der Klasse TextField getText() - gibt den Text des Feldes als Zeichenkette aus setText(String) - setzt die angegebene Zeichenkette in das Feld getColumns() - gibt die Breite des Textfeldes aus select(int, int) - wählt den Text zwischen zwei Positionen aus selectAll() - wählt den gesamten Text im Feld aus isEditable() - Abfrage, ob der Text editierbar ist setEditable( boolean ) - setzt die Editierbarkeit des Textes getEchoChar() - gibt das Ersatzzeichen für das eingegebene Zeichen aus setEchoCharacter(char) - setzt das Ersatzzeichen für das eingegebene Zeichen echoCharIsSet() - Abfrage, ob das Feld ein Ersatzzeichen hat

23 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Textbereiche Textbereiche können eine beliebige Breite und Höhe haben Standardmäßig haben sie auch Bildlaufleisten, so daß größere Textmengen untergebracht werden können Konstruktoren: TextArea() erzeugt einen leeren Textbereich mit einer Länge von 0 Zeilen und einer Breite von 0 Spalten TextArea(int, int) erzeugt einen Textbereich mit einer bestimmten Anzahl an Zeilen und Spalten (Zeichen) TextArea(String) erzeugt einen Textbereich, der die Zeichenkette anzeigt und 0 Zeilen mal 0 Spalten groß ist TextArea(String, int, int) erzeugt einen Textbereich mit einer bestimmten Anzahl an Zeilen und Spalten, der den bezeichneten Text anzeigt

24 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Methoden der Klasse TextArea getColumns() - gibt die Breite des Textbereiches in Spalten aus getRows() - gibt die Länge des Textbereiches in Zeilen aus append( String ) - hängt den als Argument übergebenen Text hinten an den bestehenden Text an insert( String, int ) - fügt an der angebenen Position eine Zeichenkette in den Text ein replaceText( String, int, int ) - ersetzt den Text zwischen den angegebenen Positionen durch eine angegebene Zeichenkette

25 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Beispiel public void init(){ // Erzeugen und Initialisierung der TextArea myTextArea = new TextArea( 10, 20 ); myTextArea.setEditable( false ); myTextArea.setText(´´Wanna dink some coffee´´); myTextArea.select( 17, 23 ); // Erzeugen des Textfeldes und setzen des Textes myTextField = new TextField (20); myTextField.setText(myTextArea.getSelectedText()); // Hinzufügen der Textkomponenten setLayout(new BorderLayout()); add(´´North´´, myTextField); add(´´Center´´, myTextArea); }

26 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Die Containerklasse Panel Panel können zur Zusammenfassung logisch zusammenhängender Komponenten verwendet werden public void init(){ // Erzeugen des Panels buttonPanel = new Panel(); // Hinzufügen von Buttons zum Panel buttonPanel.add(new Button(´´clear´´)); buttonPanel.add(new Button(´´copy´´)); // Erzeugen der TextArea myTextArea = new TextArea(); // Hinzufügen der Komponenten zum Applet setLayout(new BorderLayout()); add(´´South´´, buttonPanel); add(´´Center´´, myTextArea); }

27 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Die Containerklasse ScrollPane Ein ScrollPane definiert einen Container dessen Fläche gescrollt werden kann Einem ScrollPane kann genau eine Komponente hinzugefügt werden Art der Scrollbars kann im Konstruktor angegeben werden (SCROLLBARS_ALWAYS, SCROLLBARS_AS_NEEDED, SCROLLBARS_NEVER) ScrollPane sp; sp = new ScrollPane(ScrollPane.SCROLLBARS_NEVER) sp.add(new ImageComponent(img)); im Modus SCROLLBARS_NEVER wird das Scrollen vom Programm durchgeführt setScrollPosition(int x, int y) oder setScrollPosition(Point p)

28 , Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Die Containerklasse Frame mit einem Frame kann für eine Applikation eine Benutzerober- fläche erzeugt werden ein Frame kann jedoch auch für Applets verwendet werden Frame´s können eine Menüleiste haben, die am oberen Rand plaziert wird setMenuBar(MenuBar); auf manchen Plattformen kann man Frames zu einem Icon verkleinern setIconImage(Image); Veränderbarkeit der Größe des Frames setReziable(boolean); Setzen des Cursors setCursor(Frame.HAND_CURSOR);


Herunterladen ppt "22.06.1999, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS 1999 1 Erstellung von Benutzerschnittstellen in der Programmiersprache Java."

Ähnliche Präsentationen


Google-Anzeigen