GUI Design. Universität Paderborn Prof. Dr. Stefan Böttcher. Java Swing und AWT

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "GUI Design. Universität Paderborn Prof. Dr. Stefan Böttcher. Java Swing und AWT"

Transkript

1 GUI Design Java Swing und AWT 1

2 Gui Design Von Hand Mittels visuellem GUI Designer 2

3 Warum von Hand? Grundkonzepte erlernen Zum Verständnis des von GUI Designern generierten Codes unerlässlich GUI Designer können oft nicht alles z.b. bei Programmierung und Einsatz von eigenen GUI Komponenten Dynamische GUI Erstellung zur Laufzeit möglich z.b. indem Eingabemasken durch Datenbankinhalte bestimmt werden 3

4 Ereignisse Programmbedienung mittels Zeigen, Klicken, Draggen, Tippen, Einrahmen, Benutzer löst Ereignisse aus Ereignisse müssen abgefangen, erkannt, den richtigen Einheiten zugeordnet und von diesen interpretiert werden 4

5 Swing Nachfolger des awt (Abstract Window Toolkit) Wählbares Look & Feel (Motif, Windows, Java,...) Klassen entspr. Graphischen Komponenten Einbinden von Swing-Komponenten durch import javax.swing.*; Swing1.java class Swing1 { public static void main(string[] args) { JFrame frame = new JFrame("Das Programm"); JLabel label = new JLabel("Hello World!"); frame.getcontentpane().add(label); frame.setsize(300,100); frame.setvisible(true); 5

6 JFrame und JLabel import javax.swing.*; public class FirstSwing { public static void main(string[] args) { JFrame frame = new JFrame("Das Programm"); /* JFrame implementiert gerahmte Fenster Titel wird festgelegt beim Erzeugen (Konstruktor), später mit settitle( ) */ JLabel label = new JLabel("Hello World!"); /* JFrame implementiert Textanzeige Titel wird festgelegt beim Erzeugen (Konstruktor), später mit settext( ) */ frame.getcontentpane().add(label); /* JFrame ist eine eine Container-Klasse sie kann andere Swing-Komponenten aufnehmen und anzeigen indem man die Swing-Komponente dem ContentPane des Frames hinzufügt.*/ frame.setsize(300,100); //300x100 Pixel frame.setvisible(true); //Sichtbarkeit 6

7 Beenden? 7

8 Beenden! Frame lebt eigenständig weiter (Thread!) bis er beendet wird Swing2.java import javax.swing.*; public class FirstSwing { public static void main(string[] args) { JFrame frame = new JFrame("Das Programm"); JLabel label = new JLabel("Hello World!"); frame.getcontentpane().add(label); frame.setsize(300,100); frame.setvisible(true); frame.setdefaultcloseoperation(jframe.exit_on_close); 8

9 Komponenten Component: Objekt mit graphischer Repräsentation (AWT und Swing); verschickt und empfängt Events Container: Behälter für andere Components; kann LayoutManager benutzen JComponent: Basisklasse für alle Swing-Komponenten; kann Look and Feel setzen JFrame, JDialog, JApplet: top-level Swing-Container JPanel: eingebetteter Swing-Container JLabel, JTextField, JButton, : Swing-Komponenten 9

10 10 Labels erzeugen 10 Labels erzeugen, Kontrolle durch Textausgabe JFrame frame = new JFrame("Das Programm"); for (int i=0; i < 10; i++) { frame.getcontentpane().add(new JLabel("Label "+(i+1))); System.out.println("Label "+(i+1)+" erzeugt."); frame.setsize(300,100); frame.setvisible(true); frame.setdefaultcloseoperation(jframe.exit_on_close); Swing3x.java 10

11 Layouts Fehler : Standardmäßige Platzierung in der Mitte des contentpane Lösung: Umschalten auf FlowLayout : import java.awt.*; JFrame frame = new JFrame("Das Programm"); frame.getcontentpane().setlayout (new FlowLayout()); for (int i=0; i < 10; i++) { frame.getcontentpane().add(new JLabel("Label "+(i+1))); System.out.println("Label "+(i+1)+" erzeugt."); frame.setsize(300,100); frame.setvisible(true); frame.setdefaultcloseoperation(jframe.exit_on_close); Swing3.java 11

12 Layout Manager Verantwortlich für Dialogelementanordnung Jeder LayoutManager besitzt eigene Platzierungsstrategie Standard-LayoutManager: FlowLayout GridLayout BorderLayout CardLayout GridBagLayout Null-Layout: direkte Angabe der Pixel 12

13 FlowLayout Odnet Dialogelemente nebeneinander in einer Zeile an Passen keine weiteren Elemente in eine Zeile: Fahre mit der nächsten Zeile fort 13

14 GridLayout Ordnet Dialogelemente in rechteckigem n mal m Gitter an GridBagLayout ist komplexe Erweiterung des GridLayout GridLayout(int rows, int cols) GridLayout(int rows, int cols, int hgap, int vgap) hgap=horizontal gap between components vgap=vertical gap between components rows=number of rows in the grid cols=number of column in the grid 14

15 BoxLayout Elemente werden nebeneinander (X_AXIS) oder untereinander (Y_AXIS) angeordnet Größe der Einzelelemente wird respektiert frame.getcontentpane().setlayout( new BoxLayout(frame.getContentPane(), BoxLayout.X_AXIS)); Y_AXIS X_AXIS 15

16 Border Layout Verteilt Dialogelemente nach auf vier Randbereiche und Mittelbereich des Fensters: NORTH, SOUTH, WEST, EAST, CENTER import javax.swing.*; import java.awt.*;... JFrame frame = new JFrame("Das Programm"); frame.getcontentpane().setlayout (new BorderLayout()); frame.getcontentpane().add(new JLabel("Label Süd"), BorderLayout.SOUTH); frame.getcontentpane().add(new JLabel("Label Nord"), BorderLayout.NORTH); frame.getcontentpane().add(new JButton("Zentrum"), BorderLayout.CENTER); frame.getcontentpane().add(new JLabel("West"), BorderLayout.WEST); frame.getcontentpane().add(new JLabel("Ost"), BorderLayout.EAST); 16

17 Eigener Fenstertyp import java.awt.*; import javax.swing.*; public class Swing4 extends JFrame{ static int fensternummer = 0; Swing4(String s) { super(s); //JFrame Konstruktor fensternummer++; //zählt Fenster getcontentpane().setlayout(new FlowLayout()); getcontentpane().add(new JLabel("Label")); setsize(200,200); setlocation(50*fensternummer, 50*fensterNummer); setvisible(true); setdefaultcloseoperation(exit_on_close); //beendet Programm BEIDE Fenster public static void main(string[] args) { new Swing4("Fenster 1"); new Swing4("Fenster 2"); Swing4.java 17

18 Zeichnen Einbinden einer Zeichenfläche (JPanel) als eigener JPanel-Typ ("MyPanel") getcontentpane().add(new MyPanel()); JPanel besitzt paint-methode, automatischer Aufruf durch Window-Manager sobald nötig: Erster Aufbau des Panels "Aufdecken" eines Teils des Panels Scrollen Größer ziehen Vordefinierte paint-methode ist leer (zeichnet nichts), überschreiben: public void paint(graphics g) { g.drawline(0, 0, 200, 200); g.drawline(0, 200, 200, 0); 18

19 Paint Methode erstellen import java.awt.*;import javax.swing.*; public class MyFrame extends JFrame{ static int fensternummer = 0; MyFrame(String s){ super(s); getcontentpane().add(new MyPanel()); fensternummer++; setsize(300,300); setlocation(50*fensternummer, 50*fensterNummer); setdefaultcloseoperation(exit_on_close); setvisible(true); class MyPanel extends JPanel { public void paint(graphics g){ g.drawline(0, 0, 200, 200); g.drawline(0, 200, 200, 0); public static void main(string[] args) { new MyFrame("Fenster 1"); new MyFrame("Fenster 2"); Swing5.java 19

20 Diagonalen zeichnen "Feststehende" Linien unabhängig von Fenstergröße Variante: Zeichnen echter Diagonalen g.drawline (0, 0, getwidth(), getheight() ); g.drawline(getwidth(), 0, 0, getheight() ); Punkt links oben: (0,0) Punkt rechts unten: (getwidth(), getheight()) Dynamische Linien Neuzeichnen bei jeder Änderung der Fenstergröße Swing5a.java 20

21 Klassenhierarchie Verschiedene Ebenen der Vererbungshierarchie Object (lang) - die allgemeinste Java-Klasse Component (awt) - die eigentlichen GUI-Elemente (Widgets) Container (awt) - Komponenten, die wieder andere Komponenten aufnehmen können Window (awt) - Fenster ohne Rand Frame (awt) - Fenster mit Rand, Titel, Menüleiste, veränderbarer Größe JFrame (swing) - Erweiterung der (älteren) Frame-Klasse des awt, die Frames in die JFC-Umgebung einbindet 21

22 AWT GUI Komponenten 22

23 Swing Widgets 1 JScrollPane: JTextPane: JPasswordField: JEditorPane: 23

24 Swing Widgets 2 JScrollBar: JProgressBar: JSlider: JComboBox: 24

25 Swing Widgets 3 JList: JList mit Grafiken: JMenu: 25

26 Swing Widgets 4 JPopupMenu: JSeperator: JTree / JSplitPane: JTabbedPane: 26

27 JTabbedPanel Beispiel getcontentpane().setlayout (new BorderLayout()); JTabbedPane contentpanel= new JTabbedPane(); JPanel panel1 = new JPanel(); JPanel panel2 = new JPanel(); panel1.add(new JLabel("Ich bin Panel 1")); panel2.add(new JLabel("Ich bin Panel 2")); contentpanel.add("erstes Panel",panel1); contentpanel.add("zweites Panel",panel2); getcontentpane().add(contentpanel); 27

28 Beispiel: Zielscheibe (1) Grundidee: Zeichnen kleiner werdender konzentrischer, gefüllter Kreise mit abwechselnden Farben (schwarz, weiß) Zeichnen eines Kreises: Suchen in Java-Dokumentation Graphics-Objekte können gefüllte Kreise (Ellipsen) zeichnen! 28

29 Beispiel: Zielscheibe (2) Kreis um den Punkt (mx, my) mit Radius r filloval(mx-r, my-r, 2*r, 2*r); 29

30 Beispiel: Zielscheibe (3) Idee: Kreis erzeugen, dann drawme(..) aufrufen mit Füllfarbe und dem Graphics-Object, in das gezeichnet werden soll. class Circle { private int x, y; private double r; Graphik1.java Circle(int ix, int iy, double ir) { x = ix; y = iy; r = ir; System.out.println("Kreis um ("+x+", "+y+") mit Radius: "+r); void drawme (Graphics g, Color c) { g.setcolor(c); g.filloval((int)(x-r), (int)(y-r), (int)(2*r), (int)(2*r)); 30

31 Beispiel: Zielscheibe (4) Wiederverwendung der MyFrame-Klasse, sowie einer eigenen Komponente Zeichenfläche class MyFrame extends JFrame { MyFrame(String s) {... getcontentpane().add(new Zeichenfläche());... Graphik1.java class Zeichenfläche extends JPanel { public void paint(graphics g) { for (int i=10; i>0; i--) { new Circle(150, 150, i* ). drawme(g, ( i%2==0 )? Color.black : Color.white); if( i%2 == 0 ) //i modulo 2 { Color.black else { Color.white 31

32 Beispiel: Zielscheibe (5) Variante, die variable Ringanzahlen zeichnet: class MyFrame extends JFrame { Zeichenfläche z = new Zeichenfläche(); // Objektvariable! public void setanzahlringe(int ar) {z.setanzahlringe(ar); MyFrame() {... class Zeichenfläche extends JPanel { int anzahlringe = 20; Graphik2.java public void setanzahlringe(int ar) {anzahlringe=ar; public void paint(graphics g) { for (int i=anzahlringe; i>0; i--) { new Circle(150, 150, i*anzahlringe+5.0). drawme(g, (i%2==0)?color.black:color.white); 32

33 Beispiel: Zielscheibe (6) Eingabe der Ringzahlen im Hauptprogramm MyFrame f = new MyFrame("Fenster mit Zielscheibe"); while (true) { System.out.print("Wieviele Ringe?"); f.setanzahlringe(in.nextint()); Problem: Gezeichnet wird immer erst nach Verdecken, Verschieben, Scrollen, etc... Expliziter Aufruf von paint(...) nicht möglich Graphik2.java Lösung: repaint() erzwingt Aufruf von paint(...) zum nächstmöglichen Zeitpunkt! MyFrame f = new MyFrame("Fenster mit Zielscheibe"); while (true) { System.out.print("Wieviele Ringe?"); f.setanzahlringe(in.nextint()); f.repaint(); 33

34 Zusammenfassung Erste Swing Programme JFrame und JLabel Graphische Komponentenhierarchie Überblick über Layout Manager Zeichnen mittels paint() Methode Überblick über Swing Widgets Zielscheibenbeispiel Komplexere Zeichnungen Repaint() 34

35 Buttons (1) - Ziel Ziel: Steuerung durch Buttons Textausgabe mit Labeln Anzeigen von Buttons Programmieren der Reaktion auf Buttons Anordnung (Layout) dieser Elemente 35

36 Buttons (2) - Ablauf Ablauf 1. Erzeugen einer eigenen Fensterklasse, mit einer Zeichenfläche, diese wiederum mit geeigneter paint-methode 2. Erstellen des Dialogfensters 3. Anbindung der Aktionen an die Buttons 4. Beeinflussen des Layouts der Dialogbox Entwicklungsschritt 1: Erzeugen einer Fensterklasse und Zeichenfläche, deren paint()-methode die Zielscheibe zeichnet Zusätzlich: Objektvariablen in Zeichenfläche (Pos. und Anzahl Ringe) Dafür: Get- und Set-Methoden (in Zeichenfläche und MyFrame) Konsequenz: Aufrufe für setxpos( ), setypos( ) oder setanzahlringe( ) müssen die Zielscheibe neu zeichnen. 36

37 Buttons (3) - myframe Klasse myframe class MyFrame extends JFrame { StrgZielscheibe.java Zeichenfläche z = new Zeichenfläche(); //get- und set- Methoden public void setanzahlringe(int ar) {z.setanzahlringe(ar); repaint(); public int getanzahlringe() { return z.getanzahlringe(); public void setxpos(int x) { z.setxpos(x); repaint(); public void setypos(int y) { z.setypos(y); repaint(); public int getxpos() { return z.getxpos(); public int getypos() { return z.getypos(); MyFrame(String s) { //Konstruktor super(s); getcontentpane().add(z); setsize(300,300); setlocation(350, 250); setvisible(true); setdefaultcloseoperation(exit_on_close); 37

38 Buttons (4) - Zeichenfläche Klasse Zeichenfläche class Zeichenfläche extends JPanel { StrgZielscheibe.java //get- und set-methoden private int anzahlringe = 10; public void setanzahlringe(int a) { anzahlringe = Math.max(a, 0); public int getanzahlringe() { return anzahlringe; private int xpos = 150, ypos = 150; //Initiale Position public void setxpos(int x) { xpos = x; public void setypos(int y) { ypos = y; public int getxpos() { return xpos; public int getypos() { return ypos; public void paint(graphics g) { for (int i=anzahlringe; i>0; i--) new Circle(xPos, ypos, i*anzahlringe+5.0). drawme(g, (i%2==0)?color.black:color.white); 38

39 Buttons (5) - Dialogfenster Dialogfenster MyDialog wird von JDialog abgeleitet Buttons als Objektvariable Buttons und Label dem ContentPane des Dialogfensters hinzufügen class MyDialog extends JDialog { JButton blinks = new JButton("Links schieben"); JButton brechts = new JButton("Rechts schieben"); JButton bplus = new JButton("Mehr Ringe"); JButton bminus = new JButton("Weniger Ringe"); JButton bhoch = new JButton("Hoch schieben"); JButton brunter = new JButton("Runter schieben");... StrgZielscheibe.java Buttons bis hier noch unsichtbar Hinzufügen zu einem ContentPane für Sichtbarkeit Label (konstante Texte) direkt erzeugen und dem ContentPane hinzufügen, Referenzen darauf werden nicht gebraucht. 39

40 Buttons (6) - mydialog Konstrukor von mydialog MyDialog(String s) { getcontentpane().setlayout(new FlowLayout()); StrgZielscheibe.java getcontentpane().add( new Label("Verändern Sie die Anzahl der Ringe") ); getcontentpane().add(bplus); getcontentpane().add(bminus); getcontentpane().add( new Label("Verschieben Sie waagerecht")); getcontentpane().add(blinks); getcontentpane().add(brechts); getcontentpane().add( new Label("Verschieben Sie senkrecht")); getcontentpane().add(bhoch); getcontentpane().add(brunter); setsize(280,250); settitle(s); setlocation(10,10); setvisible(true); 40

41 Buttons (7) - Aktionen Anbindung der Aktionen an die Buttons StrgZielscheibe.java Prinzip: Erzeugen einer Klasse, die das ActionListener-Interface implementiert interface ActionListener { void actionperformed(actionevent e); Instanz der ActionListener Klasse wird Button zugeordnet, auf dessen Drücken reagiert werden soll Bei Buttonklick wird die actionperformed(...)-methode der zugeordneten ActionListener-Klasse aufgerufen Parameter ActionEvent e enthält zusätzliche Daten (z.b. welcher Button, welche Maustasten, etc.) Methode actionperformed( ) enthält Aktion, die der Button auslöst z.b. Aufruf von setanzahlringe(...) 41

42 Buttons (8) - Aktionen Button bplus soll Zahl der Ringe im Frame frame um 1 erhöhen: frame.setanzahlringe(frame.getanzahlringe()+1); Entspricht folgender actionperformed-methode void actionperformed (ActionEvent e) { frame.setanzahlringe(frame.getanzahlringe()+1); Muss in Klasse enthalten sein, die ActionListener-Interface implementiert class X... implements ActionListener {... Zuordnung von Objekt x der Klasse X zum Button bplus bplus.addactionlistener(x); Wird Button bplus gedrückt, wird die Methode actionperformed(..) des Objektes x der Klasse X ausgeführt. 42

43 Buttons (9) - Aktionen Erweiterung: Wird Instanz x vielen Buttons als ActionListener zugeordnet, muss erkennbar sein, welcher Button gedrückt wurde Idee: Setzen eines Strings ("ActionCommand") beim Button bplus.setactioncommand( PLUS ); Abfrage welcher Button gedrückt wurde in der Methode actionperformed(actionevent e) mit Methode e.getactioncommand() liefert String, der mit Button als ActionCommand verbunden wurde if (e.getactioncommand().equals( PLUS )) {... Aktion für den bplus-button... else if (e.getactioncommand().equals( MINUS ))... Implementierung von ActionListener durch das Dialogobjekt selbst class MyDialog extends JDialog implements ActionListener {.. 43

44 Buttons (10) - actionperformed actionperformed-methode von MyDialog public void actionperformed(actionevent e) { if (e.getactioncommand().equals("plus")) frame.setanzahlringe(frame.getanzahlringe()+1); else if (e.getactioncommand().equals("minus")) frame.setanzahlringe(frame.getanzahlringe()-1); else if (e.getactioncommand().equals("links")) frame.setxpos(frame.getxpos()-10); else if (e.getactioncommand().equals("rechts")) frame.setxpos(frame.getxpos()+10); else if (e.getactioncommand().equals("hoch")) frame.setypos(frame.getypos()-10); else if (e.getactioncommand().equals("runter")) frame.setypos(frame.getypos()+10); 44

45 Buttons (11) - Konstruktor von MyDialog Buttons müssen Objekt selbst als ActionListener zugewiesen werden: bplus.addactionlistener(this); bminus.addactionlistener(this);... Buttons müssen zusätzlich ihr ActionCommand zugewiesen werden: bplus.setactioncommand("plus"); bminus.setactioncommand("minus");... actionperformed()-methode muss MyFrame kennen, in das gezeichnet werden soll Konstruktor von MyDialog bekommt Referenz darauf als Parameter MyDialog speichert Referenz auf MyFrame als Objektvariable frame MyDialog(MyFrame f, String s){ frame = f;... 45

46 Buttons (12) Übersicht 1 class MyDialog extends JDialog implements ActionListener { JButton blinks = new JButton("Links schieben");... JButton brunter = new JButton("Runter schieben"); MyFrame frame; MyDialog(MyFrame f, String s) { getcontentpane().add( new Label("Verändern Sie die Anzahl der Ringe") ); getcontentpane().add(blinks);... getcontentpane().add(brunter); setsize(280,250); settitle(s); setvisible(true); blinks.addactionlistener(this); blinks.setactioncommand( LINKS");... brunter.addactionlistener(this); brunter.setactioncommand("runter"); frame = f; StrgZielscheibe.java 46

47 Buttons (13) Übersicht 2 public void actionperformed(actionevent e) { if (e.getactioncommand().equals("plus")) frame.setanzahlringe(frame.getanzahlringe()+1); else... if (e.getactioncommand().equals("runter")) frame.setypos(frame.getypos()+10); Unschön: Buttons fließen bei Größenänderungen herum Einfache Lösung: Größenänderungen verbieten! Im Konstruktor von MyDialog: setresizable(false); StrgZielscheibe.java 47

48 Buttons (14) LayoutManager Beispiel Bislang FlowLayout getcontentpane().setlayout(new FlowLayout()); Grid Layout setlayout(new GridLayout(3, 3)); aber: alle Felder sind gleich groß! 48

49 Buttons (14) Schachtelung von Layouts Container kann andere Elemente (u.a. auch Container) aufnehmen, einfachster Container: JPanel Je ein JPanel für Ringzahl, Schieben-X, Schieben-Y Pro JPanel jeweils ein Label und zwei Buttons getcontentpane().setlayout( new BoxLayout(getContentPane(), BoxLayout.Y_AXIS)); JPanel anzahlpanel = new JPanel(new FlowLayout()); anzahlpanel.add(new Label("Verändern Sie die Anzahl der Ringe")); anzahlpanel.add(bplus); anzahlpanel.add(bminus); getcontentpane().add(anzahlpanel); JPanel waagerechtpanel = new JPanel(new FlowLayout()); 49

50 Buttons (15) fertig! StrgZielscheibe2.java 50

51 Texteingabefelder Einzeilige Textfelder: JTextField mehrzeilige Textfelder: JTextArea Abfangen von Ereignissen mit ActionListener-Objekten Wiederholung: Anonyme Klassen Klassen, die keinen Namen haben Getrennt von der Klassendefinition können keine Objekte erzeugt werden Für Erzeugung genau eines Objektes dieser Klasse Technik: Kombination von new X(...) und Definition einer Unterklasse { 51

52 Wdh: Anonyme Klassen class X { public void m() { System.out.println("KLASSE X"); class Test { public static void main(string [] args) { X xobject = new X () { public void m() { System.out.println("Anonyme KLASSE"); ; xobject.m(); AnonymeKlasse.java Was wird ausgegeben? new X (): Erzeugen eines neuen Objektes vom Typ X Aber: Überschreibung der Definition von X durch: { public void m() { System.out.println("Anonyme KLASSE"); ; Es entsteht Objekt einer unbenannten anonymen Klasse 52

53 Programmiertechnik für Listener 1 Es existieren diverse Ereignistypen XXXEvent: FocusEvent KeyEvent MouseEvent WindowEvent,... Variante 1: Zu jedem Ereignistyp XXXEvent existiert ein Interface XXXListener das mögliche Ereignisse aufzählt Beispiel WindowEvent: public interface WindowListener extends EventListener { void windowactivated (WindowEvent); void WindowClosed (WindowEvent); void windowclosing (WindowEvent);... void windowopened (WindowEvent); 53

54 Programmiertechnik für Listener 2 Grundidee: 1. Bilden einer Klasseninstanz, die dieses Interface erfüllt 2. Verknüpfen dieser Klasseninstanz mit einer GUI-Komponente, die diesen Ereignistyp erzeugt 3. Die entsprechende Methode wird aufgerufen, sobald das zugehörige Ereignis auftritt Beispiel WindowListener: class MyWindowListener implements WindowListener { void windowactivated (WindowEvent) { /* Aktionen beim Aktivieren des Fensters */ void WindowClosed (WindowEvent) {... void windowclosing (WindowEvent) { System.exit(0);... void windowopened (WindowEvent) {... MyWindowListener mwl = new MyWindowListener(); f.addwindowlistener(mwl); // z.b. für "meinen" MyFrame f 54

55 Programmiertechnik für Listener 3 Variante 2: Zu jedem Ereignistyp XXXEvent gibt es eine abstrakte Klasse XXXAdapter mit leeren Methodenimplementierungen: public abstract class WindowAdapter implements WindowListener { public void windowactivated (WindowEvent){ public void WindowClosed (WindowEvent) {... public void windowopened (WindowEvent) { Reaktion auf nur wenige Methodenaufrufe des Interface: Deklaration einer Unterklasse von XXXAdapter und Überschreibung der benötigten Adapter-Methoden: f.addwindowlistener ( new WindowAdapter(){ public void windowclosing (WindowEvent e) {System.exit(0); ); 55

56 Texteingabe JTextField: einzeiliger, edierbarer Text Ereignisse: ActionEvent (wie bei Button) ausgelöst bei Return einige Methoden (aus der Oberklasse TextComponent): String gettext () Textinhalt liefern void settext (String v) Textinhalt setzen void seteditable (boolean e) Editierbarkeit festlegen boolean iseditable () Editierbarkeit überprüfen void select (int start, int end) Definition des selektierten Teilstring void selectall () Selektion des gesamten Textes Nach Return: Aufruf der Methode actionperformed() Darin: Zugriff auf die Ereignisquelle mit getsource() Herausholen des vom Benutzer eingegebenen Textes mit gettext() 56

57 Texteingabe - Listener Beispiel: ActionListener für JTextField: new ActionListener () { public void actionperformed (ActionEvent e) { str = (JTextField)(e.getSource()).getText(); Beispielprogramm: Benutzer tippt Namen ein Abschluss mit RETURN Ausgeben des Namens Beenden der Editierbarkeit RETURN 57

58 Texteingabe - Beispielanwendung JFrame mit JTextfield class Namenseingabe extends JFrame implements ActionListener { JTextField tnamenseingabe = new JTextField("(unbekannt)"); JLabel l1 = new JLabel ("Geben Sie Ihren Namen ein!"); JLabel l2 = new JLabel ("Ich weiß nicht wie Sie heißen."); public void actionperformed(actionevent e) { l2.settext("sie heißen also "+((JTextField)e.getSource()).getText() ); tnamenseingabe.seteditable(false); Namenseingabe() { getcontentpane().setlayout(new FlowLayout()); getcontentpane().add(l1); getcontentpane().add(tnamenseingabe); getcontentpane().add(l2); tnamenseingabe.addactionlistener(this); tnamenseingabe.selectall(); //Selektiert Eingabe am Anfang setsize(200, 110); setvisible(true); setdefaultcloseoperation(exit_on_close); TextFeld.java 58

59 Eingabe von Zahlen Eingelesenen Text in eine Zahl konvertieren, Ausnahme abfangen: try { n = new Integer(str).intValue(); try { catch (NumberFormatException e) {... n = Integer.parseInt (str); catch (NumberFormatException e) {... Programmvariante: Eingabe des Alters, Berechnung des Geburtsjahres, Abfangen von Eingabefehlern (keine Zahl, negatives Alter) 59

60 Beispiel: Zahleneingabe public void actionperformed(actionevent e) { int idiesjahr = 2008; String s = ((JTextField)e.getSource()).getText(); int gebjahr = 0; boolean fehler = false; try { gebjahr = idiesjahr - Integer.parseInt(s); catch(numberformatexception n) { fehler = true; if (fehler) l2.settext("sie sollten eine Zahl eingeben."); else if (gebjahr > idiesjahr) l2.settext("sie sollten eine nicht-negative Zahl eingeben."); else l2.settext("ihr Geburtsjahr ist "+gebjahr+"."); talterseingabe.selectall(); TextFeld2.java 60

61 Beispiel: Zahleneingabe Variante: aktuelles Jahr durch Systemzeit bestimmen new Date().toString() liefert Datum, Uhrzeit, Zeitzone. Wed Apr 3 12:34:00 CEST 2008 Feste Positionen der einzelnen Angaben! Jahreszahlermittelung durch (new Date().toString()).substring(25) Berechnung des aktuellen Jahres mit int idiesjahr = Integer.parseInt( (new Date().toString()).substring(25) ); 61

62 JTextArea Für mehrzeiligen Text Kein ActionListener, keine Funktion actionperformed Return in der JTextArea beendet nicht die Eingabe Fertig-Button außerhalb der JTextArea beendet Eingabe 62

63 Unterschiede JTextArea JTextField Angabe der Zeilen und Spalten: JTextArea tlebenseingabe = new JTextArea("(Eingabe \nlebenslauf)", 20, 20); Lesen des eingegebenen Textes mittels Button-Event lebenslauf = tlebenseingabe.gettext(); Löschen des eingegebenen Textes duch TextArea.java tlebenseingabe.settext(""); Setzen des Focus (Ziel für Tastatureingabe) auf das JTextField tlebenseingabe.requestfocusinwindow(); Definition des Textumbruchsverhaltens bei der Eingabe tlebenseingabe.setlinewrap(true); tlebenseingabe.setwrapstyleword(true); 63

64 Scrollbars für JTextArea Verwalten der Darstellung der JTextArea durch Container JScrollPane JScrollPane scp = new JScrollPane(tLebenseingabe); getcontentpane().add(scp); TextArea2.java 64

65 JComboBox Alternativen können der JComboBox als String-Array im Konstruktor übergeben werden: String [] name = { "A", "B", "C" ; JComboBox causwahl = new JComboBox(name); ComboBoxTest.java 65

66 JComboBox Events Auswahl-Komponenten (JComboBox) lösen ActionEvents aus sobald ein Element ausgewählt wird. Mittels actionperformed kann ein ActionListener darauf reagieren: causwahl.addactionlistener(this); public void actionperformed(actionevent e) { lergebnis.settext("sie nennen Ihr Baby also " + (String)cAuswahl.getSelectedItem()+"."); Zugriff auf das gewählte Item über den Index : causwahl.getselectedindex() Bei n Alternativen: Wert zwischen 0 und n-1 Ein ItemListener kann unmittelbar auf Selektionsänderung reagieren nicht erst nach endgültigem Auswählen 66

67 JComboBox Items Items können dynamisch hinzugefügt und entfernt werden: causwahl.additem("d"); causwahl.removeitem("a"); Auswahlbox kann "editierbar" sein Freie Eingabe von Texten, nicht nur Auswahl aus vordefinierten Items: causwahl.seteditable(true); Übernahme der Eingabe mit getselecteditem() getselecteditemindex() wird dann negativ! 67

68 Menüs JMenuBar Leiste am Fensterrand, welche die Menüs aufnimmt JMenu Einzelnes Menu unter einer Eintragung in der MenuBar JMenuItem Menüpunkt (MenuItem), der eine Aktion auslöst ActionListener MenuItems lösen bei Anwahl ActionEvent aus, Items können mit ActionCommand String identifiziert werden Zuweisung von Tastatur-ShortCuts möglich MenuItems können durch setenabled(false) deaktiviert ( ausgegraut ) werden, durch setenabled(true) aktiviert werden Menuvariante JPopupMenu erscheint über Objekten Hinzufügen von JMenu als JMenuItem führt zu geschachtelten Menüs 68

69 Menüs - Programmschema class MyFrame extends JFrame implements ActionListener { private JMenuBar menubar; private JMenu einmenu; private JMenuItem item1, item2, item3;... public MyFrame(...) { //Konstruktor menubar = new JMenuBar(); //Erzeugen der Menüleiste einmenu = new JMenu("Darstellung"); //Erzeugen eines Menüs item1 = new JMenuItem("Item1"); //Erzeugen eines Items Item1 item1.setactioncommand("item1-text"); //String für Action item1.addactionlistener(this); //Anbinden des ActionListeners... //analog mit item2, item3,... einmenu.add(item1); //Einfügen ins Menu einmenu.add(item2); einmenu.addseparator(); //Einfügen eines Trennstrichs... menubar.add(einmenu); // Einbinden des Menus in die Menubar setjmenubar(menubar); // Anbinden der Menüleiste in den Frame... //Ende des Konstruktors MenuTest.java 69

70 Menüs - Aktionen A verbinden mit B: A B public void actionperformed(actionevent e){ //Bei Menuitem Anwahl String c = e.getactioncommand(); //Holen des ActionCommand Strings if (c.equals("item1-text")) {... //Aktionen des Menuitems 1 else {... //Abfrage weiterer ActionCommand-Strings JFrame JMenuBar JMenuBar JFrame: setjmenubar(jmenubar) JMenu JMenu JMenuBar: JMenuBar.add(JMenu) JMenuItem JMenuItem JMenu: JMenu.add(JMenuItem) JMenuItem JMenuItem ActionCommand: JMenuItem.setActionCommand(ActionCommand)... JMenuItem ActionListener: JMenuItem.addActionListener(...); Jmenu... 70

71 Menüs - Beispielprogramm Datei Neu Öffnen Schliessen Ende Bearbeiten Hilfe Kopieren Ausschneiden Einfügen Suchen Über Index 71

72 Untermenüs Einbinden von Menus als Items führt zu Untermenüs, etwa... Hilfe Über Index Identifier Funktionen Konstanten JMenuItem iindex (Item Index) ersetzen durch JMenu mindex (Menü Index) dieses konventionell aufbauen und mit mhilfe.add(mindex) hinzufügen. MenuTest2.java 72

73 Zusammenfassung Dialogfenster Aktionen an Buttons anbinden ActionListener ActionCommand Programmiertechnik für Listener Anonyme Klassen Texteingabefelder ComboBoxen und deren Events Menüs und Untermenüs 73

Universität Paderborn Prof. Dr. Stefan Böttcher. Abschluss von Kapitel 2: Programmierung Grafischer Oberflächen mit der Swing-Bibliothek

Universität Paderborn Prof. Dr. Stefan Böttcher. Abschluss von Kapitel 2: Programmierung Grafischer Oberflächen mit der Swing-Bibliothek Abschluss von Kapitel 2: Programmierung Grafischer Oberflächen mit der Swing-Bibliothek 1 Ereignis-orientierte Programmierung Prinzipien Programm besteht aus einer Reihe von Dämonen (=Listener) Dämon (=Listener)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Softwareentwicklung 2

Softwareentwicklung 2 (1) Softwareentwicklung 2 Universität Paderborn Fachbereich Mathematik/Informatik (17) Sommersemester 2003 Prof. Dr. Stefan Böttcher mit Unterlagen erstellt von Prof. Dr. Gerd Szwillus (2) 0 Einleitung

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

Eingabe von Texten. Vorlesung Software-Entwicklung / Folie 101

Eingabe von Texten. Vorlesung Software-Entwicklung / Folie 101 Eingabe von Texten SWE-101 Komponente TextField: einzeiliger, edierbarer Text Ereignisse: ActionEvent (wie bei Button) ausgelöst bei der Eingabe von Return einige Methoden (aus der Oberklasse TextComponent):

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

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

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

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

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

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

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

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

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

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

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

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

7. Architektur interaktiver Systeme

7. Architektur interaktiver Systeme 7. Architektur interaktiver Systeme 7.1 Entkopplung durch Sichten 7.2 Ereignisgesteuerter Programmablauf 7.3 Benutzungsoberflächen 7. Architektur interaktiver Systeme 7.2 Ereignisgesteuerter Programmablauf

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

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

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

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

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

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

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

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

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

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

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

Anwendungen mit GUI. INE2, Mittwoch / TH561 M. Thaler, Office TG208.

Anwendungen mit GUI. INE2, Mittwoch / TH561 M. Thaler, Office TG208. Anwendungen mit GUI INE2, Mittwoch 8.00-9.35/ TH561 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was gehtes? Anwendungen meist Graphische Schnittstellen wie solche Schnittstellen

Mehr

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Graphische Benutzerschnittstellen I GUI erzeugen Seite 1 GUI GUI: Graphical User Interface Graphische Benutzeroberfläche Seite 2

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

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

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

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

14 Swing-Komponenten. 2009 2014, Prof. Dr. D. Ratz

14 Swing-Komponenten. 2009 2014, Prof. Dr. D. Ratz 14 Swing-Komponenten 2009 2014, Prof. Dr. D. Ratz 14.1 Typische Komponenten für Benutzerschnittstellen Das Abstract Window Toolkit (AWT) liefert bereits viele Möglichkeiten für Komponenten für graphische

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

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

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 07. Java: GUI und Ereignisbehandlung Teil

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

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

Inhaltsverzeichnis Einleitung...1 Die Begleit-CD zu diesem Buch...5 Erweiterungen für Java Ereignisse...15

Inhaltsverzeichnis Einleitung...1 Die Begleit-CD zu diesem Buch...5 Erweiterungen für Java Ereignisse...15 Inhaltsverzeichnis 1 Einleitung...1 1.1 Von Java bis Swing?...1 1.2 Wer sind Sie?...1 1.3 Was dieses Buch nicht ist...2 1.4 Die Gliederung dieses Buches...2 1.5 Konventionen...2 1.6 Zeit, anzufangen...4

Mehr

7. Architektur interaktiver Systeme

7. Architektur interaktiver Systeme 7. Architektur interaktiver Systeme 7.1 Entkopplung durch Sichten 7.2 Ereignisgesteuerter Programmablauf 7.3 Benutzungsoberflächen (Fortsetzung) Layout-Manager Definition Ein Layout-Manager ist ein Objekt,

Mehr

Lösungen. 1. Aufgabe. // ActionExample.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.

Lösungen. 1. Aufgabe. // ActionExample.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event. Lösungen 1. Aufgabe // ActionExample.java import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class ActionExample extends JFrame int counter = 1; JLabel counterlabel; public

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

5. Java Swing Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006

5. Java Swing Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 5. Java Swing Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung II Einordnung

Mehr

Vorlesung 13. Sitzung Grundlegende Programmiertechniken

Vorlesung 13. Sitzung Grundlegende Programmiertechniken Vorlesung 13. Sitzung Grundlegende Programmiertechniken Wintersemester 2007/2008 Dozent Nino Simunic M.A. Computerlinguistik, Campus DU Grundlegende Programmiertechniken, WS 2007/2008 GUI-Entwicklung mit

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

GUI. Programmiermethodik. Eva Zangerle Universität Innsbruck

GUI. Programmiermethodik. Eva Zangerle Universität Innsbruck GUI Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

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

Programmieren II. Die Klasse JList. Vorlesung 5. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester JList.

Programmieren II. Die Klasse JList. Vorlesung 5. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester JList. Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 37 JList JTable Layout-Manager GridBagLayout 2 / 37 Die Klasse JList Die Klasse JList stellt einen Container für Auswahllisten

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

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

Programmierkurs. 11. Vorlesung. Sven Mallach. 13. Januar 2010. Institut für Informatik - Lehrstuhl Prof. Dr. M. Jünger 1/ 60 Programmierkurs 11. Vorlesung Sven Mallach Institut für Informatik - Lehrstuhl Prof. Dr. M. Jünger 13. Januar 2010 1/ 60 Klausuren 1. Termin: Di. 23.02.2010 2. Termin: Do. 18.03.2010 Uhrzeit: In beiden

Mehr

Was passiert, wenn Button "Ok?" mit Maus angeklickt?

Was passiert, wenn Button Ok? mit Maus angeklickt? Ein Beispiel-Frame Was passiert, wenn Button "Ok?" mit Maus angeklickt? gar nichts!!! FH AACHEN UNIVERSITY OF APPLIED SCIENCES OOS Prof. Dr. H. Faßbender Ereignisverarbeitung 27. April 2016 1 Implementierung

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

import java.awt.*; import java.awt.event.*; import javax.swing.*;

import java.awt.*; import java.awt.event.*; import javax.swing.*; Swing Workshop Dieser Workshop enthält grundsätzliche Informationen über Swing und Java und regt mit einigen Beispielen und Übungen zum weiteren Erkunden dieses Themengebietes an. Kapitel 1: Das erste

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

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

2. Programmierung von Benutzungsschnittstellen

2. Programmierung von Benutzungsschnittstellen 2. Programmierung von Benutzungsschnittstellen 2.1 Modell-Sicht-Paradigma 2.2 Bausteine für grafische Oberflächen 2.3 Ereignisgesteuerte Programme 1 Benutzungsoberflächen Technische Realisierungen: Stapelverarbeitungssprache

Mehr

Kurs OPR. Objektorientierte Programmierung

Kurs OPR. Objektorientierte Programmierung Kurs OPR Objektorientierte Programmierung Lektion: 008-GUI-Komp., eigenst. Programme Zürcher Hochschule für Angewandte Wissenschaften Mitglied der Fachhochschule Zürich Version 1.4 Inhaltsverzeichnis 1

Mehr

Drucken soll nur das Panel, nicht der ganze Rahmen gedruckt werden.

Drucken soll nur das Panel, nicht der ganze Rahmen gedruckt werden. Kapitel 1 Drucken von Swing-Komponenten. Wir wollen eine einfache Methode zum Drucken einer Swing-Komponente vorstellen und daran den Mechanismus der Druckereinbindung in JAVA studieren. Anschließen wird

Mehr

Ausgewählte Implementierungsprobleme

Ausgewählte Implementierungsprobleme Ausgewählte Implementierungsprobleme Rebecca Tiarks 15. Januar 2009 1 / 56 Inhaltsverzeichnis 1 2 / 56 AWT grafische Benutzeroberfläche (GUI) erste API von Sun AWT bietet GUI-Komponenten, Operationen zum

Mehr

Softwarepraktikum: Enigma

Softwarepraktikum: Enigma Softwarepraktikum: Enigma Martin Steffen Sommersemester 2003 Abschnitt I GUI Inhalt: Übersicht gui-pakete in Java: AWT, Swing Komponenten und Behälter Layout Ereignisse und Ereignisbehandlung Ereignismodell

Mehr

Schritt 1 - Ein Spielfeld

Schritt 1 - Ein Spielfeld Schritt 1 - Ein Spielfeld Wir beginnen mit zwei einfachen Java-Klassen, dem eigentlichen Spielfeld und dem Applet zum Anzeigen des Spielfeldes (und später der Buttons und der anderen Bedienelemente). Hier

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

Einige vorgefertigte Layout-Manager:

Einige vorgefertigte Layout-Manager: Einige vorgefertigte Layout-Manager: FlowLayout LayoutManager GridLayout BorderLayout LayoutManager2 CardLayout GridBagLayout GridBagConstraints 945 FlowLayout: Das Default-Layout der Klasse Panel. Komponenten

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: m.dziadek@gmx.de Inhaltsverzeichnis Inhaltsverzeichnis... 2 1. Einleitung...

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

Algorithmen, Datenstrukturen und Programmieren I WS 2001/2002

Algorithmen, Datenstrukturen und Programmieren I WS 2001/2002 1. Welches Ergebnis liefern die folgenden Operationen? Geben Sie zunächst einen educated guess an und überprüfen Sie diesen dann mittels einer selbstgeschriebenen Java-Applikation. a) x = 7 + 3 * 6 / 2-1;

Mehr

!!!" # $ # %&' $ ' ( )

!!! # $ # %&' $ ' ( ) !!!" #$ #%&'$' () *)+)'& *',- import javax.swing.* ) import javax.swing.*; public class SimpleFrameTest { public static void main(string[] args) { SimpleFrame frame = new SimpleFrame(); )) )-)- ).'&-)

Mehr

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

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2 Inhalt 1. Drag and Drop (DnD) 1. Transfer-Mechanismus 2. Transfer-Support 3. Cursor-Symbole 4. Einführendes Beispiel 5. Komponenten DnD-fähig machen 6. Standard DnD-Verhalten ändern Folie 1 Lernziele Sie

Mehr

Rückblick. Geltungsbereich von lokalen Variablen? Wo leben lokale Variablen? Geltungsbereich von Instanzvariablen? Wo leben Instanzvariablen?

Rückblick. Geltungsbereich von lokalen Variablen? Wo leben lokale Variablen? Geltungsbereich von Instanzvariablen? Wo leben Instanzvariablen? Rückblick Geltungsbereich von lokalen Variablen? Wo leben lokale Variablen? Geltungsbereich von Instanzvariablen? Wo leben Instanzvariablen? Was sind statische Methoden? Was sind statische Variablen? Was

Mehr