GUI-Programmierung - Einführung

Größe: px
Ab Seite anzeigen:

Download "GUI-Programmierung - Einführung"

Transkript

1 GUI-Programmierung - Einführung Kernkonzepte Komponenten (components) ereignisgesteuerte Programmierung (event driven programming) Layout 1

2 Frames and Components windows (frames) menus labels checkboxes radio buttons borders buttons 2

3 Event-Driven Programming (1) traditionelle Programme ohne GUI z. B. DOS-Programme der Programmierer bestimmt den Programmfluß der Programmierer bestimmt die Sequenz der Ein-/Ausgaben GUI-Programme sind anders! ereignisgesteuert die Sequenz der Benutzereingaben bestimmt den Programmablauf selbstprogrammierter Code wird durch Betriebssystemcode aufgerufen user code is called by system code 3

4 Event-Driven Programming (2) 4

5 GUI-Bibliotheken in Java die integrierten GUI-Bibliotheken sind eine Besonderheit der Sprache Java enthält GUI- Widgets Grafikelemente mit zugehörigem Steuercode Java besitzt zwei GUI-Bibliotheken AWT Abstract Windowing Toolkit Swing enthält nur die wichtigsten Elemente baut teilweise auf dem AWT auf sehr umfangreiche GUI-Bibliotkek 5

6 AWT versus Swing Swing enthält neue Komponenten ersetzt einige alte AWT-Komponenten benutzt einige alte AWT-Komponenten 6

7 Die AWT und Swing Bibliotheken Sehen Sie sich die Klassen in der Java Dokumentation an: java.awt.* javax.swing.* siehe 7

8 Das java.awt Package (1) ca. 40 GUI-Klassen: Container Graphikelemente (widgets), die andere Graphikelemente aufnehmen können z.b. Panel, Window, Dialog, Frame Components atomare Graphikelemente z.b. Button, Menu, List Layout Manager 5 Klassen u. 1 Interface, um Komponenten in Containern anzuordnen einfache Graphikelemente z.b. Point, Rectangel, Polygon 8

9 Das java.awt Package (2) event classes Event-Klassen kapseln Informationen über GUI-Benutzereingaben z.b. KeyEvent, MouseEvent listener classes Listener-Klassen bekommen Event-Objekte von den GUI-Klassen zugestellt und reagieren auf die Benutzereingaben z.b. KeyListener, ActionListener 9

10 Components und Container Container können Components enthalten alle Container sind Components einige Components sind auch Container Container und Component sind abstrakte Klassen Frame meistens Basis für Applikationen Applet ist eine Unterklasse von Panel 10

11 Der Frame Container (1) Java GUI-Applikationen benutzen in der Regel Frame um ein Hauptfenster zu öffnen Frame = einfaches, größenänderbares Fenster mit Rand, Titelleiste u. ev. Menüleiste 11

12 Der Frame Container (2) Verwendung von Frame Instanz der Klasse Frame oder einer Unterklasse von Frame erzeugen new Frame() oder z.b. new MyFrame() Methode settitle() aufrufen Methode setsize() aufrufen Fenstergröße ist zunächst 0! Methode setvisible() aufrufen neu erzeute Fenster sind zunächst unsichtbar! 12

13 Programmbeispiel - Frame import java.awt.frame; public class MyFrame extends Frame { public static void main(string args[]) { new MyFrame(); public MyFrame() { settitle("andy's Frame"); setsize(200, 200); setvisible(true); 13

14 Komponenten hinzufügen (1) Aufgabe fürs Praktikum eine einfache GUI-Anwendung schreiben, die für jeder AWT- Komponente eine Instanz zu einem Frame hinzufügt wie in diesem Beispiel: Methode add() 14

15 Layout Manager Layout Manager ordnen Components in Containern an verschiedene Layout Manager benutzen dazu verschiedene Regeln implementieren das LayoutManager-Interface die add-methode des Containers reicht die Component an den Layout Manager weiter einem Container kann ein Layout Manager zugeordnet werden 15

16 Die LayoutManager-Klassen BorderLayout teilt Container in 5 Bereiche North, South, East, West, Center CardLayout erzeugt sich nach Art von Karteikarten überlappende Container FlowLayout ordnet Componenten zeilenweise hintereinander an GridBagLayout flexibel und komplex - etwa wie eine Tabelle in MS-Word BoxLayout vertikale und horizontale Anordnung in einer Box Klasse Box 16

17 Der Panel Container Ein Panel sieht man nicht Nutzen: Aufteilen eines Fensters in Bereiche jedem Bereich kann ein eigener Layout-Manager zugeordnet werden default: FlowLayout Beispiel: 17

18 Programmcode zum Beispiel (1) import java.awt.*; public class PanelTest extends Frame { public static void main(string args[]) { new PanelTest(); public PanelTest() { settitle("panel Test"); setlayout(new FlowLayout()); Panel borderpanel = new Panel(); borderpanel.setlayout(new BorderLayout()); borderpanel.setbackground(color.blue); borderpanel.add("north", new Button("north")); borderpanel.add("south", new Button("south")); borderpanel.add("east", new Button("east")); borderpanel.add("west", new Button("west")); borderpanel.add("center", new Button("center"));... 18

19 Programmcode zum Beispiel (2) add(new Label("BorderLayout")); add(borderpanel); Panel flowpanel = new Panel(); flowpanel.setlayout(new FlowLayout()); flowpanel.setbackground(color.red); flowpanel.add(new Checkbox("First")); flowpanel.add(new Checkbox("Second")); flowpanel.add(new Checkbox("Third")); add(new Label("FlowLayout")); add(flowpanel); Panel gridpanel = new Panel(); gridpanel.setlayout(new GridLayout(2, 2)); gridpanel.setbackground(color.green); gridpanel.add(new TextField("First"));... 19

20 Programmcode zum Beispiel (3) gridpanel.add(new TextField("Second")); gridpanel.add(new TextField("Third")); gridpanel.add(new TextField("Fourth")); add(new Label("GridLayout")); add(gridpanel); setsize(200, 300); setvisible(true); 20

21 Das GridBagLayout ist sehr flexibel teilt den Container in ein Netz von Zellen Components können mehr als eine Zelle bedecken benutzt ein GridBagConstraints-Objekt zur individuellen Beeinflussung des Layouts einzelner Components: gridx, gridy gibt die Plazierungsstelle an gridwidth, gridheight Anzahl der von der Component eingenommenen Zeilen und Spalten weightx, weighty gibt an, mit welcher Wichtung eine Component den zusätlichen Platz bei der Vergrößerung des Fensters beanspruchen darf 21

22 Das GridBagLayout (2) fill gibt an, welcher Flächenanteil der angegebenen Zellen bei einer Gößenänderung (resize) benutzt werden soll anchor Beispiel: Position innerhalb einer Zelle an der die Komponente verankert ist 22

23 Beispiel zu GridBagLayout (1) import java.awt.*; public class GridTest extends Frame { TextArea t = new TextArea(5, 30); TextArea ti = new TextArea(2, 20); Button send = new Button("Send"); Button clear = new Button("Clear"); GridBagConstraints c = new GridBagConstraints(); GridBagLayout l = new GridBagLayout(); public GridTest() { settitle("gridbaglayout Demo"); setlocation(200, 300); setlayout(l); c.weightx = 50; c.weighty = 50; c.fill = GridBagConstraints.NONE; c.anchor = GridBagConstraints.CENTER; 23

24 Beispiel zu GridBagLayout (2) c.gridx = 1; c.gridy = 1; c.gridwidth = 10; c.gridheight = 10; c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.WEST; l.setconstraints(t, c); t.seteditable(false); add(t); c.gridx = 1; c.gridy = 11; c.gridwidth = 7; c.gridheight = 4; c.fill = GridBagConstraints.BOTH; c.anchor = GridBagConstraints.WEST; //usw... 24

25 Zeichenoperationen Zeichnen innerhalb eines Fensters Methode paint() überschreiben z.b. in Frame paint() bekommt ein Objekt der Klasse Graphics übergeben das Objekt enthält die Zeichenfläche und die Methoden um auf dieser Fläche zu zeichnen Zeichenmethoden: drawline! drawoval! drawpolygon! draw3drect! drawarc drawbytes! drawchars! drawimage! drawrect! drawroundrect drawstring!fill3drect!fillarc!! fillpolygon fillrect! fillroundrect filloval 25

26 Die Klasse Color wird hauptsächlich benutzt, um Components einzufärben Methoden setforeground() und setbackground() falls die Component ein Container ist, nehmen alle darin enthaltenen Components die gesetzte Farbe an Methode setcolor beeinflußt alle folgenden drawing-methoden der Klasse Graphics Constructor nimmt RGB-Werte entgegen 26

27 Das Java-Event-Modell GUI-Programme werden durch Ereignisse gesteuert Konzept des event driven programming user events Tastatur, Maus system events z.b. Abschluß eines Verarbeitungsschritts Konzept Event-Generatoren lösen Events aus Event-Listener werden benachrichtigt Realisierung in Java durch JDK-Packages java.awt.event enthält event handling framework event-klassen und Interfaces 27

28 Teilnehmer beim Event Handling drei Objekte sind beteiligt event object delivered to event listener event source Event-Quelle event listener (receiver) muß sich bei event source registrieren Konzept events are fired from a source 28

29 Beispiel zum Event Handling 29 import java.awt.*; import java.awt.event.*; public class MyFrameWithExit extends Frame implements ActionListener { public static void main(string args[]) { new MyFrameWithExit(); MyFrameWithExit() { settitle("heinz' Frame"); setsize(200, 100); Button b = new Button("Exit"); b.addactionlistener(this); add(b); setvisible(true); public void actionperformed(actionevent e) { System.exit(0); Wo sind event source und listener?

30 Event-Arten Typen der Event-Objekte low level events grundlegende Event-Arten Taste gedrückt, Taste losgelassen (Maus, Tastatur) Bewegung der Maus Eintreten und Verlassen des Mauszeigers (Fenster) semantic events Event-Arten für spezielle Components Bewegen eines Scrollbar Testeingabe Zustandsänderung einer Checkbox oder eines Radio Button 30

31 Typen der Event-Objekte 31 MouseEvent Bewegung der Maus, Bedienung der Maustasten ActionEvent Menüpunkt ausgewählt, Button gedrückt FocusEvent Eingabefokus gewonnen, verloren AdjustmentEvent Einstellung eines Scrollbar ItemEvent Anwahl eines Menüpunkts KeyEvent Tastaturtaste gedrückt, losgelassen TextEvent WindowEvent

32 Events Listeners und Callbacks Event-Quellen besitzen Methoden zur Registrierung von Listener-Objekten addxxxlistener( listener ) listener muß XXXListener implementieren Beispiel: class MainClass { public static void main(string[] args) { Button b = new Button(); b.addactionlistener(new MyListener()); class MyListener implements ActionListener { public void actionperformed(actionevent event) { System.out.println("The button was pressed"); 32

33 Dialogs Dialogfenster 2 Arten modal oder nicht modal modal: zwingt Benutzer zur Eingabe setzt einen parent frame voraus Erzeugung Unterklasse von java.awt.dialog definieren das BorderLayout ist voreingestellt Größe mit getsize() setzen setvisible() aufrufen der Konstruktor muß den Oberklassenkonstruktor aufrufen übergibt parent frame, title, und flag (entweder auf modal (true) oder modeless (false) gesetzt) 33

34 Dialog - Beispiel (1) import java.awt.*; import java.awt.event.*; 34 public class DialogTest extends Frame implements ActionListener { public static void main(string args[]) { new DialogTest(); DialogTest() { settitle("dialog Test"); setlayout(new FlowLayout()); Button dialogbutton = new Button("Dialog"); dialogbutton.addactionlistener(this); add(dialogbutton); Button exitbutton = new Button("Exit"); exitbutton.addactionlistener(this); add(exitbutton); setsize(200, 200);

35 Dialog - Beispiel (2) public void actionperformed(actionevent event) { if (event.getactioncommand().equals("exit")) System.exit(0); else if (event.getactioncommand().equals("dialog")) new MyDialog(this); 35 class MyDialog extends Dialog implements ActionListener { public MyDialog(Frame owner) { super(owner); setmodal(false); setlayout(new FlowLayout()); Button okbutton = new Button("OK"); okbutton.addactionlistener(this); add(okbutton); setsize(100, 100);

36 FileDialog public void actionperformed(actionevent event) { if (event.getactioncommand().equals("ok")) dispose(); spezieller Dialog - FileDialog: public void actionperformed(actionevent event) { if (event.getactioncommand().equals("open...")) { FileDialog openfile = new FileDialog(this, "Open", FileDialog.LOAD); openfile.setdirectory("."); openfile.show(); String selectedfile = openfile.getfile(); if (selectedfile!= null) System.out.println("Selected file: " + selectedfile); 36

37 Unterklassen von Komponenten für Components mit speziellen Eigenschafen, z.b. ein TextField, das nur alphabetische Zeichen zulässt: 37 class AlphaTextField extends TextField implements KeyListener { String currentvalue = ""; public AlphaTextField() { super(10); public void keypressed(keyevent event) { public void keyreleased(keyevent event) { public void keytyped(keyevent event) { if (event.getkeychar() >= '0' && event.getkeychar() < '9') { settext(currentvalue); else { currentvalue = gettext();

38 Verwendung von Callback-Methoden ein Objekt benachrichtigt andere Objekte beim Eintreffen eines Ereignisses wie beim Event Handling, aber mit Übergabe einer anwendungsdefinierten Nachricht z.b. das AlphaTextField aus dem letzten Beispiel soll ein anderes Objekt beim Tippen eines nicht-alpha-zeichens benachrichtigen und dabei das falsch eingegebene Zeichen übermitteln z.b. zur Anzeige eines Dialogfensters Input Error empfohlene Vorgehensweise caller muß verlangen, das ein called Object ein bestimmtes Interface implementiert Wie? 38

39 interface AlphaInputError { public void inputerror(char errorinput); public class AlphaTextFieldTest2 extends Applet implements AlphaInputError { AlphaTextField2 atf = null; String errorstring = ""; public void init() { atf = new AlphaTextField2(this); setlayout(new FlowLayout()); add(atf); atf.addkeylistener(atf); public void inputerror(char errorinput) { 39 Freitag, 6. Juni 14 errorstring = "input error: " + new Character(errorInput).toString(); repaint(); public void paint(graphics g) { g.drawstring(errorstring, 10, 60); errorstring = " ";

40 Callback - ein Beispiel (1) class AlphaTextField2 extends TextField implements KeyListener { String currentvalue = ""; AlphaInputError errorlistener = null; // hier nur einer möglich! public AlphaTextField2(AlphaInputError errorlistener) { super(10); this.errorlistener = errorlistener; public void keypressed(keyevent event) { public void keyreleased(keyevent event) { 40 public void keytyped(keyevent event) { if (event.getkeychar() >= '0' && event.getkeychar() <= '9') { settext(currentvalue); errorlistener.inputerror(event.getkeychar()); else { currentvalue = gettext();

GUI-Programmierung - Einführung

GUI-Programmierung - Einführung GUI-Programmierung - Einführung 1 Kernkonzepte Komponenten (components) Layout ereignisgesteuerte Programmierung (event driven programming) Frames and Components 2 windows (frames) menus labels checkboxes

Mehr

Objektorientierte Software-Entwicklung

Objektorientierte Software-Entwicklung Objektorientierte Software-Entwicklung Priv.-Doz. Dr. Rolf Hennicker 08.01.2003 AWT und Swing AWT (Abstract Window Toolkit) und Swing 2 AWT (Abstract Window Toolkit) und Swing AWT und Swing bieten eine

Mehr

Graphische Benutzungsoberflächen

Graphische Benutzungsoberflächen Graphische Benutzungsoberflächen Graphische Benutzungsoberflächen (graphical user interfaces, GUI) dienen zur interaktiven Bedienung von Programmen, Ein- und Ausgabe mit graphischen Techniken und visuellen

Mehr

NTB Druckdatum: 01.04.13 -

NTB Druckdatum: 01.04.13 - AWT UND SWING AWT = abstract windowing toolkit Bausteine Eigenes Fenster Programmcode steht nicht im Main, sondern in einer separaten Klasse extends JFrame JWindow selbstständiges Fenster, ohne Rahmen

Mehr

GUI Programmierung mit JAVA Swing

GUI Programmierung mit JAVA Swing GUI Programmierung mit JAVA Swing Komponenten Layout Event Handling Imaging 2001 Thomas Weiler 1 JAVA Swing Bibliothek zur Erstellung grafischer Benutzerschnittstellen in JAVA Bietet Klassen für grafische

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung

Mehr

GRAFISCHE BENUTZERSCHNITTSTELLEN

GRAFISCHE BENUTZERSCHNITTSTELLEN Vorlesung 4.4 GRAFISCHE BENUTZERSCHNITTSTELLEN Dr. Philip Mayer # 1 GUIs Grafische Benutzerschnittstellen (GUIs, Graphical User Interfaces) bieten dem Benutzer Zugriff auf ein Anwendungssystem GUIs sind

Mehr

GUI-Programmierung. Teil I. Unterlagen zum Modul OOP mit Java V by MOU2/BFH-TI. Berner Fachhochschule Technik und Informatik

GUI-Programmierung. Teil I. Unterlagen zum Modul OOP mit Java V by MOU2/BFH-TI. Berner Fachhochschule Technik und Informatik GUI-Programmierung mit Java Teil I Unterlagen zum Modul OOP mit Java V 3.0 2007 by WBR1/BFH-TI 2011 by MOU2/BFH-TI GUI-Programmierung V3.0 2011 by WBR1&MOU2/BFH-TI Lernziele Die Kursteilnehmer sind in

Mehr

Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI)

Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI) 1 JAVA für Bauingenieure Alexander Karakas SS 2008 Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI) 21.05.2008 2 Was ist ein(e) GUI? GUI = Graphical User Interface = Graphische

Mehr

Java I Vorlesung 11 Graphische Oberflächen mit Swing

Java I Vorlesung 11 Graphische Oberflächen mit Swing Java I Vorlesung 11 Graphische Oberflächen mit Swing 5.7.2004 Swing Komponenten Layout-Manager Events Swing und Threads Die Java-Plattform 2 Die Java-Plattform 3 "Hello World" in Swing HelloWorldS.java

Mehr

GUI Programmierung in Java

GUI Programmierung in Java vs und niemals mischen! Daher muss man sich für eine Klasse entscheiden 1 (Abstract Window Toolkit) schwergewichtige Alle Elemente werden vom Betriebssytem gemalt sehen aus wie alle anderen Programme auf

Mehr

Layout Manager. Astrid Beck FHT Esslingen

Layout Manager. Astrid Beck FHT Esslingen Layout Manager Astrid Beck FHT Esslingen Layout Manager Layout Manager arrangieren den Inhalt eines Containers gemäß vorgegebener Regeln Layout Manager BorderLayout North, South, East, West, Center FlowLayout

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Exkurs: Graphische Benutzeroberflächen FH Braunschweig/Wolfenbüttel Sommersemester 2009 1 / 22 Gliederung I Wiederholung Klassen, Objektorientierung (Kapitel 10,11) Exkurs:

Mehr

GUI-Programmierung mit Java. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 11: GUI 1: AWT (1) GUI-Programmierung mit Java.

GUI-Programmierung mit Java. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 11: GUI 1: AWT (1) GUI-Programmierung mit Java. Universität Osnabrück 1 GUI-Programmierung mit Java 3 - Objektorientierte Programmierung in Java Vorlesung 11: GUI 1: AWT (1) SS 2004 Prof. Dr. F.M. Thiesing, FH Dortmund Alle unsere bisherigen Anwendungsbeispiele

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 7. Grafische Benutzeroberflächen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Grafische Benutzeroberflächen Grafische Benutzeroberflächen 1 Ziele Grafische Benutzeroberflächen (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen.

Mehr

Institut für Programmierung und Reaktive Systeme. GUIs mit Swing. Markus Reschke

Institut für Programmierung und Reaktive Systeme. GUIs mit Swing. Markus Reschke GUIs mit Swing Markus Reschke 28.08.2014 Beispiel: Ein einfaches GUI-Programm Siehe Painter.java Markus Reschke GUIs mit Swing 2 GUI Frameworks in Java AWT war das erste GUI-Framework, welches mit Java

Mehr

Programmieren II. Java im Vergleich zu anderen Sprachen. Einführung: GUI. Einführung: Grafische Benutzeroberflächen. Dr.

Programmieren II. Java im Vergleich zu anderen Sprachen. Einführung: GUI. Einführung: Grafische Benutzeroberflächen. Dr. Programmieren II Dr. Klaus Höppner Hochschule Darmstadt SS 2008 1 / 22 2 / 22 Einführung: GUI Fast alle Programme besitzen mittlerweile eine grafische Benutzeroberfläche (engl: Graphical User Interface,

Mehr

Grundlagen der Programmierung (GP) Prof. Dr. H. Schlingloff Joachim Hänsel

Grundlagen der Programmierung (GP) Prof. Dr. H. Schlingloff Joachim Hänsel Grundlagen der Programmierung (GP) Prof. Dr. H. Schlingloff Joachim Hänsel 17. 6. 2010 Kapitel 8: Java-Programmierung 8.1 Ereignisbehandlung, Benutzungsschnittstellen 8.2 Graphikprogrammierung 8.1 Ereignisbehandlung

Mehr

Grundlagen der Programmierung APPLETS

Grundlagen der Programmierung APPLETS Grundlagen der Programmierung APPLETS Inhalt dieser Einheit Java-Applets: Java-Applets Vor- und Nachteile Sicherheitskonzepte Methoden Einbetten in HTML Graphical User Interface 2 Java Applets Applets

Mehr

Grafikausgabe mit dem Abstract- Windowing-Toolkit. Eine Einführung

Grafikausgabe mit dem Abstract- Windowing-Toolkit. Eine Einführung Grafikausgabe mit dem Abstract- Windowing-Toolkit Eine Einführung Inhalt Einführung Grundlegende Eigenschaften des Abstract-Windowing- Toolkit (AWT) Grundlagen Grafikausgabe Linien zeichnen Rechtecke zeichnen

Mehr

Einführung: Grafische Benutzeroberflächen. Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester / 22

Einführung: Grafische Benutzeroberflächen. Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester / 22 Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 22 Einführung: Grafische Benutzeroberflächen 2 / 22 Einführung: GUI Fast alle Programme besitzen mittlerweile eine grafische

Mehr

Ziel dieses Kapitels: Einführung in die Grundzüge der Programmierung graphischer Benutzeroberflächen (engl.: "graphical user interface", GUI) in Java

Ziel dieses Kapitels: Einführung in die Grundzüge der Programmierung graphischer Benutzeroberflächen (engl.: graphical user interface, GUI) in Java GUI-Programmierung in Java GUI-Programmierung in Java 2002 Prof. Dr. Rainer Manthey Informatik II 1 AWT und Swing Ziel dieses Kapitels: Einführung in die Grundzüge der Programmierung graphischer Benutzeroberflächen

Mehr

Session 1: Classes and Applets

Session 1: Classes and Applets Session 1: Classes and Applets Literature Sprechen Sie Java, ISBN 3-89864-117-1, dpunkt deutsch Java für Studenten, ISBN 3-8273-7045-0, PearsonStudium deutsch Java in a Nutshell, ISBN: 0-59600-283-1, O'Reilly

Mehr

Programmieren 2 Selbststudium Semesterwoche 4

Programmieren 2 Selbststudium Semesterwoche 4 Programmieren 2 Selbststudium Semesterwoche 4 Kapitel 11.1, 11.2 und 11.3 1. Das Konzept "Interface" ist wichtig und ist uns schon mehrfach begegnet. In welchen Zusammenhängen hatten wir es schon mit "Interfaces"

Mehr

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2 Inhalt 1. Printing API 1. Übersicht 2. Vorgehen 3. Beispiel 2. Klasse PrintUtils 3. Mehrere Seiten drucken Folie 1 Lernziele Sie wissen, wie Sie Swing-Komponenten ausdrucken können Sie kennen den Aufbau

Mehr

Grafische Benutzeroberflächen mit Swing

Grafische Benutzeroberflächen mit Swing Grafische Benutzeroberflächen mit Swing KW 30, Zentralübung Informatik II 2006-07-24 Klausur: Stichpunkte 1. Auswertung System.out.println("abc" instanceof String); Ergebnis von instanceof ist ein boolean,

Mehr

Swing Lernen am Code Teil 1

Swing Lernen am Code Teil 1 Swing Lernen am Code Teil 1 Swing Fenster erzeugen import java.awt.* import java.awt.event.* import javax.swing.* class SwingDemo{ static JFrame Fenster; public static void main(string[] args){ } } Fenster

Mehr

Applets. Applets. Applets. Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung von einem Java-fähigen Web-Browser oder sog.

Applets. Applets. Applets. Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung von einem Java-fähigen Web-Browser oder sog. Johann Wolfgang Goethe-Universität Professur für Graphische Datenverarbeitung Fachbereich Informatik und Mathematik Prof. Dr. Detlef Krömker Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung

Mehr

GUI Programmierung mit javax.swing

GUI Programmierung mit javax.swing java.awt Swing Komponenten Layout Manager Ausblick GUI Programmierung mit University basierend auf Folien von Dr. Beatrice Amrhein (Bern), 19. Juni 2006 java.awt Swing Komponenten Layout Manager Ausblick

Mehr

Javakurs für Fortgeschrittene

Javakurs für Fortgeschrittene Javakurs für Fortgeschrittene Einheit 03: Swing Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Einführung in GUI-Programmierung Motivation Grundlagen von Swing Praxis: UI für

Mehr

Einbindung der Tastatur

Einbindung der Tastatur Einbindung der Tastatur Auch die Tastatur kann man wie die Maus zur interaktiven Programmsteuerung verwenden. Bei der Maus ist stets klar, welche grafische Komponente bei einem Klick oder einer Bewegung

Mehr

GUI-Programmierung in Java

GUI-Programmierung in Java GUI-Programmierung in Java Jan Pihl, Daniel Bugdalle 1. Einleitung Betreuer: Thomas Ströder Die Bedienung von Software stellt sich oft als etwas schwierig für viele Nutzer heraus, wenn es keine grafische

Mehr

Einführung in GUI-Programmierung. javax.swing

Einführung in GUI-Programmierung. javax.swing Einführung in GUI-Programmierung javax.swing GUI Graphical User Interface ( Grafische Benutzerschnittstelle ) Anschaulichere und leichtere Möglichkeit zur Dateneingabe und Kontrolle von Programmen Stellt

Mehr

Ein Manager mit CardLayout layout/cards.java

Ein Manager mit CardLayout layout/cards.java 201 Copyright 1996-1998 by Axel T. Schreiner. All Rights Reserved. Ein Manager mit CardLayout layout/cards.java CardLayout dient vor allem zum Aufbau von Inspektoren: In der gleichen Fläche soll je nach

Mehr

Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster

Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster by Ali Bastan Gliederung Grundlagen von Swing 1. Kurze Einleitung 2. Warum Swing, wenn es das AWT gibt? 3. Was ist Swing? 4. Merkmale von Swing 5.

Mehr

GroupLayout Anmerkung

GroupLayout Anmerkung Swing Layouts Layoutmanager Ordnen Elemente eines Containers nach einem bestimmten Verfahren an Der Container erfragt bei jeder Neudarstellung bei seinem Layoutmanager, wie die Komponenten des Containers

Mehr

Hochschule der Medien Prof. Uwe Schulz 14. Juli 2010 Klausur Informatik, EDV-Nr. 40301 Seite 1 von 5. Teil 2: Aufgaben

Hochschule der Medien Prof. Uwe Schulz 14. Juli 2010 Klausur Informatik, EDV-Nr. 40301 Seite 1 von 5. Teil 2: Aufgaben Hochschule der Medien Prof Uwe Schulz 14 Juli 2010 Klausur Informatik, EDV-Nr 40301 Seite 1 von 5 Name: Matr Nr: Teil 2: Aufgaben Hilfsmittel: alle außer tragbare Computer und Nachbar Bearbeitungszeit:

Mehr

EAD II Übung 5. Graphische Benutzungsoberfläche mit BlueJ

EAD II Übung 5. Graphische Benutzungsoberfläche mit BlueJ EAD II Übung 5 Graphische Benutzungsoberfläche mit BlueJ Graphische Benutzungsoberfläche (GUI) Fenster, das weitere Komponenten zur Darstellung und Interaktion enthält spezielle Standardbibliotheken erforderlich,

Mehr

Klausur vom 14. Juni 2004. Informatik 4

Klausur vom 14. Juni 2004. Informatik 4 Berner Fachhochschule Hochschule für Technik und Informatik, HTI Fachbereich Elektro- und Kommunikationstechnik Labor für Technische Informatik, Burgdorf Klasse: EV02-1 Name, Vorname: Klausur vom 14. Juni

Mehr

Tutorial04: Swing: Erstellen eines JFrames mit einem JSplitPane

Tutorial04: Swing: Erstellen eines JFrames mit einem JSplitPane Hochschule Harz Programmierung2 Tutorial 04: FB Automatisierung und Informatik Dipl.-Inf., Dipl.-Ing. (FH) M. Wilhelm Programmierung 2 für MI / WI Thema: Swing, JSplitPane und I/O Versuchsziele Kenntnisse

Mehr

Programmieren II. Menü-Klassen in Java. Menüs. Menüs. Action. Dr. Klaus Höppner. GridBagLayout. Hochschule Darmstadt SS 2008

Programmieren II. Menü-Klassen in Java. Menüs. Menüs. Action. Dr. Klaus Höppner. GridBagLayout. Hochschule Darmstadt SS 2008 Programmieren II Menüs Dr. Klaus Höppner Action Hochschule Darmstadt SS 2008 GridBagLayout 1 / 30 2 / 30 Menüs Menü-Klassen in Java In Fenstern von grafischen Anwendungen kennt man folgende Arten von Menüs:

Mehr

Java Projekt: Tic Tac Toe + GUI

Java Projekt: Tic Tac Toe + GUI Java Projekt: Tic Tac Toe + GUI Rechnerpraktikum aus Programmierung im WS 2005/06 unter der Leitung von Dr. Michael Hahsler Tadeh Amirian (h0253821) 10.01.2006 1) Problemdefinition Beim TicTacToe Spiel

Mehr

Swing :Komponenten I (Teil 2)

Swing :Komponenten I (Teil 2) l Bei Swing handelt es sich um eine Programmierschnittstelle und Grafikbibliothek zum Programmieren von grafischen Benutzeroberflächen l Swing stellt eine Menge von Klassen zur Verfügung l Swing wurde

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 14 Einstieg in die Informatik mit Java Swing Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 14 1 Einführendes Beispiel 2 Eigenschaften von Swing 3 Typisches Swing-Applet

Mehr

Einführung in GUI-Programmierung. javax.swing

Einführung in GUI-Programmierung. javax.swing Einführung in GUI-Programmierung javax.swing GUI Graphical User Interface ( Grafische Benutzerschnittstelle ) Anschaulichere und leichtere Möglichkeit zur Dateneingabe und Kontrolle von Programmen Stellt

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik GUI-Programmierung mit Swing

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik GUI-Programmierung mit Swing Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik GUI-Programmierung mit Swing AWT und Swing Java enthält zwei Pakete zur Programmierung graphischer Oberflächen. java.awt: Das Abstract

Mehr

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de Stand FTE2 Anfang 4. Semester plus Projekt Multiuhren_Thread Ich gehe im Hinblick auf Klassenarbeiten und der Abschlussprüfung davon aus, dass Sie das Skript OOP JAVA2 durchgearbeitet haben. Wir haben

Mehr

Benutzeroberflächen. Java Teil 4

Benutzeroberflächen. Java Teil 4 Benutzeroberflächen Java Teil 4 Einleitung Eine grafische Benutzeroberfläche (Graphical User Interface) ermöglicht dem Benutzer die Interaktion mit dem Computer über grafische Symbole. Die GUI haben in

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Funktionale und Objekt-Orientierte Programmierkonzepte

Funktionale und Objekt-Orientierte Programmierkonzepte Funktionale und Objekt-Orientierte Programmierkonzepte Prof. Marc Fischlin, Wintersemester 15/16 Kapitel 17: GUI, Threads und verschachtelte Klassen 13. Oktober 2010 Dr.Marc Fischlin Kryptosicherheit 1

Mehr

JButton, JCheckBox, JRadioButton. Programmieren II. Vorlesung 7. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2009.

JButton, JCheckBox, JRadioButton. Programmieren II. Vorlesung 7. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2009. Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2009 1 / 30 2 / 30 JButton, JCheckBox, JRadioButton In Swing existieren drei wesentliche Klassen für Schaltflächen: JButton für normale

Mehr

Graphical User Interfaces

Graphical User Interfaces Graphical User Interfaces SEP 184 Toolkits es gibt verschiedene Toolkits (= Sammlungen von Klassen, Anbindungen an Betriebssystem, etc.) für grafische Oberflächen Abstract Windows Toolkit (AWT) Swing Standard

Mehr

SWT. -The Standard Widget Toolkit- Inhaltsverzeichnis. Thomas Wilhelm SWT. 1. Was ist SWT?

SWT. -The Standard Widget Toolkit- Inhaltsverzeichnis. Thomas Wilhelm SWT. 1. Was ist SWT? Java -The Standard Widget Toolkit- Inhaltsverzeichnis 1. Was ist? - Vorteile von - Nachteile von 2. Vorbereitungen für 3. Das erste Programm in 4. Widgets und Styleparameter 5. - Layouts Was ist ein Widget?

Mehr

5. Das Java AWT (II) Components und Container

5. Das Java AWT (II) Components und Container 5. Das Java AWT (II) Components und Container OO-Graphics in Java Das Java AWT (II) 111 AWT Hierarchie (II) Checkbox Choice Object List Button Component Canvas Panel Applet Container ScrollPane Dialog

Mehr

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Abstrakte Klassen und Interfaces Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer

Mehr

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7 Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck

Mehr

...erinnern Sie sich? oopjs4b / kwhbkd4r

...erinnern Sie sich? oopjs4b / kwhbkd4r ...erinnern Sie sich? oopjs4b / kwhbkd4r !" Ereignisbehandlung in awt/swing führt Liste interessierter Behandler GUI- Komponente (z.b. Knopf) wird eingetragen trägt ein Ereigniskanal fertigt ab neuer Behandler

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X

Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X SwissMacMeeting #1 26. Juni 2004 Messeturm Basel http://mac.naepflin.com Was ist das Ziel dieses Kurses? Starthilfe Einblick in die Möglichkeiten,

Mehr

Fachhochschule Fulda Fachbereich Angewandte Informatik. Hausarbeit Seminar: Java3D. Java Layout-Manager WS 2002/2003

Fachhochschule Fulda Fachbereich Angewandte Informatik. Hausarbeit Seminar: Java3D. Java Layout-Manager WS 2002/2003 Fachhochschule Fulda Fachbereich Angewandte Informatik Hausarbeit Seminar: Java3D Java Layout-Manager WS 2002/2003 Verfasser: [email protected] Inhaltsverzeichnis Inhaltsverzeichnis... 2 1. Einleitung...

Mehr

Einführung in Swing. Graphical User Interface

Einführung in Swing. Graphical User Interface Einführung in Swing Ho Ngoc Duc IFIS - Universität zu Lübeck Graphical User Interface Ein GUI-Programm beinhaltet: Graphische Darstellung der Anwendungsdaten und Interaktionsmöglichkeiten in Fenstern Steuerung

Mehr

Das Model View Controller (MVC) Konzept

Das Model View Controller (MVC) Konzept Das Model View Controller (MVC) Konzept Ziel: Erhöhung der Flexibilität und Reduktion der Komplexität von GUI-Programmen durch Standard- Struktur (MVC-Pattern). Geht zurück auf Smalltalk. View 1 View 2

Mehr

U08 Entwurfsmuster (II)

U08 Entwurfsmuster (II) U08 Entwurfsmuster (II) Inhalt der Übung Diskussion und Implementierung von Entwurfsmustern Übungsaufgaben Aufgabe 1 (Queue) Gegeben ist das folgende Analysemodell einer Warteschlange (Queue): Eine Warteschlange

Mehr

Java GUI Entwicklung mit Swing

Java GUI Entwicklung mit Swing Seminarunterlage Version: 5.03 Version 5.03 vom 13. Februar 2014 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen

Mehr

J.1. J.1 GUI-Programmierung in in Java. 2002 Prof. Dr. Rainer Manthey Informatik II 1

J.1. J.1 GUI-Programmierung in in Java. 2002 Prof. Dr. Rainer Manthey Informatik II 1 GUI-Programmierung in Java GUI-Programmierung in in Java 2002 Prof Dr Rainer Manthey Informatik II 1 AWT und Swing Ziel dieses Kapitels: : Einführung in die Grundzüge der Programmierung graphischer Benutzeroberflächen

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Java - AWT Basispraktikum SystemArchitektur WS 2008/ Atanas Dimitrov

Java - AWT Basispraktikum SystemArchitektur WS 2008/ Atanas Dimitrov Java - AWT Basispraktikum SystemArchitektur WS 2008/2209 09.12.2008 Atanas Dimitrov 1 Was besprechen wir heute: AWT Klassen Die Klasse Graphics AWT Methoden Die Klasse ToolKit Ausgabe von Bilder Die Klasse

Mehr

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur

Mehr