Java: Programmierung grafischer Oberflächen

Slides:



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

Ein Beispiel in Java.
Java – Swing Vortrag von Raphaela Wrede und Anja Jentzsch
Praktikum Systementwicklung
Ausnahmen HS Merseburg (FH) WS 06/07.
FH-Hof Einbindung von JavaScript Anweisungen
Threads Richard Göbel.
Java: Objektorientierte Programmierung
Sortierverfahren Richard Göbel.
Java: Programmierung grafischer Oberflächen
Java: Dynamische Datentypen
Einführung in die Programmierung von 3D-Grafiken Basis ist Java3D
Listen Richard Göbel.
Indirekte Adressierung
Einfache Komponenten in SWING
Komponenten zur Gestaltung des Layouts
FH-Hof Java3D - Grundlagen Richard Göbel. FH-Hof Java3D Konzept Erzeugung eines Szenengraphen als virtuelle Welt Darstellung der virtuellen Welt mit Hilfe.
FH-Hof Java Packages Richard Göbel. FH-Hof Das Modulkonzept für Java Packages dienen zur Strukturierung größerer Java- Programme Ein Package kann: eigene.
Java: Grundlagen der Objektorientierung
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
MVC.
AUFGABE 1: Ein Wagen (dargestellt durch ein Rechteck) soll sich von links nach rechts bewegen. Tipp: Timer benutzen AUFGABE 2: Zusätzlich zu Aufgabe.
Grafische Benutzeroberfläche
Wie überwacht man Objekte im "Alltag" ?. Indem man "Wanzen" an diese anbringt.
Ein Beispiel in Java.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider.
Java Layout Manager (JLM) Marc Dziadek
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
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
SWING DVG Swing.
DVG Klassen und Objekte
SWING DVG Swing.
03 - Paint Das Zeichenprogramm EMMA Paint2 Aufgabenstellung Entwicklung eines ausschließlich in JAVA programmierten Graphikprogrammes. Vergleichsprodukte:
04 - Actions Actions Actions 2 Motivation In verschiedenen Swing-Komponenten werden ausgelöste Aktionen durch ActionListener behandelt. Häufig werden.
© 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.
© 2004 Pohlig - Taulien Swing Ereignissteuerung. © 2004 Pohlig - Taulien GK Informatik mit Java 2 Auf Button-Klick reagieren.
© 2005 Pohlig – Taulien: Eine GUI für die Klasse Mathematik Kurs: Come Together 1 April 2005 Eine GUI für die Klasse Mathematik.
© 2005 Pohlig – Taulien: Die Matheamatik-GUI als Applet Come Together 1 April 2005 Was ist ein Applet Ein Applet ist ein Javaprogramm, das die VM benutzt,
FH-Hof Java2D - Grundlagen Richard Göbel. FH-Hof Java2D - Funktionen Java2D unterstützt: das Zeichnen von Grafiken die Darstellung von Texten die Darstellung.
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
Universität zu Lübeck Institut für Informationssysteme Die Präsentationsschicht - mit Swing.
Erste Schritte mit Eclipse Neues Projekt erstellen (1)
AWT und JFC Abstract Windowing Toolkit
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Grundlagen der Informatik 1 Thema 21: GUI und verschachtelte.
Programmiermethodik Übung 6
Java: Programmierung grafischer Oberflächen
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
Informatik – Programmierpraktikum Alexander Volodarski Gruppe 14
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.
Programmiervorkurs WS 2014/15 Methoden
© 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. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
GUI Programmierung in Java Branimir Djordjevic. GUI - Wichtige Begriffe -  Die Swing-Bibliothek in Java stellt zum Beispiel die folgenden Windows zur.
Grafische Benutzeroberflächen mit Swing (2) Christoph Broschinski, Alexander Sczyrba Jan Krüger
Verwendung von Graphical-User-Interfaces der Bibliothek: javax.swing.*
Abstract Windowing Toolkit
Abstract Windowing Toolkit
Java-Kurs Übung Grafik in Java - das Abstract Windowing Toolkit
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
Programmiermethodik Übung 7
 Präsentation transkript:

Java: Programmierung grafischer Oberflächen Richard Göbel

Grafische Benutzeroberflächen - Wichtige Begriffe Die Swing-Bibliothek in Java stellt zum Beispiel die folgenden Windows zur Verfügung: JFrame für ein Hauptfenster JDialog für ein Dialogfenster. JApplet für eine WWW-Browser-Anwendung. Ein ContentPane eines Windows dient zur Aufnahme von Komponenten wie Textzeilen Anordnung mit Hilfe eines LayoutManager. Behandlung von Ereignissen EventListener

Grafische Benutzeroberflächen - Konzepte JList JTextField JLabel JButton Einfügen der Komponenten entsprechend des gewählten Layouts Unterklasse der Klasse JFrame als Hauptfenster einer Anwendung WEST CENTER SOUTH Anordnung der Komponenten mit Hilfe eines Layout Manager Komponenten werden in den ContentPane eingefügt ListSelection Listener Definition von Event Listener und Zuordnung zu Komponenten ActionHandler ActionHandler

Grafische Benutzeroberflächen - Bibliotheken in Java Das Abstract Window Toolkit (AWT) ist die Basis für alle grafischen Anwendungen. Swing erweitert das AWT und enthält modernisierte Klassen für einige AWT-Klassen (J...) Achtung: Swing ist in den meisten WWW-Browsern nicht verfügbar! Nötige „Import-Anweisungen: import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; . . .

Grafische Benutzeroberflächen - Erzeugung eines Windows class MainWindow extends JFrame { JPanel contentPane; // Hier Deklaration aller Komponenten . . . public MainWindow() { contentPane = (JPanel) getContentPane(); // Hier Window aufbauen } public static void main(String[] args) { // Hier Objekt erzeugen und Parameter setzen // zum Beispiel: MainWindow frame = new MainWindow(); frame.setTitle("Test"); frame.setSize(new Dimension(250,300)); frame.setVisible(true);}}

Grafische Benutzeroberflächen - Wahl eines geeigneten Layouts FlowLayout Anordnung von links nach rechts und von oben nach unten. BoxLayout Anordnung entweder horizontal oder vertikal. BorderLayout Anordnung in bis zu 5 Bereichen "North", "South", "East", "West" und "Center" GridLayout, GridBagLayout Anordnung der Komponenten in einer Matrix. CardLayout Anordnung von Komponenten auf alternativen Darstellungsbereichen.

Grafische Benutzeroberflächen - Kombination von Layouts mit JPanel ContentPane mit BorderLayout (hier: West, Center, South) JPanel mit vertikalem BoxLayout JPanel mit horizontalem BoxLayout

Grafische Benutzeroberflächen - Definition der Komponenten als Attribute der Klasse class VorlesungEditor extends JFrame { JPanel contentPane, panBezeichnung = new JPanel(), panStunden = new JPanel(), panVorlesung = new JPanel(), panButton = new JPanel(); JTextField tfBezeichnung = new JTextField(10), tfStunden = new JTextField(2); JLabel labBezeichnung = new JLabel("Bezeichnung: "), labStunden = new JLabel("Stunden: "); JButton butSpeichern = new JButton("Speichern"), butAbbrechen = new JButton("Abbrechen"); DefaultListModel dlm = new DefaultListModel(); JList auswahl = new JList(dlm);

Grafische Benutzeroberflächen - Beispiel: Bereiche mit horizontalem BoxLayout panBezeichnung.setLayout(new BoxLayout(panBezeichnung,BoxLayout.X_AXIS)); panBezeichnung.add( Box.createRigidArea(new Dimension(5,0))); panBezeichnung.add(labBezeichnung); panBezeichnung.add(Box.createHorizontalGlue()); tfBezeichnung.setMaximumSize(new Dimension(80,15)); panBezeichnung.add(tfBezeichnung); panStunden.setLayout(new BoxLayout(panStunden,BoxLayout.X_AXIS)); panStunden.add( Box.createRigidArea(new Dimension(5,0))); panStunden.add(labStunden); panStunden.add(Box.createHorizontalGlue()); tfStunden.setMaximumSize(new Dimension(25,15)); panStunden.add(tfStunden);

Grafische Benutzeroberflächen - Beispiel: Bereiche mit verschiedenen BoxLayouts panVorlesung.setLayout( new BoxLayout(panVorlesung,BoxLayout.Y_AXIS)); panVorlesung.add(panBezeichnung); panVorlesung.add(panStunden); panButton.setLayout( new BoxLayout(panButton,BoxLayout.X_AXIS)); panButton.add(butSpeichern); panButton.add(Box.createHorizontalGlue()); panButton.add(butAbbrechen);

Grafische Benutzeroberflächen - Beispiel: Bereich mit BorderLayout contentPane = (JPanel) getContentPane(); contentPane.setLayout(new BorderLayout()); contentPane.add(auswahl, BorderLayout.WEST); contentPane.add(panVorlesung,BorderLayout.CENTER); contentPane.add(panButton,BorderLayout.SOUTH);

Grafische Benutzeroberflächen - Größe von Komponenten Beeinflussung der Größe von Komponenten mit den folgenden Methoden: setPreferredSize(Dimension d) setMinimumSize(Dimension d) setMaximumSize(Dimension d) Nicht alle Layouts berücksichtigen diese Angaben vollständig: vollständige Berücksichtigung durch das BoxLayout teilweise Berücksichtigung durch das BorderLayout keine Berücksichtigung durch das GridLayout

Übung

Grafische Benutzeroberflächen - EventListener Mit einem EventListener lassen sich Aktionen für verschiedene Ereignisse zuordnen, wie zum Beispiel: Mausklick oder Mausbewegung Auswahl eines Elements aus einem Menü Aktionen auf einem Window (Verschieben, Beenden) Ein EventListener ist ein Objekt einer durch den Anwender implementierten Klasse. Eine Klasse für einen EventListener: stellt Methoden zur Verarbeitung von Ereignissen zur Verfügung und implementiert damit ein Interface. wird als innere Klasse einer Window-Klasse definiert.

Grafische Benutzeroberflächen - Beispiel für einen ActionListener class SpeichernListener implements ActionListener { public void actionPerformed(ActionEvent e) { . . . } }); butSpeichern.addActionListener( new SpeichernListener());

Grafische Benutzeroberflächen - Elemente der Definition eines Listener Welches Interface wird implementiert? ActionListener, ListSelectionListener, WindowListener, . . . Welche Methoden müssen für ein Interface implementiert werden? ActionListener: actionPerformed(ActionEvent) ListSelectionListener: valueChanged(ListSelectionEvent) WindowListener: windowOpened(WindowEvent), . . . Adapter statt Listener mit vordefinierten Methoden

Grafische Benutzeroberflächen - Definition eines anonymen ActionListener I butSpeichern.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Vorlesung v = (Vorlesung) auswahl.getSelectedValue(); v.setBezeichnung(tfBezeichnung.getText()); try { v.setStunden( Integer.parseInt(tfStunden.getText()));} catch (NumberFormatException ex) { tfStunden.setText(v.getStunden() + "");} } });

Grafische Benutzeroberflächen - Definition eines anonymen ActionListener II butAbbrechen.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) Vorlesung v = (Vorlesung) auswahl.getSelectedValue(); tfBezeichnung.setText(v.getBezeichnung()); tfStunden.setText(v.getStunden() + ""); } });

Grafische Benutzeroberflächen - Beispiel für einen ListSelectionListener auswahl.addListSelectionListener( new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { Vorlesung v = (Vorlesung) auswahl.getSelectedValue(); tfBezeichnung.setText(v.getBezeichnung()); tfStunden.setText(v.getStunden() + ""); } });

Grafische Benutzeroberflächen - Beispiel für einen WindowAdapter public static void main(String[] args) { VorlesungEditor frame = new VorlesungEditor(); frame.setTitle("Vorlesung Editor"); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); frame.pack(); frame.setVisible(true);

Grafische Oberflächen - JList: Allgemeines Ein JList repräsentiert eine Auswahlliste Eine JList enthält die auszuwählenden Elemente in einem Objekt der Klasse ListModel Konstruktor: JListModel(ListModel) Wert ändern: setSelectedValue(int) Wert abfragen: getSelectedValue() getSelectedValues() Listener: ListSelectionListener()

Grafische Oberflächen - JList: Beispiel DefaultListModel myModel = new DefaultListModel(); myModel.addElement(new Vorlesung("DBS", 4)); myModel.addElement(new Vorlesung("Java", 4)); . . . JList myList = new JList(myModel); myList.addListSelectionListener( new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { Object[] objs = myList.getSelectedValues(); } });

Übung