Programmierkurs. 11. Vorlesung. Sven Mallach. 13. Januar Institut für Informatik - Lehrstuhl Prof. Dr. M. Jünger 1/ 60

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Programmierkurs. 11. Vorlesung. Sven Mallach. 13. Januar 2010. Institut für Informatik - Lehrstuhl Prof. Dr. M. Jünger 1/ 60"

Transkript

1 Programmierkurs 11. Vorlesung Sven Mallach Institut für Informatik - Lehrstuhl Prof. Dr. M. Jünger 13. Januar / 60

2 Klausuren 1. Termin: Di Termin: Do Uhrzeit: In beiden Fällen: Uhr Klausurdauer: 60 Minuten! 2/ 60

3 Klausuren Modalitäten und Räumlichkeiten: 1. Klausur: Chemie I, Physik I, II, III 2. Klausur: Physik I, II, III Zuordnung wird jeweils in der Woche vor der Klausur online gestellt (Lehrstuhlwebseite!) Hörsäale implizieren Papierklausur! Informationen zur Anmeldung zur Klausur unter: juenger/teaching/ws 0910/pkurs/anmeldung.html 3/ 60

4 Vorlesung und Probeklausur In 2010 insgesamt 3 ordentliche Vorlesungen (heute, , ). In der planmässig letzten Vorlesung (03.02.) wird eine Probeklausur angeboten! Plan: 60 Minuten Klausur, keine Korrektur, dafür direkt im Anschluss Vorstellung einer gültigen Lösung der Klausur. Enger Zeitplan, deshalb unbedingt pünktlich sein, damit wir um 14 Uhr mit der Klausur beginnen können! 4/ 60

5 Kurze Wiederholung: Vererbung und Polymorphie 5/ 60

6 Vererbung Vererbung von Variablen und Methoden durch Ableiten einer Subklasse von einer Basisklasse mittels des Schlüsselworts extends. Diese können: nur geerbt, d.h. in die Subklasse übernommen werden in der Subklasse spezialisiert / überschrieben werden Auf überschriebene Attribute und Methoden der Basisklasse kann mittels super weiterhin zugegriffen werden. 6/ 60

7 Vererbung Subklassen können darüber hinaus neue Variablen und Methoden definieren. Weitere Spezialisierung des Datentyps durch Eigenschaften und Methoden, die nur für den speziellen, aber nicht für den allgemeinen Typ gelten. 7/ 60

8 Vererbung Eine Java-Klasse kann direkt...: von einer abstrakten Basisklasse erben oder von einer konkreten Klasse erben und mehrere Interfaces implementieren (mittels implements) 8/ 60

9 Interfaces Interfaces geben lediglich eine Schnittstelle vor, d.h. Methodensignaturen ohne Implementierung, sowie Konstanten. Ein Interface kann...: von mehreren Interfaces erben (mittels extends!) genauso als Datentyp verwendet werden, wie eine Klasse 9/ 60

10 Polymorphie und dynamische Bindung Ein Objekt der Subklasse ist ein Objekt der Basisklasse! Ein Objekt kann vielerlei Datentypen annehmen, nämlich alle Typen von Basisklassen und Interfaces entlang der Vererbungshierarchie. Man nennt dies Polymorphie. Ob für ein Objekt eine Methode seiner Basisklasse oder seiner Spezialisierung aufgerufen wird, hängt allein vom dynamischen Typ des Objekts ab! Man nennt dies dynamische Bindung. 10/ 60

11 Graphische Benutzeroberflächen 11/ 60

12 Graphische Benutzeroberflächen Was ist eine graphische Benutzeroberfläche (engl. Graphical User Interface, GUI)? Eine graphische Benutzeroberfläche ist ein Programmbestandteil, welcher dem Benutzer erlaubt, den Ablauf des Programms zu beobachten / nachzuverfolgen mittels Eingaben über eine fensterbasierte Steuerung zu manipulieren 12/ 60

13 Graphische Benutzeroberflächen Das Anzeigen von Statusinformationen des Programms erfolgt beispielsweise über: Textausgabe-Einheiten wie Labels Hinweis-Fenster (Dialoge) Bilder / Grafiken 13/ 60

14 Graphische Benutzeroberflächen Die Eingabe / Steuerung des Benutzers des Programms erfolgt beispielsweise über: Buttons Menüs Tabellen Texteingabefelder 14/ 60

15 GUIs mit Java Java beinhaltet bereits Basiskomponenten zum Erstellen von graphischen Benutzeroberflächen. Dazu stehen insbesondere die Pakete Java Abstract Windowing Toolkit (AWT) Java Swing Standard Widget Toolkit (SWT), für Eclipse, nicht Bestandteil des Java SDK zur Verfügung. Dabei ist die Implementierung von graphischen Benutzeroberflächen eng mit dem Konzept der Vererbung verzahnt. 15/ 60

16 Swing - Eigenschaften baut allein auf Java-internen Bausteinen und AWT auf ist leichtgewichtig - das sog. Rendern erfolgt allein mittels Java-internen Hilfsmitteln plattformunabhängig - gleiches Erscheinungsbild (Look) und Verhalten (Feel) im Standardmodus auf allen Betriebssystemen einige Zusatz-Features gegenüber AWT, wie z.b. die Unterstützung von Drag & Drop und wählbare Look and Feels 16/ 60

17 Swing - Eigenschaften Entwicklung graphischer Oberflächen mittels Swing ist am Einfachsten mit WYSIWYG-Tools, u.a. auch der NetBeans IDE. Für den hier behandelten Rahmen jedoch genügt die textbasierte Entwicklung unter Eclipse und anderen Editoren völlig. Einbindung in den Quellcode mittels Importieren der Pakete: javax.swing.* java.awt.* 17/ 60

18 Swing - Fenster Jedes GUI-Programm besitzt eine Art Hauptfenster, welches in der Hierarchie der graphischen Komponenten ganz oben steht. Für gewöhnliche Java-Programme (nicht Applets) kommen dafür die folgenden Klassen in Frage: JFrame - Ein gewöhnliches Hauptfenster JDialog - Ein (meist modal verwendetes) Dialogfenster Abbildung: Beispiel für ein typisches JDialog-Fenster 18/ 60

19 Swing - Fenster Jedes Hauptfenster besitzt eine so genannte ContentPane, in der die Subkomponenten untergebracht werden. Abbildung: ContentPane als Bestandteil eines jeden Hauptfensters (JMenuBar nicht Bestandteil eines JFrames!) 19/ 60

20 Swing - Layouts Die Anordnung der Komponenten in einem Container (JFrame, JDialog, JPanel,...) wird durch einen sogenannten LayoutManager bestimmt und manipuliert. BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout GroupLayout SpringLayout 20/ 60

21 Swing - BorderLayout Die Klasse BorderLayout erleichtert das Anordnen von Objekten im Fenster durch Verwendung von Konstanten für fünf Bereiche. PAGE START (NORTH) PAGE END (SOUTH) LINE START (LEFT) LINE END (RIGHT) CENTER Dabei darf jeder dieser Bereiche genau eine Komponente beinhalten. Sollen mehrere Objekte abgelegt werden, verwendet man Container innerhalb von Containern, die wiederum eigene LayoutManager haben können. 21/ 60

22 Swing - Ein erstes Programm Verwenden wir nun also die Klasse JFrame zur Erstellung eines ersten simplen Swing-Programms. Hauptfenster haben u.a. typischerweise folgende Eigenschaften: geometische Eigenschaften, wie Position auf dem Bildschirm und Breite bzw. Höhe einen Titel ein Layout - Standard für JFrame ist das BorderLayout 22/ 60

23 Swing - Ein erstes Programm public class ErsteGUI public static void main(string[] args) JFrame frame = new JFrame("Ein Titel"); frame.setdefaultcloseoperation(jframe.exit ON CLOSE); frame.setvisible(true); } } Wichtig: setvisible(true) nicht vergessen! Sehr viele weitere Konfiguationsmöglichkeiten, z.b.: setsize(), setpreferredsize(), setmaximumsize() (jeweils Pixelgenau mittels der Klasse Dimension) setlocation() zum Setzen der Position des Fensters auf dem Bildschirm... 23/ 60

24 Swing - Komponenten zur Interaktion Beispiele für zu Grundbausteinen zugehörige Klassen: Buttons - JButton Menüs - JMenu Tabellen - JTable Texteingabefelder - JTextField Textausgabefelder - JLabel 24/ 60

25 Swing - Ein erstes Programm Hinzufügen von Komponenten in die ContentPane: public class ErsteGUI public static void main(string[] args) JFrame frame = new JFrame("Ein erster Titel"); frame.setdefaultcloseoperation(jframe.exit ON CLOSE); JLabel lbl = new JLabel(); lbl.settext("hello graphical World!"); frame.getcontentpane().add(lbl); } } frame.pack(); // Passe Fenstergroesse an Inhalt an frame.setvisible(true); 25/ 60

26 Swing - Vererbung Wo finden wir in diesem kleinen Beispiel Konzepte der Vererbung wieder? 1.: In Java sind alle Klassen für Fenster und andere graphische Komponenten von der abstrakten Basisklasse java.awt.component abgeleitet. Methoden wie add(component comp) (wie im Falle der ContentPane) akzeptieren also beliebige GUI-Komponenten. Dies gilt sowohl für vorgefertigte, als auch eigene durch Ableitung erzeugte Komponenten! 26/ 60

27 Swing - Vererbung Wo finden wir in diesem kleinen Beispiel Konzepte der Vererbung wieder? 2.: Jede Klasse, die wir etwa von JFrame ableiten, ist ein JFrame! In der Regel verwenden wir also nicht direkt Instanzen von JFrame, sondern leiten eigene Klassen ab, deren Eigenschaften wir dann spezialisieren. 27/ 60

28 Swing - Ein erstes Programm public class Hauptfenster extends JFrame Hauptfenster() settitle("dies ist das Hauptfenster"); setdefaultcloseoperation(exit ON CLOSE); JLabel lbl = new JLabel(); lbl.settext("hello graphical World!"); getcontentpane().add(lbl); pack(); setvisible(true); } public static void main(string[] args) Hauptfenster h = new Hauptfenster(); } 28/ 60

29 Swing - Vererbung Wie profitieren wir nun von der Lösung mittels Vererbung? In der Praxis soll das Fenster Informationen darstellen und deren Verarbeitung vereinfachen. Durch das Anlegen einer eigenen Klasse können wir nun spezialisierte Methoden hinzufügen, die genau die gewünschten Informationen speichern, anzeigen und verändern, sowie auf Ereignisse im Programmablauf (Mausklicks etc.) reagieren. 29/ 60

30 Swing - Ein etwas größeres Beispiel Entwickeln wir nun ein kleines Programm, welches die wichtigsten Swing-Komponenten demonstriert und eine Interaktion mit einem Benutzer vorsieht: Einen Celsius-Fahrenheit-Umrechner. 30/ 60

31 Swing - Ein etwas größeres Beispiel Beginnen wir erneut mit einer von JFrame abgeleiteten Klasse. public class Umrechner extends JFrame JButton but; JMenuItem beenden, in f, in c; JTextField eingabe; JLabel lbl; boolean c to f = true; Umrechner() setdefaultcloseoperation(exit ON CLOSE); initialisiere(); // siehe naechste Folie setvisible(true); } 31/ 60

32 Swing - Ein etwas größeres Beispiel public class Umrechner extends JFrame... private void initialisiere() settitle("celsius - Fahrenheit - Umrechner"); BorderLayout bl = (BorderLayout) this.getlayout(); bl.sethgap(100); add textfield(); add label(); add button(); add menubar(); pack(); }... 32/ 60

33 Swing - Ein etwas größeres Beispiel public class Umrechner extends JFrame... private void add button() but = new JButton("Umwandeln"); but.setpreferredsize(new Dimension(100, 40)); getcontentpane().add(but, BorderLayout.PAGE END); } private void add textfield() eingabe = new JTextField(); eingabe.settext("bitte hier den Wert eintragen."); eingabe.setpreferredsize(new Dimension(300, 20)); getcontentpane().add(eingabe, BorderLayout.PAGE START); } 33/ 60

34 Swing - Ein etwas größeres Beispiel public class Umrechner extends JFrame... private void add label() lbl = new JLabel(); lbl.settext("ergebnis (Fahrenheit): "); getcontentpane().add(lbl, BorderLayout.CENTER); } }... 34/ 60

35 Swing - Ein etwas größeres Beispiel public class Umrechner extends JFrame... private void add menubar() JMenuBar bar = new JMenuBar(); JMenu men1 = new JMenu("Programm"); beenden = new JMenuItem("Beenden"); men1.add(beenden); JMenu men2 = new JMenu("Modus"); in f = new JMenuItem("Celsius -> Fahrenheit"); in c = new JMenuItem("Fahrenheit -> Celsius"); men2.add(in f); men2.add(in c); bar.add(men1); bar.add(men2); setjmenubar(bar); }... 35/ 60

36 Swing - Ein etwas größeres Beispiel Optisch soweit so gut, aber beim Klicken auf Buttons oder Menüeinträge geschieht noch nichts. Was wir hier benötigen sind sog. Listener für Events. Ein Mausklick auf einen Button Das Auswählen eines Menüeintrages Das Bewegen der Maus über einen bestimmten Bereich Das Drücken von Tasten oder Tastenkombinationen und vieles anderes mehr... sind so genannte ActionEvents, welche alle mittels Java-Hilfsmitteln wahrgenommen werden können. 36/ 60

37 Das Interface ActionListener Das Interface ActionListener erlaubt die Reaktion auf Objekte vom Typ ActionEvent, wie Sie z.b. durch einen Mausklick auf einen JButton ausgelöst werden. Folgende Schritte sind hierzu erforderlich: Die jeweilige Klasse, die reagieren soll, muss das Interface ActionListener implementieren folglich muss sie eine Methode public void actionperformed(actionevent e) implementieren Für das Objekt, auf welches reagiert werden soll (also z.b. einen Button), muss das jeweilige Listener-Objekt mittels addactionlistener(actionlistener l) registriert werden Hier kann nun ein Objekt der obigen implementierenden Klasse übergeben werden, da diese nun auch den Typ ActionListener annehmen kann. Importieren des Pakets: java.awt.event* 37/ 60

38 Das Interface ActionListener public class Umrechner extends JFrame implements ActionListener JButton but; JMenuItem beenden, in f, in c;... private void add menubar()... beenden = new JMenuItem("Beenden"); beenden.addactionlistener(this); men1.add(beenden); in f = new JMenuItem("Celsius -> Fahrenheit"); in c = new JMenuItem("Fahrenheit -> Celsius"); in f.addactionlistener(this); in c.addactionlistener(this); men2.add(in f); men2.add(in c);... } // Fortsetzung auf naechster Folie 38/ 60

39 Das Interface ActionListener... private void add button() but = new JButton("Umwandeln"); but.addactionlistener(this); getcontentpane().add(but, BorderLayout.PAGE END); } public void actionperformed(actionevent e) if (e.getsource().equals(beenden)) System.exit(0); else if (e.getsource().equals(in f))... } } 39/ 60

40 Das Interface ActionListener Zusammenfassung aller Eventbehandlungen in der Methode actionperformed(actionevent e) Unterscheidung zwischen den jeweiligen Quellen mittels der Methode getsource() aus der Klasse ActionEvent Weitere Methoden zur genaueren Unterscheidung des jeweils aufgetretenen Events 40/ 60

41 Swing - Ein etwas größeres Beispiel Eine sinnvolle Reaktion auf das Klicken auf den Beenden-Eintrag im JMenu wäre eine Sicherheitsabfrage, ob der Benutzer das Programm wirklich beenden möchte. Für diesen Zweck eignen sich insbesondere Dialogfenster und somit die Klasse JDialog. Dialogfenster können mittels setmodal(boolean) als modal konfiguriert werden, d.h. man kann dann erst wieder auf andere Fenster des Programms zugreifen, wenn das Dialogfenster geschlossen wurde. Auch der gesamte Kontrollfluss des Programms setzt erst nach Schließen des Fensters fort. 41/ 60

42 Swing - JDialog Man kann JDialog-Container ebenso mit Inhalt bzw. Swing-Komponenten füllen, wie dies für JFrame-Objekte möglich ist Anders als bei JFrame existiert nicht die Konstante EXIT ON CLOSE, sondern drei andere von denen DISPOSE ON CLOSE die meistverwendete ist. Ein Klick auf das Schließen-Symbol führt dann zum Aufruf der Methode dispose(), welche das Fenster, aber nicht das Programm, beendet. 42/ 60

43 Swing - JOptionPane In der Regel verwendet man die Dialogfenster aber für einfache Standardaufgaben, benötigt also eine Textnachricht (Label) und einige Buttons auf die man reagiert. Für solche Anwendungsfälle gibt es bereits vorgefertigte Bausteine in der JOptionPane-Klasse Aufruf einer statischen Methode die automatisch ein JDialog-Fenster erzeugt, d.h. keine manuelle Erzeugung eines solchen erforderlich. Beispiel: static int showconfirmdialog(component parentcomponent, Object message, String title, int optiontype) 43/ 60

44 Swing - JOptionPane Vorgefertigte Dialogfenster-Typen: MessageDialog InputDialog ConfirmDialog OptionDialog Diverse Optionen (etwa welche Buttons zur Verfügung stehen sollen) sowie Rückgabewerte für die jeweilige Antwort des Benutzers sind als Konstanten in der Klasse definiert. 44/ 60

45 Swing - JOptionPane Vorgefertigte Auswahlbutton-Konfigurationen: DEFAULT OPTION (nur OK) YES NO OPTION YES NO CANCEL OPTION OK CANCEL OPTION 45/ 60

46 Swing - JOptionPane Vorgefertigte Rückgabetypen (für Confirm-, Input- und OptionDialog): YES OPTION NO OPTION CANCEL OPTION OK OPTION CLOSED OPTION 46/ 60

47 Swing - JOptionPane - MessageDialog Vorgefertigte Messagetypen (für MessageDialog): ERROR MESSAGE INFORMATION MESSAGE WARNING MESSAGE QUESTION MESSAGE PLAIN MESSAGE Abbildung: Verwendete Icons je nach Messagetyp static void showmessagedialog(component parentcomponent, Object message, String title, int messagetype) 47/ 60

48 Swing - Ein etwas größeres Beispiel Lassen wir uns also nun bestätigen, dass der Benutzer das Programm wirklich beenden möchte. Dazu verwenden wir einen ConfirmDialog, mit Ja/Nein-Optionen und einer entsprechenden Textnachricht: public void actionperformed(actionevent e) if (e.getsource().equals(beenden)) int ergebnis = JOptionPane.showConfirmDialog(this, "Sind Sie sicher, dass Sie das Programm verlassen moechten?", "Beenden?", JOptionPane.YES NO OPTION); } } if (ergebnis == JOptionPane.YES OPTION) System.exit(0); 48/ 60

49 Swing - Ein etwas größeres Beispiel Verwenden wir nun noch einen MessageDialog im Zusammenspiel mit Exception-Handling, falls der Benutzer etwas anderes als eine Zahl eingibt und dann auf umwandeln klickt. public void actionperformed(actionevent e) if (e.getsource().equals(but)) try double val = Double.parseDouble(eingabe.getText()); } catch (NumberFormatException nfe) JOptionPane.showMessageDialog(this, "Bitte geben Sie einen gueltigen Zahlwert ein!", "Ungueltige Eingabe", JOptionPane.ERROR MESSAGE); } } } eingabe.settext("bitte hier den Wert eintragen."); 49/ 60

50 Swing - Ein etwas größeres Beispiel Nun wollen wir aber auch wirklich die Umrechnung durchführen, also erweitern wir den try-block noch ein wenig. public void actionperformed(actionevent e) if (e.getsource().equals(but)) try double val = Double.parseDouble(eingabe.getText()); if (c to f) double fahr = val ; lbl.settext("ergebnis: " + fahr + " Fahrenheit"); } else double cels = (val 32) / 1.8; lbl.settext("ergebnis: " + cels + " Celsius"); } } catch (NumberFormatException nfe)... } 50/ 60

51 Swing - Menüs reviewed In unserem Umrechner-Beispiel haben wir schon eine JMenuBar verwendet und festgestellt, dass es eine gewisse Hierarchie gibt: Jedes Hauptmenü in der Kopfzeile entspricht einem JMenu-Objekt, welches der JMenuBar des Fenster-Containers hinzugefügt werden kann. Jedes JMenu besteht nun aus mehreren JMenuItem-Objekten oder kann auch weitere Submenüs enthalten, wenn man ein JMenu-Objekt zu einem bestehenden JMenu hinzufügt. Die Reihenfolge des Hinzufügens mit add() legt die angezeigte Reihenfolge fest. Es gilt zu beachten: Jede Swing-Komponente kann zu einem Zeitpunkt immer nur in einem Container enthalten sein. Wird es in einen anderen Container eingefügt, wird es automatisch aus dem bisherigen Container entfernt. Kopieren geht also auf diese Weise nicht! 51/ 60

52 Swing - Menüs reviewed Abbildung: Eine JMenuBar mit 3 JMenus, davon eins als Submenü 52/ 60

53 Swing - Menüs reviewed Neben den gewöhnlichen JMenuItems gibt es noch weitere Typen von Menüelementen, nämlich: JCheckBoxMenuItem - Zur Auswahl mehrerer zusammengehöriger Einträge JRadioButtonMenuItem - Zur Auswahl genau eines mehrerer zusammengehöriger Einträge Beide gibt es auch als normale Button-Variante (JCheckBox und JRadioButton). 53/ 60

54 Swing - JCheckBoxMenuItem public class Menuframe extends JFrame JMenuBar bar; JMenu zwei; JCheckBoxMenuItem cb1, cb2, cb3; Menuframe() bar = new JMenuBar(); zwei = new JMenu("Zwei"); cb1 = new JCheckBoxMenuItem("Check1"); cb2 = new JCheckBoxMenuItem("Check2"); cb3 = new JCheckBoxMenuItem("Check3"); cb2.setselected(true); zwei.add(cb1); zwei.add(cb2); zwei.add(cb3); bar.add(zwei); setjmenubar(bar); pack(); setvisible(true); } 54/ 60

55 Swing - JCheckBoxMenuItem Abbildung: Das 2. Menü besitzt 3 Objekte vom Typ JCheckBoxMenuItem 55/ 60

56 Swing - JCheckBoxMenuItem Mittels setselected(boolean) oder durch Mausklicks kann das Häkchen gesetzt / entfernt werden. Mittels isselected(boolean) kann der Status im Programmcode überprüft werden. Die manuelle Verarbeitung der Events läuft etwas anders als bei normalen JMenuItems, nämlich mit Hilfe des Interfaces ItemListener und der zu implementierenden Methode public void itemstatechanged(itemevent e) 56/ 60

57 Swing - JRadioButtonMenuItem RadioButtons modellieren eine Gruppe von Auswahlmöglichkeiten, von denen nur eine ausgewählt sein kann. Man verwendet deshalb die Klasse ButtonGroup um eine solche Gruppierung herzustellen. Bezueglich des Setzens und Überpruefens von ausgewählten RadioButtons erfolgt mit denselben Methoden wie bei den JCheckBoxMenuItems. Die Eventbehandlung kann unter anderem wie gewohnt mit ActionListener realisiert werden. 57/ 60

58 Swing - JRadioButtonMenuItem public class Menuframe extends JFrame JMenuBar bar; JMenu drei; JRadioButtonMenuItem rb1, rb2, rb3, rb4; Menuframe() bar = new JMenuBar(); setjmenubar(bar); drei = new JMenu("Drei"); bar.add(drei); pack(); setvisible(true); rb1 = new JRadioButtonMenuItem("Radio1"); rb2 = new JRadioButtonMenuItem("Radio2"); rb3 = new JRadioButtonMenuItem("Radio3"); rb4 = new JRadioButtonMenuItem("Radio4"); ButtonGroup radios = new ButtonGroup(); radios.add(rb1); radios.add(rb2); radios.add(rb3); // Fortsetzung auf der naechsten Folie 58/ 60

59 Swing - JRadioButtonMenuItem drei.add(rb1); drei.add(rb2); drei.add(rb3); drei.addseparator(); drei.add(rb4); } } Abbildung: Das 3. Menü besitzt 4 Objekte vom Typ JRadioButtonMenuItem, wobei das letzte nicht mit den ersten 3 gruppiert ist 59/ 60

60 Tastenkürzel / Mnemonics Für Menüs und Menü-Items gibt es gewöhnlicherweise festlegte Tastenkürzel, die entweder durch einen unterstrichenen Buchstaben (ALT + Buchstabe) oder durch angegebene Tastenkombinationen hinter dem Menüeintrag. Java erlaubt das Festlegen solcher Tastenkürzel für alle vorgestellten Menükomponenten mittels der Methode setmnemonic(int). Wichtig hierzu ist die Klasse KeyEvent welche diverse int-werte für Tasten der Standardtastatur definiert. JMenuItem mi = new JMenuItem("Beispiel"); mi.setmnemonic(keyevent.vk B); 60/ 60

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

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

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

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

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

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

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

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2 Inhalt 1. Toolbar 1. JToolBar 2. Menü 1. JMenuBar 2. JMenu 3. JMenuItem 4. KeyStroke 5. Beispiel JMenuDemo1 6. JCheckBoxMenuItem 7. JRadioButtonMenuItem 8. Beispiel JMenuDemo2 9. JPopupMenu 10. Beispiel

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

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

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

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

Kap. 36. SWING: Menüs. und weitere SWING-Container. Seán Dempsey

Kap. 36. SWING: Menüs. und weitere SWING-Container. Seán Dempsey Kap. 36 SWING: Menüs und weitere SWING-Container Seán Dempsey Grundlagen von Menüs Hauptklasse: JMenuBar SWING- Entsprechung der AWT-Menüklasse MenuBar JMenuBar Menüleiste (JMenuBar) enthält Menüs (JMenu)

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

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

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

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

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

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

Packages. Man kann mehrere Klassen in eine package zusammenfassen.

Packages. Man kann mehrere Klassen in eine package zusammenfassen. Packages Man kann mehrere Klassen in eine package zusammenfassen. Diese müssen dann in einem Unterverzeichnis liegen, dessen Name der Packagename ist. Jede Datei der Package muss mit package ; beginnen,

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

Institut für Informatik

Institut für Informatik Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2009 Praktikum: Grundlagen der Programmierung Aufgabenblatt 11 Prof. R. Westermann, R. Fraedrich,

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

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

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

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

Vorlesung Programmieren. Bisher... Apple Lisa Office System 3.1. GUIs mit Java

Vorlesung Programmieren. Bisher... Apple Lisa Office System 3.1. GUIs mit Java Vorlesung Programmieren GUIs mit Java Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer Bisher... 2 Apple Lisa Office System 3.1 3 Graphical

Mehr

Ist eine Softwarekomponente, die dem Benutzer eines Computers die Interaktion mit der Maschine über grafische Symbole erlaubt

Ist eine Softwarekomponente, die dem Benutzer eines Computers die Interaktion mit der Maschine über grafische Symbole erlaubt GUI GUI = Graphical User Interface Ist eine Softwarekomponente, die dem Benutzer eines Computers die Interaktion mit der Maschine über grafische Symbole erlaubt Gute Übersicht über alle Funktionalitäten

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

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

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

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 5. Grafische Userinterfaces Christian Scheible Institut für Maschinelle Sprachverarbeitung 31. Juli 2009 Christian Scheible Java für Computerlinguisten 31. Juli 2009 1 / 33

Mehr

2A Basistechniken: Weitere Aufgaben

2A Basistechniken: Weitere Aufgaben 2A Basistechniken: Weitere Aufgaben 2A.3 Programmierung unter UNIX/Linux 1. Gegeben sind einige Ausschnitte von C-Programmen, die unter UNIX/Linux ausgeführt werden sollen. Beantworten Sie die zugehörigen

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

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

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

DHBW Karlsruhe, Vorlesung Programmieren, Events Musterlösung

DHBW Karlsruhe, Vorlesung Programmieren, Events Musterlösung DHBW Karlsruhe, Vorlesung Programmieren, Events Musterlösung Aufgabe Editor package BA.GUI.Swing; import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.logging.level; import java.util.logging.logger;

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

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

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

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

11. GUI-Programmierung mit SWING Überblick

11. GUI-Programmierung mit SWING Überblick 11. GUI-Programmierung mit SWING Überblick 11.1 Einführung 11.2 Einfache Swing Komponenten 11.3 Ereignisbehandlung und Adapterklassen 11.4 Zeichnen 11.5 Dialoge 11.6 Layout Manager 11.7 Komplexere Swing

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

Auszug aus der Klassenstruktur

Auszug aus der Klassenstruktur Swing javax.swing Auszug aus der Klassenstruktur JComponent AbstractButton JColorChooser JComboBox JInternalFrame JLabel JList JPanel JTable JTextComponent JTree JToolBar JToolTip JToggleButton JButton

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

Swing Grundlagen. Andre Eichmann

Swing Grundlagen. Andre Eichmann Swing Grundlagen Andre Eichmann Inhaltsverzeichnis Swing: Grundlagen - Einleitung - Ein einleitendes Beispiel Swing: Container und Menüs - Hauptfenster - Menüs Swing: Grundlagen Nachteile von AWT: - Schwierig,

Mehr

Javakurs für Fortgeschrittene

Javakurs für Fortgeschrittene Javakurs für Fortgeschrittene Einheit 02: Streams filtern, Swing Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Datenströme (Streams) Filtern FilterWriter, - Reader 2.

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

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Abschnitt 9: Schnittstellen: Interfaces

Abschnitt 9: Schnittstellen: Interfaces Abschnitt 9: Schnittstellen: Interfaces 9. Schnittstellen: Interfaces 9.1 Die Idee der Schnittstellen 9.2 Schnittstellen in Java 9.3 Marker-Interfaces 9.4 Interfaces und Hilfsklassen 9.5 Zusammenfassung

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

jcontentpane.setlayout(new BorderLayout()); // unten JPanel unten = new JPanel(); unten.setlayout( new BoxLayout(unten, BoxLayout.

jcontentpane.setlayout(new BorderLayout()); // unten JPanel unten = new JPanel(); unten.setlayout( new BoxLayout(unten, BoxLayout. 04.07.2011 Lösungsvorschlag 1. Aufgabe (12 + 12 Punkte): Screendesign : im Center: Label mit Bild 3P: Panel im West mit BoxLayout und TextField, Scrollpane und TextArea 4P: Panel im East mit FlowLayout

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

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

Programmieren mit Swing

Programmieren mit Swing Jürgen Schlierf Rudolf Weber Programmieren mit Swing Einfuhrung in die Programmierung mit den Swing-Klassen in Java 2 HANSER Carl Hanser Verlag München Wien Inhaltsverzeichnis 1 Einleitung 1 1.1 Von Java

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

PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker

PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker GUI-Programmierung mit Java PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker Steffen Helke Technische Universität Berlin Fachgebiet Softwaretechnik 15. April 2013 Übersicht GUI-Bibliotheken

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

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren GUIs mit Java Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer Bisher... 2 Apple Lisa Office System 3.1 3 Graphical

Mehr

JAVA Oberflächen mit Swing

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

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

1 Abstrakte Klassen, finale Klassen und Interfaces

1 Abstrakte Klassen, finale Klassen und Interfaces 1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

AWT. Einfache AWT-Anwendung. Swing. Vorlesung 1. Handout S. 2. import java. awt. * ;

AWT. Einfache AWT-Anwendung. Swing. Vorlesung 1. Handout S. 2. import java. awt. * ; Programmieren I Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 56 Grafische Benutzeroberflächen Container Menüs JComponent JLabel/JTextField Buttons Events und Listener 2 / 56 Einführung:

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

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

Mensch-Maschine-Interaktion

Mensch-Maschine-Interaktion Universität Dortmund, Fachbereich Informatik Peter Bollweg, OH16 E08, bollweg@ls7.cs.uni-dortmund.de, 6328 Constantin Timm, OH16 E06, timm@ls12.cs.uni-dortmund.de, 6144 Christian Asche Dortmund, 19. Oktober

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

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

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

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

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

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

Oliver Brinkmann Java Swing-Applikationen & JApplets (mit NetBeans)

Oliver Brinkmann Java Swing-Applikationen & JApplets (mit NetBeans) Oliver Brinkmann oliver.brinkmann@smail.fh-koeln.de Java Swing-Applikationen & JApplets (mit NetBeans) 1 Einführung in NetBeans Vorstellung: AWT-/Java-Swing-Paket JApplet Ereignisverarbeitung mit NetBeans

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

Ereignisbehandlung 21

Ereignisbehandlung 21 Ereignisbehandlung 21 3 Ereignisbehandlung Dieses Kapitel beschäftigt sich mit der Ereignisbehandlung, d.h. der Reaktion eines Programms auf Eingaben durch benutzende Personen. Nach einigen ersten Beispielen

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Programmieren II. Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15. Institut für Angewandte Informatik

Programmieren II. Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15.  Institut für Angewandte Informatik Programmieren II Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Events in Java Graphische Anwendungen werden über Events gesteuert.

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

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

Java Lab 2006/12/13 Client

Java Lab 2006/12/13 Client Java Lab 2006/12/13 Client Prof. Dr. Bernhard Humm Version: 1.0 Date: 2006/12/06 Darmstadt University of Applied Sciences Department of Computer Science Schöfferstr. 8b 64295 Darmstadt Germany 1 Einleitung

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

Heute. Grafische Benutzeroberflächen (Anonyme) innere Klassen Einfache Simulationen main / ausführbare jar-files IT I - VO 11 1

Heute. Grafische Benutzeroberflächen (Anonyme) innere Klassen Einfache Simulationen main / ausführbare jar-files IT I - VO 11 1 Heute Grafische Benutzeroberflächen (Anonyme) innere Klassen Einfache Simulationen main / ausführbare jar-files 17.01.2017 IT I - VO 11 1 Organisatorisches Noch zwei UE und eine Wissensüberprüfung Heute

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans Graphische Benutzungsoberflächen mit Java Einführung in NetBeans Graphische Benutzungsoberflächen! Interaktion mit dem Programm! Datenein- und ausgabe! Rückmeldungen über Verarbeitung der Daten! Visualisierung

Mehr

Kapitel 7: Ereignis-basierte Kommunikation

Kapitel 7: Ereignis-basierte Kommunikation Liste P: Programmieren mit Java WS 2001/2002, Prof. Dr. V. Turau, FH Wiesbaden Kapitel 7: Ereignis-basierte Kommunikation Folie 125 : Grafische Oberflächen Eine grafische Oberfläche besteht aus Komponenten.

Mehr

Probeklausur Informatik 2 Sommersemester 2013

Probeklausur Informatik 2 Sommersemester 2013 Probeklausur Informatik 2 Sommersemester 2013 1 Probeklausur Informatik 2 Sommersemester 2013 Name: Matrikelnummer: Hilfsmittel: Es sind alle schriftlichen Unterlagen, aber keine elektronischen Hilfsmittel

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 16. Juli 2005 Dr. Alfons Huhn, Timotheus Preisinger

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 16. Juli 2005 Dr. Alfons Huhn, Timotheus Preisinger Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 16. Juli 2005 Dr. Alfons Huhn, Timotheus Preisinger Informatik II Hinweise: Die Bearbeitungszeit beträgt 90 Minuten.

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

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

Ereignisse (Events) in Java

Ereignisse (Events) in Java Ereignisse (Events) in Java werden durch Aktionen an GUI-Komponenten ausgelöst Quelle: GUI-Komponente, die ein Ereignis als Instanz einer Event-Klasse erzeugt Beispiel: ein Button, der angeklickt wird

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

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

Programmieren II. Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15. Institut für Angewandte Informatik

Programmieren II. Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15.  Institut für Angewandte Informatik Programmieren II Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Event-Modelle in Java Graphische Anwendungen werden über Events

Mehr