GUI Programmierung in Java Branimir Djordjevic. GUI - Wichtige Begriffe -  Die Swing-Bibliothek in Java stellt zum Beispiel die folgenden Windows zur.

Slides:



Advertisements
Ähnliche Präsentationen
Ein Beispiel in Java.
Advertisements

Java – Swing Vortrag von Raphaela Wrede und Anja Jentzsch
Praktikum Systementwicklung
Ausnahmen HS Merseburg (FH) WS 06/07.
Java: Programmierung grafischer Oberflächen
Threads Richard Göbel.
Java: Objektorientierte Programmierung
Java: Programmierung grafischer Oberflächen
Java: Dynamische Datentypen
Einführung in die Programmierung von 3D-Grafiken Basis ist Java3D
Einfache Komponenten in SWING
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.
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 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
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.
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.
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
Programmiermethodik Übung 6
Java: Programmierung grafischer Oberflächen
Informatik – Programmierpraktikum Alexander Volodarski Gruppe 14
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 8 Folie 2 Commands (1) s.a.
Java-AG Benutzeroberflächen Juni 2001 Michael Haas.
Learning By Doing Parallelverarbeitung Multithreading (Nebenläufigkeit) Alte Idee der Parallelverarbeitung statt rein sequentieller Prozesse Parallelverarbeitung.
© 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)
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
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.
1 Dörschlag IKG; Dörschlag, Plümer, Gröger; Einführung in die Programmierung mit Java WS03/04 Malprogramm der vollständige und kommentierte Quellcode für.
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.
Einführung in die OOP in Java
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.
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.
Grafische Benutzeroberflächen mit Swing (2) Christoph Broschinski, Alexander Sczyrba Jan Krüger
Verwendung von Graphical-User-Interfaces der Bibliothek: javax.swing.*
Wie überwacht man Objekte im "Alltag" ?
Grafische Benutzeroberflächen mit Swing
Praktische Informatik 1
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:

GUI Programmierung in Java Branimir Djordjevic

GUI - 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

GUI - Konzepte - JLabelJTextField JList JButton ActionHandler ListSelection Listener Definition von Event Listener und Zuordnung zu Komponenten

GUI - Bibliotheken in Java - Nötige „Import-Anweisungen: import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*;... 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!

GUI - Erzeugung eines Frames 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);}}

GUI - Das Layout -  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.

GUI - Kombination mit JPanels und Layouts -  ContentPane mit BorderLayout (hier: West, Center, South)  JPanel mit vertikalem BoxLayout  JPanel mit horizontalem BoxLayout

GUI - Definition - class StundenAuflistung 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);

GUI - Beispiel mit Horizontalem Box Layout - 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);

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); GUI - Bereiche mit verschiedenen Box Layouts

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

GUI- 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

GUI – 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.

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

GUI - 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

GUI - 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() + "");} } });

GUI - 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() + ""); } });

GUI - 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() + ""); } });

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

GUI - 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()

GUI - 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

Ende