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

Slides:



Advertisements
Ähnliche Präsentationen
programmiert April-Juni 2003 von Knut Riechmann
Advertisements

Strategie (Strategy / Policy) Ein objektbasiertes Verhaltensmuster Stephan Munkelt, Stefan Salzmann - 03IN.
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
Ein Beispiel in Java.
Java: Programmierung grafischer Oberflächen
Java: Objektorientierte Programmierung
Java: Programmierung grafischer Oberflächen
Java: Dynamische Datentypen
Indirekte Adressierung
Einfache Komponenten in SWING
Java: Grundlagen der Sprache
Java: Grundlagen der Objektorientierung
Grafische Benutzeroberfläche
Wie überwacht man Objekte im "Alltag" ?. Indem man "Wanzen" an diese anbringt.
Ein Beispiel in Java.
Konstruktoren.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 6 Model-View-Controler als Grundlage für Nutzerschnittstellen Sommersemester 2003 Lars Bernard.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Programmieren mit JAVA
1DVG3 - Eventbehandlung Eventbehandlung. DVG3 - Eventbehandlung 2 Events Events sind externe Ereignisse, die parallel zum normalen Programmablauf auftreten.
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
DVG1 - Applets1 Applets. DVG1 - Applets2 Die Klasse Applet n Applets sind Grafikobjekte, die unter Steuerung eines anderen Programms (z.B. eines Browsers,
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
DVG A bstract W indow T oolkit. DVG Als standardisierte portable Grafikschnittstelle existiert in JAVA das Package AWT - Abstract Window.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einführung in Java1 Einführung in JAVA.
EDV Swing1 Swing. EDV Swing 2 Swing - AWT AWT passt sein L&F der Umgebung automatisch an. Swing kann sein L&F selbst verändern, auch zur.
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
DVG Klassen und Objekte
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
SWING DVG Swing.
03 - Paint Das Zeichenprogramm EMMA Paint2 Aufgabenstellung Entwicklung eines ausschließlich in JAVA programmierten Graphikprogrammes. Vergleichsprodukte:
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Einführung in die Programmierung Datensammlung
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Step by step zum JFrame 1 Zum JFrame Step by step by step by step by step by step by step by step by.
© 2005 Pohlig GK Informatik K Zum JFrame Step by step by step by step by step by step by step by step by.
© 2006 MPohlig Grundkurs Informatik mit Java 1 JFrame-Vorlage Step by step by step by step by step by step by step by step by.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 7 Sitzung 7: User Interfaces in Java.
Objektorientierte Modellierung
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Universität zu Lübeck Institut für Informationssysteme Die Präsentationsschicht - mit Swing.
AWT und JFC Abstract Windowing Toolkit
Java: Programmierung grafischer Oberflächen
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
Variablenkonzept Klassisch, in Java Basistyp
Programmierpraktikum Java SS 2005
Java-AG Benutzeroberflächen Juni 2001 Michael Haas.
Lind 02/2005 Einführung in JAVA. Lind 02/2005 Beispiel: Mittelwert Es soll ein Programm erstellt werden, das den Mittelwert zweier reeller Zahlen berechnet.
Programmierpraktikum Java SS 2005
© 2005 Pohlig Informatik Jg. 11 mfH Michael Pohlig 1 Zum JFrame Step by step by step by step by step by step by step by step by.
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 11. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
Einführung in die OOP in Java
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 1 Beispiel class SpreadSheet { int cellA1, cellA2, cellA3; synchronized.
GUI Programmierung in Java Branimir Djordjevic. GUI - Wichtige Begriffe -  Die Swing-Bibliothek in Java stellt zum Beispiel die folgenden Windows zur.
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 Event Handling in der Programmiersprache Java.
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Exceptions in der Programmiersprache Java.
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 1 Erstellung von Benutzerschnittstellen in der Programmiersprache Java.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Abstract Windowing Toolkit
Abstract Windowing Toolkit
Java-Kurs Übung Grafik in Java - das Abstract Windowing Toolkit
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
Implementieren von Klassen
 Präsentation transkript:

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

, 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

, 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

, 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

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

, 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

, 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´´));

, 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´´)); }

, 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 ´´)); }

, 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

, 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

, 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); }

, 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); }

, 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

, 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); }

, 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

, 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

, 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

, 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

, 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); }

, 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

, 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

, 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

, 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

, 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); }

, 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); }

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

, 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);