Grafische Benutzeroberflächen mit Swing

Größe: px
Ab Seite anzeigen:

Download "Grafische Benutzeroberflächen mit Swing"

Transkript

1 Grafische Benutzeroberflächen mit Swing Jan Krüger

2 Organisatorisches Dienstags, (12 14 Uhr) in H13 1. Teil Überblick über Java/Swing Designpattern : MVC 2. Teil Ereignissteuerung in Java/Swing Einführung in Threads V2-229 V2-221 Freitags, (16 18 Uhr) GZI (V2-222, V2-229 und V2-234) Übung : ein Taschenrechner mit JFC/Swing richtet sich an Java/JFC/Swing Einsteiger V2-240

3 Übersicht Historisches AWT vs. JFC/Swing leicht- und schwergewichtige Elemente Applet vs. WebStart vs. Application Sicherheitskonzepte in Java / Sandbox DesignPattern : MVC Beispiel Swing : Komponenten, Layouts, Ereignisse Threads

4 Historisches (1) Java 1.0 (1996) AWT (AbstractWindowToolkit) package java.awt.* Java 1.1 (1997) OO- Ereignissteuerung, JFC/Swing als Erweiterung seit Java 1.2 (1998) JFC/Swing als Standard GUI package javax.swing.*

5 Historisches (2) AWT nur wenige Komponenten Thread-sicher kein MV Prinzip HeavyWeight JFC/Swing unzählige Komponenten erweiterbar nicht Thread-sicher MV Prinzip skinable LightWeight

6 LightWeight vs. HeavyWeight keine direkte Repräsentation im UI plattformunabhängig aber : keine plattformspezifischen Komponenten Erscheinungsbild kann während der Laufzeit und unabhängig vom System geändert werden (skinable) einfach erweiterbar

7 Applet, Webstart und Applikation Browser javaws java JVM Sandbox Applet WebStart Application

8 Designpattern ModelViewController Model View Controller

9 Datenfelder Logik (Funktionen) Modell (Model) Model View Controller

10 Repräsentation (View ) Darstellung des Modells Benutzerinteraktion Model View Controller

11 Steuerung (Controller) Benutzeraktion auswerten Aktion ausführen Präsentation ändern Model View Controller

12 Ein Fenster zur Welt import javax.swing.jframe; public class HelloSwingFrame { public static void main(string[] args) { JFrame f = new JFrame("Das Fenster zur Welt!"); f.setdefaultcloseoperation(jframe.exit_on_close); f.setsize(300,200); f.setvisible(true);

13 Klassenhierachie Canvas Panel javax.swing.* TextComponent JTextComponent Component Container JComponent JPanel Button AbstractButton CheckBox Window JWindow Frame JFrame java.awt.*

14 Buttons JButton JToggleButton JCheckBox AbstractButton JRadioButton JMenuItem JMenu JCheckBoxMenuItem JRadioButtonMenuItem

15 JButton import javax.swing.jbutton; import javax.swing.jframe; public class Beispiel_JButton { public static void main(string [] args){ JFrame f = new JFrame("Das Fenster zur Welt!"); f.setdefaultcloseoperation(jframe.exit_on_close); f.add(new JButton("Ich bin ein JButton!")); f.setsize(300,200); f.setvisible(true);

16 JTextComponent JTextComponent JTextField JTextArea JEditorPane JFormattedTextField JTextPane JPasswordField Text Controls Plain Text Areas Styled Text Areas

17 JTextField import javax.swing.jframe; import javax.swing.jtextfield; public class Beispiel_JTextField { public static void main(string[] args) { JFrame f = new JFrame("Das Fenster zur Welt!"); f.setdefaultcloseoperation(jframe.exit_on_close); f.add(new JTextField("Ich bin ein JTexfield!",60)); f.setsize(300,200); f.setvisible(true);

18 JLabel import javax.swing.jframe; import javax.swing.jlabel; public class Beispiel_JLabel { public static void main(string[] args) { JFrame f = new JFrame("Das Fenster zur Welt!"); f.setdefaultcloseoperation(jframe.exit_on_close); f.add(new JLabel("Ich bin ein JLabel!",60)); f.setsize(300,200); f.setvisible(true);

19 JPanel Behälter für andere JComponenten (JPanel, JButton, JTextField,...) JPanel zeichnet nur seinen Hintergrund benutzt einen LayoutManager um JComponenten im JPanel anzuordnen typische Anwendung : Positionieren von JComponenten

20 Layout : FlowLayout... public class Beispiel_FlowLayout extends JPanel{ public Beispiel_FlowLayout(){ for(int i = 1; i <= 5; ++i){ add(new JButton("Button "+(Math.pow(10, i)))); public static void main(string[] args) { JFrame f = new JFrame("FlowLayout"); f.add(new Beispiel_FlowLayout()); f.pack(); f.setvisible(true);

21 Layout : BorderLayout... public class Beispiel_BorderLayout extends JPanel{ public Beispiel_BorderLayout(){ setlayout(new BorderLayout()); add(new JButton("Norden"),BorderLayout.NORTH); add(new JButton("Westen"),BorderLayout.WEST); add(new JButton("Osten"),BorderLayout.EAST); add(new JButton("Süden"),BorderLayout.SOUTH); add(new JButton("Mitte"),BorderLayout.CENTER);...

22 Layout : GridLayout... public class Beispiel_GridLayout extends JPanel { public Beispiel_GridLayout(){ setlayout(new GridLayout(3,3)); for (int i = 9; i >= 1; --i){ add(new JButton(new Integer(i).toString()));...

23 Layout : BoxLayout... public class Beispiel_BoxLayout extends JPanel { public Beispiel_BoxLayout(){ this(boxlayout.x_axis); public Beispiel_BoxLayout(int direction){ setlayout(new BoxLayout(this, direction)); for(int i = 1; i <=5; ++i){ add(new JButton(new Integer(i).toString()));...

24 Ereignissteuerung eine Komponente kann ein Ereignis (Event) auslösen jedes Event wird durch eine Klasse repräsentiert (z.b. ActionEvent) ein Event kann durch ein oder mehrere Listener verarbeitet werden JComponents haben ähnliche Methoden zum Hinzufügen und Entfernen von Listenern für ein unterstütztes Event addxxxlistener(xxxevent) removexxxlistener();

25 Beispiel : Das Interface ActionListener import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.jbutton; import javax.swing.jframe; public class BeispielActionListener implements ActionListener { public void actionperformed(actionevent ae){ //Ausgabe des zum ActionEvent gehörenden ActionEvent System.out.println( Geklickt: +ae.getactioncommand()); public static void main(string[] args){ JFrame jf = new Jframe( BeispielActionListener ); //Beschriftung des Jbutton ist gleichzeitig ActionCommand JButton jb = new JButton( Klick mich ); BeispielActionListener bal = new BeispielActionListener(); jb.addactionlistener(bal); jf.setvisible(true); jf.pack(); bei Klick > Geklickt: Klick mich

26 Events und Listener Typen Es gibt viele weitere, spezialisierte Eventund dazu passende Listener-Typen Mehr dazu unter:

27 Was sind Threads? Erlauben Nebenläufigkeit von unterschiedlichen Programmteilen Quasi-parallel, je nach Systemarchitektur auch echt parallel Ermöglichen bessere Ausnutzung von Prozessorzeit und anderen Resourcen, z.b. Bandbreite einer Internetverbindung

28 Threads in Java: Die Klasse java.lang.thread public class ThreadDemo extends Thread{ //Diese Methode stammt aus Runnable, ist aber in Thread //leer implementiert und muss daher überschrieben werden public void run(){ //Zählen in einer Schleife von 0 bis 9 for(int i=0;i<10;i++){ //Ausgabe jeder Zahl auf der Konsole System.out.println("Zahl "+i); //fertig! System.out.println("Fertig!"); public static void main(string[] args){ //Erzeugen einer neuen Instanz, inklusive Thread ThreadDemo td = new ThreadDemo(); //Thread starten td.start();

29 Threads in Java: Das Interface java.lang.runnable public class RunnableDemo implements Runnable{ //Diese Methode stammt aus Runnable und muss //implementiert werden public void run(){ //Zählen in einer Schleife von 0 bis 9 for(int i=0;i<10;i++){ //Ausgabe jeder Zahl auf der Konsole System.out.println("Zahl "+i); //fertig! System.out.println("Fertig!"); public static void main(string[] args){ //Erzeugen einer neuen Instanz RunnableDemo rd = new RunnableDemo(); //Erzeugen eines Thread, um das Runnable auszuführen Thread t = new Thread(rd); //Thread starten t.start();

30 Beispiel: Downloadmanager Wir wollen ein Programm zum Download von Dateien schreiben Es sollen mehrere Dateien geladen werden können Eingabe: URLs, die die Dateien auf einem entfernten Rechner addressieren, Zugriff über das http Protokoll Öffnen einer Verbindung pro Datei, herunterladen der Datei auf den lokalen Rechner

31 Beispiel: Downloadmanager public class DownloadManager{ public DownloadManager(URL[] url) { //Vereinfachte For-Schleife for(url u:url){//sequentiell-> Ausführung hintereinander download(u); public File download(url url) { //Öffne http Verbindung HttpURLConnection connection = (HttpURLConnection) url.openconnection(); //Verbinde mit Server connection.connect(); //öffne url InputStream istream = connection.getinputstream(); //lese von istream und schreibe in datei (ohne Details) return readfile(istream);...

32 Beispiel: Downloadmanager Problem 1: Wir wollen mehr als eine Datei gleichzeitig herunterladen können, um unseren Internetanschluß voll auszulasten Problem 2: Download einer Datei dauert eventuell sehr lang, andere sind vielleicht schneller heruntergeladen Lösung: Jede Datei wird von einem eigenen, unabhängigen Thread heruntergeladen!

33 Beispiel: Downloadmanager

34 Beispiel: Downloadmanager public class Download implements Runnable { private URL url = null; public Download(URL url) { this.url = url; public void run() { HttpURLConnection connection = null; try {//Verbindung aufbauen connection = (HttpURLConnection) url.openconnection(); connection.connect(); readfile(connection.getinputstream());//einlesen catch (IOException e) { e.printstacktrace(); finally { if (connection!= null) {//Verbindunng in jedem Fall schliessen connection.disconnect();...

35 Beispiel: Downloadmanager public class DownloadManager2{ public DownloadManager2(URL[] url) { //Vereinfachte For-Schleife (ab Java 1.5) for(url u:url){//sequentiell-> Ausführung hintereinander Thread t = new Thread(new Download(u)); t.start();//methode kehrt sofort zurück -> Ausführung der //anderen Downloads beginnt unmittelbar public static void main(string[] args) { URL[] url = new URL[args.length];//Vorsicht, evtl. ist args==null for(int i=0;i<args.length;i++) { url[i] = new URL(args[i]); //Download starten DownloadManager2 dm = new DownloadManager2(url);

36 Speziallfall Swing: Der Event Dispatch Thread Die meisten Swing Objektmethoden sind nicht synchronisiert => Veränderungen durch verschiedene Threads können zu Inkonsistenzen führen Daher: Synchronisierungen von Änderungen über den Event Dispatch Thread => Events werden dadurch in der Reihenfolge Ihres Eintreffens ausgeführt Code auf dem EDT sollte nicht lange brauchen, sonst => Blockieren der GUI!

37 ActionListener revisited, wie man die GUI blockiert... public class BeispielActionListener implements ActionListener {... public void actionperformed(actionevent ae){ //Ausgabe des zum ActionEvent gehörenden ActionEvent System.out.println( Geklickt: +ae.getactioncommand()); //eintausend Wiederholungen for(int i = 0; i< 1000;i++) { if (SwingUtilities.isEventDispatchThread(){ //Ausführung im EventDispatchThread? System.out.println("Running on EDT!"); try {//Für 100 Millisekunden schlafen Thread.sleep(100); catch (InterruptedException e) { e.printstacktrace();... > Geklickt: Klick mich und 1000x > Running on EDT! bei Klick

38 Spezialfall Swing: Der Event Dispatch Thread //Erweiterung von Download public class Download implements Runnable { //Jlabel stellt u.a. einzeilige Strings dar, nicht editierbar! Jlabel progresslabel = null;... public Download(URL url, Jlabel progresslabel) { this.url = url; this.progresslabel = public void run() { HttpURLConnection connection = null; try {//Verbindung aufbauen updatelabel( Baue Verbindung auf zu +url.tostring()); connection = (HttpURLConnection) url.openconnection(); connection.connect(); updatelabel( Verbunden ); readfile(connection.getinputstream());//einlesen updatelabel( Datei geladen! );...

39 Spezialfall Swing: Der Event Dispatch Thread //Erweiterung von Download public class Download implements Runnable {... //message ist als final (unveränderlich) deklariert private void updatelabel(final String message) { Runnable r = new Runnable( public void run() { //Nur Setzen der Nachricht auf dem Jlabel, //keine zeitintensiven Aktionen! progresslabel.settext(message); ); //Führt r demnächst auf dem EventDispatch aus SwingUtilities.invokeLater(r);...

40 Threads: Zusammenfassung Threads sind in Java einfach zu benutzen Für unabhängige Aufgaben in einer GUI: s.h. Beispiel MyWorker im Skript Je unabhängiger ein Programmteil von Interaktion mit anderen ist, desto einfacher ist dessen Auslagerung in einen Thread Mit Threads sind vorhandene Resourcen, z.b. verfügbare Prozessoren eines Rechners besser nutzbar

41 Threads: Zusammenfassung Offene Probleme: Threads, die sich eine Resource teilen, z.b. die Standardausgabe (Konsole), konkurrieren um den Zugriff darauf => Synchronisierung nötig, sonst nicht vorhersagbares Verhalten Nicht behandelt: Der Lebenszyklus eines Threads Dazu und zu vielem mehr

42 Lesenswertes... Java ist auch eine Insel Kapitel 15 Swing Tutorial

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

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

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

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

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

DHBW Karlsruhe, Angewandte Informatik Programmieren in JAVA https://www.iai.kit.edu/~javavorlesung W. Geiger, T. Schlachter, C. Schmitt, W.

DHBW Karlsruhe, Angewandte Informatik Programmieren in JAVA https://www.iai.kit.edu/~javavorlesung W. Geiger, T. Schlachter, C. Schmitt, W. Bereich: Grafische Benutzeroberflächen (UI), Events (1) Währungsumrechner (2) Package: de.dhbwka.java.exercise.ui.event Musterlösung Klasse: CurrencyCalculator package de.dhbwka.java.exercise.ui.event;

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

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

Programmiertechnik GUI Programmierung mit Java Swing

Programmiertechnik GUI Programmierung mit Java Swing Programmiertechnik GUI Programmierung mit Java Swing Prof. Dr. Oliver Haase Software Engineering und Verteilte Systeme Raum F012 [email protected] Tel: 07531/206-720 Oliver Haase Hochschule Konstanz

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

Grafische Benutzeroberflächen

Grafische Benutzeroberflächen Gilbert Beyer und Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Aufgabe Ein Benutzer soll zwei Zahlen in ein Programm

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

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

Swing. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Swing. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java Swing Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 27.06.07 G. Bohlender (IANM UNI Karlsruhe) Swing 27.06.07 1 / 10 Übersicht 1 Einführendes

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

Grafische Benutzeroberflächen

Grafische Benutzeroberflächen Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Aufgabe Ein Benutzer soll

Mehr

Grafische Benutzeroberflächen

Grafische Benutzeroberflächen Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

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

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

Sommersemester Implementierung III: GUI und Verhalten (Teil 2)

Sommersemester Implementierung III: GUI und Verhalten (Teil 2) Sommersemester 2003 Implementierung III: GUI und Verhalten (Teil 2) 26 Aufgabe 5 Implementierung III: GUI und Verhalten (Teil 2) Umfang: 1 Woche Punkte: 50 P. Als Nächstes soll die Implementierung des

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

/** Main-Methode erzeugt einen neuen Editor zum Testen */ public static void main(string[] args) { new Editor();

/** Main-Methode erzeugt einen neuen Editor zum Testen */ public static void main(string[] args) { new Editor(); Bereich: Grafische Benutzeroberflächen (UI), Events (2) Editor Package: de.dhbwka.java.exercise.ui.editor Klasse: Editor Aufgabenstellung: Schreiben Sie einen kleinen Texteditor mit Swing! Keine Panik,

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

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

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

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

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer

Mehr

Fachhochschule Stuttgart Prof. Uwe Schulz 5. Juli 2006 Hochschule der Medien Klausur Informatik, EDV-Nr (42021) Seite 1 von 4

Fachhochschule Stuttgart Prof. Uwe Schulz 5. Juli 2006 Hochschule der Medien Klausur Informatik, EDV-Nr (42021) Seite 1 von 4 Hochschule der Medien Klausur Informatik, EDV-Nr. 40301(42021) Seite 1 von 4 Name: Matr. Nr.: Note Teil 1: Keine Hilfsmittel! Bearbeitungszeit: 20 Minuten Frage Stichwort Punkte 1 Schleife 2 2 Code-Fragment

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

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

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

JLabel. dient zur Textanzeige. können auch Bilder anzeigen: mylabel.seticon( new ImageIcon( C:/Pfad/zum/Bild.jpg )

JLabel. dient zur Textanzeige. können auch Bilder anzeigen: mylabel.seticon( new ImageIcon( C:/Pfad/zum/Bild.jpg ) Swing Komponenten Thomas Wieczorek http://www.wieczo.net/?p=76 Hier trage ich die Komponenten zusammen, die Kreling und Wiedling in ihren Klausuren oft verwendet haben. Bei Verbesserung: Bitte Kommentar

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

Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum

Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum Programmieren I Martin Schultheiß Hochschule Darmstadt Sommersemester 2012 1 / 19 Rückblick Themen Erste GUI-Anwendung Praktikum 2 / 19 Inhalt von Teil 1 Algorithmen Elementare Datentypen Operatoren Bedingte

Mehr

Universität Paderborn Prof. Dr. Stefan Böttcher. Kapitel 3: Java Applets

Universität Paderborn Prof. Dr. Stefan Böttcher. Kapitel 3: Java Applets Kapitel 3: Java Applets 1 Was sind Applets? kleine in Fenstern ausführbare Programme typisch: Aufruf im Browserfenster als Teil einer HTML-Seite Anfang des umgebenden HTML-Textes

Mehr

Medientechnik. Übung 2 Java Swing

Medientechnik. Übung 2 Java Swing Medientechnik Übung 2 Java Swing Planung Nr Zeitraum Thema 1 20.04. 25.04. Bildretusche mit Gimp 2 27.04. 01.05. GUI Programmierung 3 04.05. 08.05. Model-View Controller 4 18.05. 22.05. Bildfilter 5 26.05.

Mehr

Aufbau einer typischen Java-Datei

Aufbau einer typischen Java-Datei Aufbau einer typischen Java-Datei 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 [package mein.paket;] [import

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

Punkte. Teil 1. Teil 2. Summe. 1. Zeigen Sie, dass der untenstehende Suchbaum die AVL-Bedingung verletzt und überführen Sie ihn in einen AVL-Baum.

Punkte. Teil 1. Teil 2. Summe. 1. Zeigen Sie, dass der untenstehende Suchbaum die AVL-Bedingung verletzt und überführen Sie ihn in einen AVL-Baum. Hochschule der Medien Prof Uwe Schulz 1 Februar 2007 Stuttgart Klausur Informatik 2, EDV-Nr 40303/42022 Seite 1 von 2 Name: Matr Nr: Teil 1: Keine Hilfsmittel Bearbeitungszeit: 20 Minuten Teil 1 Teil 2

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

Swing : Komponeneten I (Teil 1) Was ist Swing?

Swing : Komponeneten I (Teil 1) Was ist Swing? Was ist Swing? 1 Unterschied zu AWT (Abstract window Toolkit) Zusätzliche Komponenten von Swing,die zu Oberflächenerzeugung genutzt werden können: Keyboard Accelerators, also Tastenkombination zur Steuerung

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG FORTGESCHRITTENE KONZEPTE Tobias Witt 26.03.2014 [email protected] 25.12.01.30 Bürozeiten: 09 Uhr - 12 Uhr FEHLERBEHANDLUNG KLASSISCHER ANSATZ Fehlercode als Rückgabewert

Mehr

OOP: Nebenläufigkeiten Threads. Dipl.-Inform. Arnold Willemer

OOP: Nebenläufigkeiten Threads. Dipl.-Inform. Arnold Willemer OOP: Nebenläufigkeiten Threads Dipl.-Inform. Arnold Willemer [email protected] Schlafen für Profis Die C-64-Lösung kocht und blockiert den Prozessor while (!fertig) // nichts tun: busy waiting

Mehr

Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum

Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum Programmieren I Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 20 Rückblick Themen Erste GUI-Anwendung Praktikum 2 / 20 Inhalt von Teil 1 Algorithmen Elementare Datentypen Operatoren Bedingte

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

04 - Actions. Actions

04 - Actions. Actions Actions Motivation!In verschiedenen Swing-Komponenten werden ausgelöste Aktionen durch ActionListener behandelt.!häufig werden gleiche Aktionen durch verschiedene Swing-Komponenten ausgelöst. Z.B. durch

Mehr

GUIs in Java und ihre Programmierung

GUIs in Java und ihre Programmierung GUIs in Java und ihre Programmierung Einführung GUI = Graphical User Interface graphische Benutzerschnittstelle Java Tutorial java.sun.com/docs/books/tutorial/index.html Java Documentation (in Version

Mehr

Objektorientierte Softwareentwicklung

Objektorientierte Softwareentwicklung Objektorientierte Softwareentwicklung Exkurs GUI-Programmierung mit Java-SWING Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Für Hinweise und konstruktive Kritik

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

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

Klausur: Java (Liste P)

Klausur: Java (Liste P) Klausur: Java (Liste P) WS05/06 Erlaubte Hilfsmittel: Gebundene! Unterlagen (Skript mit Anmerkungen, eigene Mitschrift) und maximal ein Buch. Bitte keine losen Blätter. Lösung ist auf den Klausurbögen

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

> GUI Programmierung in Java Teil 2

> GUI Programmierung in Java Teil 2 > GUI Programmierung in Teil 2 Mark Egloff 2006 1 Lernziel Heute Abend > Sie lernen eine 2. Library für die GUI Erstellung kennen > Sie kennen die Begriffe JFC, SWING und MVC und können diese auch erklären

Mehr

Medientechnik. Übung 3 MVC & Observer

Medientechnik. Übung 3 MVC & Observer Medientechnik Übung 3 MVC & Observer Planung Nr Zeitraum Thema 1 20.04. 25.04. Bildretusche mit Gimp 2 27.04. 01.05. GUI Programmierung 3 04.05. 08.05. Model-View Controller 4 18.05. 22.05. Bildfilter

Mehr

JAVA Oberflächen mit Swing

JAVA Oberflächen mit Swing JAVA Oberflächen mit Swing Grafik von http://javafx.com 159 AGENDA Grundlagen GUI Swing JavaFX 160 GRAPHISCHE BENUTZEROBERFLÄCHEN (1) AWT = Abstract Window Toolkit Verwendet die jeweiligen GUI-Komponenten

Mehr

Wiederholung: Objektorientierte Oberflächen-Programmierung mit Java und Swing

Wiederholung: Objektorientierte Oberflächen-Programmierung mit Java und Swing Wiederholung: Objektorientierte Oberflächen-Programmierung mit Java und Swing Heinrich Hußmann Ludwig-Maximilians-Universität München Sommersemester 2003 Ludwig-Maximilians-Universität München Prof. Hußmann

Mehr

6. Objektorientiertes Design

6. Objektorientiertes Design 6. Objektorientiertes Design 6.1 Entwurfsmuster 6.2 Zusammenfassendes Beispiel 6.3 Umsetzung des Model-View-Controller- Musters in Java 6. Objektorientiertes Design 6-1 Grundlage des objektorientierten

Mehr

Grundkurs Programmieren in Java

Grundkurs Programmieren in Java Dietmar Ratz Jens Scheffler Detlef Seese Jan Wiesenberger Grundkurs Programmieren in Java Band 2: Programmierung kommerzieller Systeme HANSER Inhaltsverzeichnis Vorwort 15 1 Einleitung 17 1.1 Java - definitiv

Mehr

Nebenläufigkeit mit Java

Nebenläufigkeit mit Java Nebenläufigkeit mit Java Einheit 01: Einführung in das Java-Threadkonzept Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Organisatorisches Ziele, Aufbau und Inhalte Zielgruppe,

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

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

Techniken der Projektentwicklung

Techniken der Projektentwicklung Einleitung Architektur Swing Beispiele Aufgabe Techniken der Projektentwicklung Swing Concepts Ingo Lütkebohle Termin 11 Ingo Lütkebohle Techniken der Projektentwicklung 1 Einleitung Architektur Swing

Mehr

GUI: Model View Controller. 18 Tic-Tac-Toe: GUI. TicTacToe GUI. GUI: Model View Controller

GUI: Model View Controller. 18 Tic-Tac-Toe: GUI. TicTacToe GUI. GUI: Model View Controller 18 Tic-Tac-Toe: GUI Idee: Unbesetze Felder werden durch Button-Komponenten repräsentiert. Die Knöpfe werden in einem (3 3)-Gitter angeordnet. Wird ein Zug ausgeführt, wird der entsprechende Knopf durch

Mehr