Graphische Nutzerschnittstellen

Größe: px
Ab Seite anzeigen:

Download "Graphische Nutzerschnittstellen"

Transkript

1 Graphische Nutzerschnittstellen Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik Raum Tel / Inhalt 1. Einführung, Literatur, Begriffe 2. Architektur eines Fenstersystems 3. Java-Dialog 4. Grafik in Java 5. Benutzeroberfläche (Dialog, SDI, MDI, SDI, RDI) 6. Design Pattern (Framework, Mehrschicht Anwendung) 7. Testroutinen (JUnit) 8. JDBC (Datenbankanbindung) 9. Threads 2 1

2 Benutzeroberflächen: Die Java Klassenbibliothek Regelmäßige Erweiterung und Veränderung mit den Versionen des JDK Teile der Bibliothek werden in der Dokumentation zum JDK als packages bezeichnet Objektorientierte Vorteile der Bibliothek Verfeinerung der allgemeine Klassen durch Vererbung der Methoden innerhalb eines package an spezielle Klassen Bereitstellung generischer Datenstrukturen (Templates) 3 Die Java Klassenbibliothek Beispiele java.lang: Sprachunterstützung (Threads, String) java.util: Hilfeklassen, allgemeine Datenstrukturen (Stack, Vector) java.io: Ein/Ausgabe-Klassen (Dateien, Streams) java.nio: Ein/Ausgabe-Klassen (Neue Variante) java.nio2: Ein/Ausgabe-Klassen (JDK 7) java.net: Sockets, URL java.applets, java.awt: Java Windows Toolkit Erweiterungen (Auswahl) java.swing: AWT mit anpassbaren Look & Feel ) speech: Sprachein- und Sprachausgabe JDBC: Datenbankanbindung Beans: wiederverwendbare Komponenten JMF: Java Media Foundation 4 2

3 Java: Exception public class exception1 { public static void main(string args[]) { int j,k; j=0; k=3 / j; // main 5 Java: Exception D:\HS-Harz\GUI>java exception1 Exception in thread "main" java.lang.arithmeticexception: / by zero at exception1.main(exception1.java:8) D:\HS-Harz\GUI> 6 3

4 Java: Exception Ein perfektes Programm mit perfekten Anwendern benötigt keine Fehlerbehandlung. Alle Daten werden korrekt eingegeben, jede Datei existiert und alle Module sind richtig programmiert. Reale Welt: Beim Absturz eines Programms entstehen: Datenverluste Unstimmigkeiten in einer Datenbank Neueingaben Ärger des Anwenders Abhilfe: Benachrichtigung an den Anwender Sicherung der Daten Sicheres Beenden des Programms 7 Java: Exception Definition: public class Exception extends Throwable The class Exception and its subclasses are a form of Throwable that indicates conditions that a reasonable application might want to catch. Since: JDK1.0 Java benutzt für die Fehlerbehandlung ein error trapping bzw. exception handling (Delphi, C++). Diese Fehlerbehandlung ist weit flexibler als die VB Basicvariante On error goto. 8 4

5 Java: Exception Ursachen für eine Exception: Fehlerhafte Eingabe (Numerische Eingabe, URL) Gerätfehler (Drucker, Webseite, Diskette) Physikalische Grenzen (mangelnder Speicher, Freier Speicherplatz) Programmierfehler (Arrayindex, Stackfehler, Overflow, Underflow) Exception: Bei einer Exception wird die aktuelle Prozedur sofort verlassen es wird ein Exceptionobjekt erzeugt es wird kein Returncode erzeugt der Aufrufcode wird nicht weiterabgearbeitet es beginnt die Suche nach einem exception handler, der für diese Exception zuständig ist 9 Standard Runtime Exceptions: Java: Exception-Arten ArithmeticException: An exceptional arithmetic situation has arisen, such as an integer division ( ) operation with a zero divisor. ArrayStoreException: An attempt has been made to store into an array component a value whose class is not assignment compatible with the component type of the array ( 10.10, ). ClassCastException: An attempt has been made to cast ( 5.4, 15.15) a reference to an object to an inappropriate type. IllegalArgumentException: A method was passed an invalid or inappropriate argument or invoked on an inappropriate object. Subclasses of this class include: IllegalThreadStateException: A thread was not in an appropriate state for a requested operation. NumberFormatException: An attempt was made to convert a String to a value of a numeric type, but the String did not have an appropriate format. IllegalMonitorStateException: A thread has attempted to wait on ( , , ) or notify ( , ) other threads waiting on an object that it has not locked. IndexOutOfBoundsException: Either an index of some sort (such as to an array, a string, or a vector) or a subrange, specified either by two index values or by an index and a length, was out of range. 10 5

6 Java: Exception Package java: java.io.ioexception: java.io.eofexception: java.io.filenotfoundexception: java.io.interruptedioexception: A requested I/O operation could not be completed normally. Subclasses of this class include: End of file has been encountered before normal completion of an input operation. A file with the name specified by a file name string or path was not found within the file system. The current thread was waiting for completion of an I/O operation, and another thread has interrupted the current thread, using the interrupt method of class Thread ( ). java.io.utfdataformatexception: A requested conversion of a string to or from Java modified UTF-8 format could not be completed ( , ) because the string was too long or because the purported UTF-8 data was not the result of encoding a Unicode string into UTF Java: Exception-Arten Standard Runtime Exceptions: NullPointerException: An attempt was made to use a null reference in a case where an object reference was required. SecurityException: A security violation was detected ( 20.17). 12 6

7 Java: Exception (Anfangsbeispiel) import java.io.*; public class exception1 { public static void main(string argv[]) { int j,k; j=0; k=3 / j; // main 13 Java: Exception (interne Abfrage) import java.io.*; public class exception2 { public static void main(string argv[]) { int j,k; j=0; try { // Excecption Block k=3 / j; j=k*k; save (j) // speichern in Datei catch (ArithmeticException f) { System.err.println(" ArithmeticException : " + f); // main Kein Absturz für den Anwender exception2 14 7

8 Java: Exception (externe Abfrage) import java.io.*; public class exception3 { public static double loaddouble(string sfilename) { // hier könnte ein Fehler auftreten return 1.0; // Platzhalter public static void main(string argv[]) { double d; d = loaddouble("c:\\1.dat"); // main exception3 15 Java: Exception (externe Abfrage) import java.io.*; public class exception4 { public static double loaddouble(string sfilename) throws IOException { return 1.0; public static void main(string argv[]) { double d; d = loaddouble("c:\\1.dat"); // Zwang zur Benutzung einer Exception // main Compilermeldung: Nicht bekannte java.io.ioexception; muss abgefangen werden oder zum Auslösen deklariert werden Exception

9 Java: Exception import java.io.*; public class exception4 { public static double loaddouble(string sfilename) throws IOException { return 1.23; public static void main(string argv[]) { double d; try { d = loaddouble("c:\\1.dat"); catch (IOException f) { System.err.println("IOException: " + f); // main // class Exception4 17 Java: Throw Exception public static double loaddouble(string sfilename) throws IOException { int i=1; if (i==1) throw new EOFException("Modul loaddouble (Header hat falsche Version)"); return 1.234; // loaddouble public static void main(string argv[]) { double d; try { d = loaddouble("c:\\1.dat"); catch (EOFException f) { System.err.println("main: " + f); catch (IOException f) { System.err.println("main: " + f); // main Exception5 18 9

10 Java: Throw Exception Ergebnis: D:\HS-Harz\GUI>java exception5 main: java.io.eofexception: Modul loaddouble (Header) D:\HS-Harz\GUI> 19 Java: Eigene Exceptionklasse Exception sind in eine Klassenhierarchie eingebettet. Sie dienen unterschiedlicher Aufgaben. Wünschenswert ist es manchmal, eine eigene Klasse für die Abarbeitung zu definieren. Eigene Hierarchie Debug Informationen 20 10

11 Java: Eigene Exceptionklasse Definition: class HeaderFalseVersion extends IOException { int version; public HeaderFalseVersion() { super(); public HeaderFalseVersion(String error) { super(error); public HeaderFalseVersion(String error, int version) { super(error); this.version = version; // HeaderFalseVersion 21 Beim Auslösen einer Exception wird sofort das jeweilige Modul sofort verlassen. Problem: Java: finally Klausel Lokale Resourcen werden nicht sauber entfernt: Eine Datei ist geöffnet, wird nicht geschlossen Abhilfe: finally Klausel 22 11

12 Java: finally Klausel try { Resource resource =...; resource.methodthrowsexception(); catch (Exception e) {... finally { resource.close(); 23 FileInputStream fin=null; DataInputStream din=null; byte b; try { fin = new FileInputStream( sfilename ); din = new DataInputStream(fin); while ( din.available()>0 ) { b = din.readbyte(); System.out.println((char) (b) ); catch ( FileNotFoundException e ) { System.err.println( "Die Datei ist nicht vorhanden!" ); catch ( IOException e ) { System.err.println( "Schreib-/Leseprobleme!" ); finally { if ( fin!= null ) try { fin.close(); catch ( IOException e ) { e.printstacktrace(); 24 12

13 Java: finally Klausel void creategraphic(string sfilename) { Graphics g = image.getgraphics(sfilename); try { code mit der Möglichkeit einer Exception g.dispose(); // Speicher freigeben catch(ioexception e) { done = false; 3 Varianten 25 Java: finally Klausel void creategraphic(string sfilename) { Graphics g = image.getgraphics(sfilename); try { code mit der Möglichkeit einer Exception catch(ioexception e) { done = false; finally { g.dispose(); // Speicher freigeben 26 13

14 Java: finally Klausel void creategrafik(string sfilename) { Graphics g = image.getgraphics(sfilename); try { code mit der Möglichkeit einer Exception catch(ioexception e) { done = false; catch(exception e) { done = true; finally { g.dispose(); // Speicher freigeben 3 Varianten 27 Java: Anwendung von Exceptions Vier Regeln: 1) Exception-Handling ersetzt nicht das Testen. Das Auslösen einer Exception kostet sehr viel Zeit. 2) Splitten von Exceptions Wenn überhaupt nur eine try Klammer mit mehreren catch- Klauseln. 3) Kein Verstecken von Exceptions Eine catch-anweisung ohne eine Meldung ist nicht sinnvoll. Tritt der Fehler auf, erhält der Anwender keine Mitteilung. 4) Also weiterreichen von Exceptions Das Verstecken einer Exception liefert einfacheren Code. Der Aufrufer sollte aber von der Exception erfahren. Man ist kein Hellseher beim Programmieren

15 Sehr seltene Exception 29 Datenverarbeitung in Java atiasti Es steht eine Vielzahl von Klassen/Modulen zur Verfügung (58): Eingabeklassen: InputStream ByteArray InputStream File InputStream Filter InputStream Piped InputStream Sequence InputStream StringBuffer InputStream Buffered InputStream Checked InputStream Digest InputStream Inflater InputStream LineNumber InputStream Pushback InputStream gepuffert Filter für Dateinamen GZIP InputStream für Zeichen, Zeichenketten, Objekte, Token mit Pipe-Verfahren ZIP InputStream 30 15

16 Ausgabe in eine Datei OutputStream ByteArray OutputStream File OutputStream Filter OutputStream Piped OutputStream Checked OutputStream Digest OutputStream Deflater OutputStream PrintStream Data OutputStream Buffered OutputStream GZIP OutputStream ZIP OutputStream gepuffert Filter für Dateinamen für Zeichen, Zeichenketten, Objekte, Token mit Pipe-Verfahren 31 Java: Ausgabe in eine Datei Basis aller Ausgaben ist die Klasse Stream Weitere Spezifikation durch z.b: InputStream / OutputStream FileInputStream / FileOutputStream Weitere Spezifikation durch: BufferedOutputStream PrintStream DataOutStream ZIPOutStream CheckedOutStream PipeOutStream 32 16

17 Java: Ausgabe in eine Datei import java.io.*; public class print1 { public static void main(string argv[]) { try { FileOutputStream Fout = new FileOutputStream("1.dat"); // Druckausgabe in eine ASCII-Datei PrintStream p = new PrintStream(Fout); p.print("hallo"); p.println("hallo"); p.println("hallo Studenten"); p.close(); catch (IOException ee) { System.err.println("IOException: " + ee); // main 33 Java: Ausgabe in eine Datei (Double, int) import java.io.*; public class print2 { // Ausgabe ohne Buffer, Ausgabe von Double Zahlen, binäres Format public static void main(string argv[]) { double d; try { FileOutputStream Fout = new FileOutputStream("1.bin"); DataOutputStream Dout = new DataOutputStream(Fout); d = ; Dout.writeDouble(d); d = ; Dout.writeDouble(d); Dout.writeInt(-1234); Dout.close(); catch (IOException e) { System.err.println("IOException: " + e); // main 34 17

18 Java: Methoden der Klasse DataOutputStream DataOutputStream: writeboolean writebyte (Schreiben einer 8-Bit Vorzeichenzahl) writechar (Schreiben einer 16-Bit vorzeichenlosen Zahl) writedouble (Schreiben einer Double-Zahl) writefloat (Schreiben einer Single-Zahl) writeint (Schreiben einer 32-Bit Vorzeichenzahl) writelong (Schreiben einer 64-Bit Vorzeichenzahl) writeshort (Schreiben einer 16-Bit Vorzeichenzahl) writeutf ( Schreiben eines Strings) writechars 35 Int-Datentypen in Java byte from -128 to 127 short from to int from to long from to char from '\u0000' to '\uffff, =>, from 0 to

19 Die UML-Diagramme zeigen, dass jeder Filter zum einen selbst ein Stream ist und zum anderen einen Stream verwaltet. Damit nimmt er Daten entgegen und leitet sie gleich weiter. Das ist ein bekanntes Design-Pattern und nennt sich Dekorator. 37 Java: Lesen einer ASCII-Datei (neu) public static void main(string argv[]) throws IOException { FileInputStream fin; InputStreamReader iin; LineNumberReader din; // aktuelle Version zum Einlesen einer ASCII-Datei String sline; try { fin = new FileInputStream("read3.java"); iin = new InputStreamReader(fin); din = new LineNumberReader(iin); while ( din.ready() ) { sline = din.readline(); System.out.println(sLine); catch (IOException e) { System.err.println("IOException: " + e); read3.java 38 19

20 Java: Lesen einer Binärdatei: read4 import java.io.*; public static void main(string argv[]) throws IOException { FileInputStream fin; DataInputStream din; char ch; byte b; try { fin = new FileInputStream("1.dat"); din = new DataInputStream(fin); while (true) { // eventuell Absturz mit Exception b =din.readbyte(); ch = (char) (b); System.out.println(ch); catch (IOException e) { System.err.println("IOException: " + e); pause(); 39 import java.io.*; public class read4 { Java: Lesen einer Binärdatei: read4 private static void read(string sfilename){ FileInputStream fin; DataInputStream din; char ch; byte b; try { fin = new FileInputStream( sfilename ); din = new DataInputStream(fin); while ( din.available()>0 ) { // ohne Fehler b = din.readbyte(); ch = (char) (b); System.out.println(ch); catch (IOException e) { System.err.println("IOException: " + e); 40 20

21 Java: Lesen einer Binärdatei import java.io.*; // Einlesen aus einer binären Datei, in der int-werte gespeichert wurden public class read4 { private static void read(string sfilename){ int i; try { FileInputStream Fin = new FileInputStream(sFilename); DataInputStream DataIn = new DataInputStream(Fin); i = DataIn.readInt(); System.out.println(i); i = DataIn.readInt(); System.out.println(i); i = DataIn.readInt(); System.out.println(i); DataIn.close(); catch (IOException e) { // Einlesen von int Zahlen // Einlesen der Zahlen public static void main(string argv[]) { read("1.int"); pause(); // main // class 41 Java: Schreiben und Lesen einer Binärdatei import java.io.*; // Ausgabe ohne Buffer, Ausgabe von int Zahlen, Einlesen der Zahlen public class readwrite1 { public static void main(string argv[]) { int i; try { FileOutputStream Fout = new FileOutputStream("rw1.int"); DataOutputStream DataOut = new DataOutputStream(Fout); i = 1234; DataOut.writeInt(i); i = 4321; DataOut.writeInt(i); DataOut.writeInt(-1234); DataOut.close(); 42 21

22 Java: Schreiben und Lesen einer Binärdatei // weiter im Sourcecode FileInputStream Fin = new FileInputStream("rw1.int"); // Einlesen der Dateien DataInputStream DataIn = new DataInputStream(Fin); i = DataIn.readInt(); System.out.println(i); i = DataIn.readInt(); System.out.println(i); i = DataIn.readInt(); System.out.println(i); DataIn.close(); catch (IOException e) { System.err.println("IOException: " + e); System.out.println("Es wurde in die Datei rw1.int geschrieben und gelesen"); System.out.println("Bitte Taste druecken"); pause(); // main 43 Java: Methoden der Klasse DataInputStream DataInputStream: readboolean readbyte (Einlesen 8-Bit Vorzeichenzahl) readchar (Einlesen 16-Bit Vorzeichenzahl) readdouble (Einlesen einer Double-Zahl) readfloat (Einlesen Single-Zahl) readint (Einlesen 32-Bit Vorzeichenzahl) readlong (Einlesen 64-Bit Vorzeichenzahl) readshort (Einlesen 16-Bit Vorzeichenzahl) readutf (Einlesen eines Strings) 44 22

23 Int-Datentypen in Java byte from -128 to 127 short from to int from to long from to char from '\u0000' to '\uffff, =>, from 0 to Dialog - Benutzeroberflächen in Java Ein Dialogfenster ist ein Fenster, in dem der Benutzer Daten eingeben kann. Das Fenster mindestens einen Schalter (Ok). Mit Betätigen wird eine Aktion ausgelöst. Beispiel: Meldung 46 23

24 Beispiele für Dialogfenster Eigenschaften: Titel Aktives Element Schalter Abbruch Schalter Ok Mit Betätigen des Schalters Ok wird eine weitere Aktion ausgeführt. 47 Beispiele für Dialogfenster 48 24

25 Single Dokument Interface Ein SDI-Fenster zeigt Daten in einem Fenster und stellt sie dem Benutzer zur Verfügung. Eigenschaften: Menüleiste Schalterleisten Statuszeile Kein Schalter Ok oder Abbruch 49 Single Dokument Interface Beispiele: Calculator Notepad Explorer Spiele Internetbrowser Einfaches Fenster Darstellung eines Textes Zweigeteiltes Fenster Komplexe Darstellung Zweigeteiltes Fenster 50 25

26 Beispiele für SDI-Fenster Eigenschaften: Titel Aktives Element Schalter Abbruch Mehrere Schalter Menüs Abbruch mit dem Schalter x 51 Beispiele für SDI-Fenster 52 26

27 Beispiele für SDI-Fenster 53 Beispiele für SDI-Fenster 54 27

28 Dialogfenster in Java Ein Dialogfenster besteht aus einem Frame und weiteren grafischen Benutzerelemente zur Eingabe und Ausgabe von Daten. Zum Beenden des Fensters müssen die Schalter Ok und Abbruch vorhanden sein. 55 GUI-Elemente in Java (aktive Elemente) JLabel JTextField JSpinner JButton JToggleButton JRadioButton JCheckBox ButtonGroup JComboBox Jlist JTextArea JTextPane JEditorPane JTable JScrollBar JTree Anzeigefeld einzeiliges Editorfeld einzeiliges Editorfeld mit Drehfeld Schalter (Text, Bild) Schalter (Text, Bild) Element zur Auswahl, korrespondiert mit anderen Element zur Auswahl Umfasst Checkbox, Radiobuttons Aufklappbare Liste Liste Editor, ASCII Editor, RTF, HTM Editor, RTF, HTM Tabelle Scrollbalken Anzeige der Elemente in einem Baum 56 28

29 GUI-Elemente in Java (Container) JPanel JTabbedPane JScrollPane JSplitPane Box Rahmen Register Speichert GUI-Element, Scroll-Mechanismus Automatischer Aufteiler Vertikal, Horizontal GUI-Elemente in Java (Menüs, Schalter) JMenuBar Speichert einzelne Menüs JPopupMenu Lokales Menü JToolBar Schalterleiste JOptionPane Für einfache Dialogboxen (Klasse Dialog) JColorChooser Farbe JFileChooser Auswahl einer Datei 57 Aufbau eines Dialogfenster in Java import javax.swing.*; public class Frame1 extends JFrame { //Frame konstruieren public Frame1() { this.setsize(400, 300); this.settitle("frame1"); public static void main(string[] args) { Frame1 frame = new Frame1(); frame.setvisible(true); Originalframe. Ohne weitere GUI-Elemente 58 29

30 Konstruktoren: JFrame() JFrame(String stitle); Methoden: setjmenubar setmaximizedbound setresizable settitle Dialogfenster mittels JFrame setundecorated(true); // ohne Menüleiste setsize(width, height) setlocation(x,y) Methoden: JLayeredPane getlayeredpane() JRootPane getrootpane() JGlassPane getglasspane() setextendedstate(int state): NORMAL ICONIFIED MAXIMIZED_HORIZ MAXIMIZED_VERT MAXIMIZED_BOTH: JRootPane root = f.getrootpane(); Container content = root.getcontentpane(); 59 Top-Level-Container 60 30

31 Dialogfenster in Java public class FrameMsg1 extends JFrame { public FrameMsg1() { JLabel label1; // Label Objekt Container container; setsize(400, 300); // Größe label1 = new JLabel("Text"); // Label erzeugen label1.settext("dies ist ein Anzeigetext"); // Labeltext container = this.getcontentpane(); // Container des Fensters container.add(label1, BorderLayout.NORTH); // Element einfügen // create public static void main(string[] args) { FrameMsg1 frame = new FrameMsg1(); frame.setvisible(true); // main 61 Dialogfenster in Java JLabel Ein JLabel dient zur Beschriftung von GUI- Elementen. Es kann eine Zeile Text dargestellt werden. Konstruktoren: JLabel() // Leerstring als Text JLabel(Icon image) // Icon als Beschriftung JLabel(Icon image, int horizontalalignment) JLabel(String text) // Label mit Text JLabel(String text, Icon icon, int horizontalalignment) JLabel(String text, int horizontalalignment) 62 31

32 Dialogfenster in JavaL JLabel Methoden: void sethorizontalalignment(int alignment) Sets the alignment of the label's contents along the X axis. void sethorizontaltextposition(int textposition) Sets the horizontal position of the label's text, relative to its image. void seticon(icon icon) void settext(string text) void setverticalalignment(int alignment) Sets the alignment of the label's contents along the Y axis. void setverticaltextposition(int textposition) Sets the vertical position of the label's text, relative to its image. void updateui() Notification from the UIFactory that the L&F&F has changed. 63 Dialogfenster in Java: Zwei JLabel public class FrameMsg2 extends JFrame { public FrameMsg2() { JLabel label1, label2; Container container; container = this.getcontentpane(); label1 = new JLabel("1. Text"); // Label erzeugen container.add(label1, BorderLayout.NORTH); label2 = new JLabel("2. Text"); // Label erzeugen container.add(label2, BorderLayout.NORTH); // create 64 32

33 Verbesserte Version (zwei JLabel) public FrameMsg3() { JLabel label1; JLabel label2; Container container; JPanel panel; Ergebnis? container = this.getcontentpane(); panel = new JPanel(); panel.setlayout ( new BorderLayout() ); label1 = new JLabel("1. Text"); // Label erzeugen panel.add(label1, BorderLayout.NORTH ); label2 = new JLabel("2. Text"); // Label erzeugen panel.add(label2, BorderLayout.SOUTH ); // create 65 Verbesserte Version (zwei JLabel) public FrameMsg3() { JLabel label1; JLabel label2; Container container; JPanel panel; container = this.getcontentpane(); panel = new JPanel(); panel.setlayout ( new GridLayout(3,1) ); label1 = new JLabel("1. Text"); // Label erzeugen panel.add(label1); label2 = new JLabel("2. Text"); // Label erzeugen panel.add(label2); // create 66 33

34 Dialogfenster in Java: Zwei JLabel public FrameMsg3() { JLabel label1; JLabel label2; Container container; JPanel panel; container = this.getcontentpane(); panel = new JPanel(); panel.setlayout ( new GridLayout(3,1) ); label1 = new JLabel("1. Text"); // Label erzeugen panel.add(label1); label2 = new JLabel("2. Text"); // Label erzeugen panel.add(label2); container.add(panel, BorderLayout.CENTER); // create 67 Bildschirmgestaltung: Layout Die Bildschirmstruktur wird durch ein Containerobjekt oder Layoutverwalter realisiert. Darstellung ist unabhängig von der Größe des Fensters Layout stellt eine Beziehung zwischen den Elementen dar. Layout-Verwalter: BorderLayout GridLayout FlowLayout CardLayout BoxLayout GridBagLayout 68 34

35 Flow-Layout Das FlowLayout speichert die GUI-Elemente in einer Reihe. 69 Flow-Layout public class Layout3 extends JFrame { public Layout3() { JButton bn; Integer I = new Integer(0); this.getcontentpane().add( new FlowLayout() ); for (int i=0; i<15; i++) { bn = new JButton( Integer.toString(i+1) ); this.getcontentpane().add(bn); // create FlowLayout

36 Flow-Layout public class Layout3 extends JFrame { public Layout3() { JPanel panel; JButton bn; Integer I = new Integer(0); panel = new JPanel(); panel.setlayout ( new FlowLayout() ); for (int i=0; i<15; i++) { bn = new JButton( Integer.toString(i+1) ); panel.add(bn); this.getcontentpane().add(panel, BorderLayout.NORTH); // create FlowLayout1 71 Flow-Layout public class Layout4 extends JFrame { public Layout4() { JPanel panel; JButton bn; Integer I = new Integer(0); panel = new JPanel(); panel.setlayout ( new FlowLayout() ); for (int i=0; i<15; i++) { bn = new JButton( Integer.toString(i+1) ); panel.add(bn); this.getcontentpane().add(panel, BorderLayout.CENTER); // create FlowLayout

37 Border-Layout North West Center East public BorderLayout1() { JLabel label1; JLabel label2; Container container; JPanel panel; South 73 Border-Layout public class BorderLayout1 extends JFrame { public BorderLayout1() { JButton bn1; this.getcontentpane().setlayout ( new BorderLayout(3,1) ); bn1 = new JButton("1. Text"); // Label erzeugen this.getcontentpane().add(bn1, BorderLayout.SOUTH); // create Ergebnis: Schalter hat die gesamte Breite 74 37

38 Border-Layout: Erweiterung Beispiel 06 public class BorderLayout2 extends JFrame { public BorderLayout2() {... panel = new JPanel(); panel.setlayout ( new FlowLayout() ); bn1 = new JButton("1. Text"); // Label erzeugen panel.add(bn1); bn2 = new JButton("2. Text"); // Label erzeugen panel.add(bn2); bn3 = new JButton("3. Text"); // Label erzeugen panel.add(bn3); this.getcontentpane().add(panel, BorderLayout.SOUTH); // create 75 Grid-Layout public GridLayout1() { JPanel panel; // AnzZeilen, AnzSpalten panel.setlayout( new GridLayout(4,5)); panel.add(...); 76 38

39 Grid-Layout Ergebnis: Schalter hat die gesamte Breite public class GridLayout1 extends JFrame { public GridLayout1() { panel = new JPanel(); panel.setlayout ( new GridLayout(5,3) ); this.getcontentpane().add(panel, BorderLayout.CENTER); for (int i=0; i<15; i++) { bn = new JButton( Integer.toString(i+1) ); panel.add(bn); // create 77 Grid-Layout Ergebnis: Aussehen der Schalter public class GridLayout1 extends JFrame { public GridLayout1() { panel = new JPanel(); panel.setlayout ( new GridLayout(5,3) ); this.getcontentpane().add(panel, BorderLayout.CENTER); for (int i=0; i<17; i++) { // 17 Schalter statt 15 bn = new JButton( Integer.toString(i+1) ); panel.add(bn); // create 78 39

40 Card-Layout Das CardLayout platziert Komponenten (gewöhnlich Bedienfelder) wie K arten in einem Stapel übereinander. Es wird jeweils nur eine Komponente bzw. ein Bedienfeld angezeigt. Sie haben die Möglichkeit, jeweils ein anderes Bedienfeld nach oben zu legen und somit durch die Bedienfelder zu blättern. 79 TabbedPane-Layout Das TabbedPaneLayout platziert Komponenten (gewöhnlich Bedienfelder) wie Karten in einem Stapel nebeneinander. Es wird jeweils nur eine Komponente bzw. ein Bedienfeld angezeigt. Man hat die Möglichkeit, jeweils ein anderes Bedienfeld nach vorne zu legen und somit durch die Register anzuzeigen

41 TabbedPane-Layout private void setgui() { JTabbedPane jtabbedpane1 = new JTabbedPane(); // 2. Definition der Farbpanels mycanvas mc1 = new mycanvas(color.green); mycanvas mc2 = new mycanvas(color.red); mycanvas mc3 = new mycanvas(color.blue); jtabbedpane1.add("grün",mc1); jtabbedpane1.add("rot",mc2); jtabbedpane1.add("blau",mc3); this.getcontentpane().add(jtabbedpane1, BorderLayout.CENTER); // setgui 81 JTabbedPane-Layout // Erweiterer Karten jtabbedpane1.addtab("schalter", null, createpanel1() ); jtabbedpane1.addtab("liste", null, createliste() ); JPanel createpanel1() { JButton bn1, bn2, bn3; JPanel panel = new JPanel(); panel.setlayout ( new FlowLayout() ); bn1 = new JButton("1. Text"); // Label erzeugen panel.add(bn1,"south"); bn2 = new JButton("2. Text"); // Label erzeugen panel.add(bn2,"south"); bn3 = new JButton("3. Text"); // Label erzeugen panel.add(bn3,"south"); return panel; // createpanel

42 GridBagLayout Insets GridBagConstraints: 83 GridBag-Layout GridBagLayout ist ein extrem flexibles und leistungsstarkes Layout, das beim Erzeugen von Komponenten in einem Gitter mehr Möglichkeiten bietet als GridLayout. Mit Hilfe von GridBagLayout können Sie Komponenten horizontal und vertikal in einem rechteckigen Gitter positionieren. Die Komponenten können unterschiedliche Größen besitzen und mehrere Zellen einnehmen

43 GridBag-Layout Eine Komponente kann auch kleiner als ihr Anzeigebereich sein, wenn keine Insets vorhanden sind, wie bei Komponente "6" im folgenden Beispiel. Obwohl der Anzeigebereich aus nur einer Zelle besteht, gibt es keine Begrenzungen, die die Komponente über ihre Minimalgröße hinaus vergrößern. In diesem Fall wird die Breite des Anzeigebereichs durch die größeren Komponenten in den darüber befindlichen Zeilen der gleichen Spalte bestimmt. Komponente "6" wird in ihrer kleinsten Größe angezeigt, und da sie kleiner ist als ihr Anzeigebereich, wurde sie über eine anchor-begrenzung am linken Rand (West) des Anzeigebereichs plaziert. 85 public class Insets extends Object implements Cloneable, Serializable Konstruktor: Insets(int top, int left, int bottom, int right) public int top The inset from the top. This value is added to the Top of the rectangle to yield a new location for the Top. public int left The inset from the left. This value is added to the left of the rectangle to yield a new location for the left edge. public int bottom The inset from the bottom. This value is added to the Bottom of the rectangle to yield a new location for the Bottom. public int right The inset from the right. This value is added to the Right of the rectangle to yield a new location for the Right edge

44 GridBagConstraints: Class java.awt.gridbagconstraints public class GridBagConstraints extends Object implements Cloneable, Serializable The GridBagConstraints class specifies constraints for components that are laid out using the GridBagLayout class. Konstruktoren: GridBagConstraints() Creates a GridBagConstraint object with all of its fields set to their default value. GridBagConstraints(int gridx, int gridy, int gridwidth, int gridheight, double weightx, double weighty, int anchor, int fill, Insets insets, int ipadx, int ipady) Creates a GridBagConstraints object with all of its fields set to the passed-in arguments. Attribute: int anchor 87 GridBagContraints Parameter: int gridx int gridy Element in der gridx-te Spalte gridy-te Zeile int gridwidth Breite der Zelle (Anzahl der Spalten ) int gridheight double weightx double weighty Höhe der Zelle (Anzahl der Zeilen) Verteilung von Platzänderung (Prozentual) Verteilung zusätzlichen Platzes (Prozentual) int anchor Verknüpfung (NORTHEAST, EAST, SOUTHEAST, CENTER, SOUTH, SOUTHWEST, WEST, NORTH, NORTHWEST) int fill Insets insets int ipadx int ipady Ausfüllen (NONE, HORIZONTAL, BOTH, VERTICAL) externer Lückenbüßer (absolut), äußere Rand, Top, Left, Bottom, Right interner Lückenbüßer (absolut), Breite des GUI-Elements interner Lückenbüßer (absolut), Höhe des GUI-Elements 88 44

45 public class Insets extends Object implements Cloneable, Serializable Konstruktor: Insets(int top, int left, int bottom, int right) public int top The inset from the top. This value is added to the Top of the rectangle to yield a new location for the Top. public int left The inset from the left. This value is added to the left of the rectangle to yield a new location for the left edge. public int bottom The inset from the bottom. This value is added to the Bottom of the rectangle to yield a new location for the Bottom. public int right The inset from the right. This value is added to the Right of the rectangle to yield a new location for the Right edge. 89 GridBag-Layout: 1. Beispiel Beispiel: GridBagLayout

46 GridBagContraints Parameter: this.getcontentpane().add(label1, new GridBagConstraints(0, 0,?,?, 0.0, 0.0,GridBagConstraints.??, GridBagConstraints.??, new Insets(0,00,0,0), 0, 0)); this.getcontentpane().add(text1, new GridBagConstraints(1, 0,?,?, 0.0, 0.0,GridBagConstraints.??, GridBagConstraints.??, new Insets(0,0,0,0), 00, 0)); this.getcontentpane().add(bnok, new GridBagConstraints(0, 1,?,?, 0.0, 0.0,GridBagConstraints.??, GridBagConstraints.?? new Insets(0,0,0,0), 0, 0)); this.getcontentpane().add(bnesc, new GridBagConstraints(2, 1,?,?, 0.0, 0.0,GridBagConstraints.??, GridBagConstraints.?, new Insets(0,0,0,0), 0, 0)); 91 GridBagContraints Parameter: this.getcontentpane().add(label1, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(4,20,4,0), 00, 0)); this.getcontentpane().add(text1, new GridBagConstraints(1, 0, 3, 1, 1.0, 0.0,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(4,0,4,20), 00, 0)); this.getcontentpane().add(bnok, new GridBagConstraints(0, 1, 2, 1, 0.0, 0.0,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(4,20,4,0), 0, 0)); this.getcontentpane().add(bnesc, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(4,20,4,0), 0, 0)); 92 46

47 GridBag-Layout: 2. Beispiel GridBagLayout02 93 GridBag-Layout: 3. Beispiel GridBagLayout

48 GridBag-Layout: 4. Beispiel Beispiel: GridBagLayout04a 95 Beispiel ohne Layout jlabel2.setbounds(21,89,100,20); // x y width height TMatrNr.setBounds(140,87,100,20); // x y width height TUNummer.setBounds(260, 87, 130,20); // x y width height this.getcontentpane().add(jlabel2); this.getcontentpane().add(tmatrnr); this.getcontentpane().add(tunummer); jprogressbar1.setbounds(25, 199, 361, 23); // x y width height this.getcontentpane().add(jprogressbar1); BnUp.setBounds(91, 241, 100, 25); BnDown.setBounds(240, 240, 100, 25); this.getcontentpane().add(bndown); this.getcontentpane().add(bnup); // x y width height // x y width height GridBagLayout

49 GridBag-Layout: 5. Beispiel GridBagLayout05 97 Ereignisse: Ereignisse durch ein GUI-Element werden durch folgende Aktionen ausgelöst. Ein GUI-Element angeklickt Der Inhalt einer Textzeile wird verändert Die Bezeichnung eines JLabels wird verändert Mausklick auf einen Schalter Auswahl eines Menüs Auswahl eines Popupmenüs Maus über einem Element Maustaste wurde gedrückt Maustaste wurde losgelassen Taste wurde gedrückt Taste wurde losgelassen etc 98 49

50 Ereignisse: Klassen der verschiedenen Ereignisse: Anzeige aus dem JBuilder 3,0 99 Ereignisse: Beispiel Schalter: Schalter hat für jede Aktion eine Liste mit möglichen Empfängern. Um ein bestimmtes Ereignis zu erhalten, muss man sich registrieren lassen (ActionListener). Der Schalter ruft nun durch die Definition des Listener die interne Funktion auf. Diese internen Funktionen werden nacheinander aufgerufen. Verkettete Liste. 3. Mausklick (Event) 1. Registrierung 2. Speichern in Liste Aufrufen der Methode

51 1. Beispiel Schalter: Dialog: class Action1 extends JFrame { int iiii=0; private void setgui() { bn = new JButton( "Ok" ); myactionlistener myaction = new myactionlistener(); BnOk.addActionListener(myAction); // Registrierung class myactionlistener implements java.awt.event.actionlistener { public void actionperformed(actionevent e) { System.out.println("Hier wurde ein Schalter gedrückt"); iiii=0; Action1 bis Beispiel Schalter: class Action2 extends JFrame { int i=42; private vod setgui() { bn = new JButton( "Ok" ); myactionlistener myaction = new myactionlistener(); BnOk.addActionListener(myAction); // Registrierung Private void test() { int i; i=this.i+22; class myactionlistener implements java.awt.event.actionlistener { public void actionperformed(actionevent e) { System.out.println("Hier wurde ein Schalter gedrückt: "+i); BnOk_Click(); // Aufruf einer Methode in der Hauptklasse // class private void BnOk_Click() { System.out.println("Hier wurde ein Schalter gedrückt"); // Action2 Action1 bis

52 3. Beispiel Schalter: private void setgui() { bn = new JButton( "Ok" ); ActionListener al; al = new java.awt.event.actionlistener() { public void actionperformed(actionevent e) { BnOk_Click(e); ; bn.addactionlistener(al); // create void BnOk_Click(ActionEvent e) { settitle("der Schalter wurde gedrückt"); Der blauer Text definiert die interne Funktion des Actionlisteners. Liste04 / Listener Beispiel Schalter: Anonyme Klasse private void setgui() { BnOk = new JButton( "Ok" ); BnOk.addActionListener( new java.awt.event.actionlistener() { public void actionperformed(actionevent e) { BnOk_Click(e); ); // setgui void BnOk_Click(ActionEvent e) { settitle("der Schalter wurde gedrückt");

53 5. Beispiel Schalter: ActionListener public class Action5 extends JFrame implements ActionListener { JButton BnOk = new JButton("Ok"); JButton BnEsc = new JButton("Abbruch"); private void setgui() { BnOk.addActionListener(this); BnEsc.addActionListener(this); // setgui public void actionperformed(actionevent e) { System.out.println("Hier actionperformed"); if (e.getsource()==bnok) System.out.println("Hier BnOk"); if (e.getsource()==bnesc) System.out.println("Hier BnEsc"); // Action Beispiel Schalter: ActionListener, ohne instanceof public class Action8 extends JFrame implements ActionListener { JButton BnOk = new JButton("Ok"); JButton BnEsc = new JButton("Abbruch"); private void setgui() { BnOk.addActionListener(this); BnOk.setActionCommand("Ok"); BnEsc.addActionListener(this); // setgui public void actionperformed(actionevent e) { String cmd = e.getactioncommand(); if (cmd.equals("ok") ) { BnOk_Click(); // Action

Graphische Nutzerschnittstellen

Graphische Nutzerschnittstellen Graphische Nutzerschnittstellen Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Inhalt 1. Einführung,

Mehr

Graphische Nutzerschnittstellen

Graphische Nutzerschnittstellen Graphische Nutzerschnittstellen Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de http://www.miwilhelm.de Raum 2.202 Tel. 03943 / 659 338

Mehr

Graphische Nutzerschnittstellen

Graphische Nutzerschnittstellen Graphische Nutzerschnittstellen Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de http://www.miwilhelm.de Raum 2.202 Tel. 03943 / 659 338

Mehr

Graphische Nutzerschnittstellen

Graphische Nutzerschnittstellen Graphische Nutzerschnittstellen Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Inhalt 1. Einführung,

Mehr

Projektwoche Grafische Nutzerschnittstellen mit Java

Projektwoche Grafische Nutzerschnittstellen mit Java Projektwoche Grafische Nutzerschnittstellen mit Java Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1

Mehr

Graphische Nutzerschnittstellen

Graphische Nutzerschnittstellen Graphische Nutzerschnittstellen Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de Raum 2.202 Tel. 03943 / 659 338 1 Inhalt 1. Einführung,

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

GroupLayout Anmerkung

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

Mehr

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

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

Vorlosung: Swing: Erstellen eines JFrames mit GridBagLayout

Vorlosung: Swing: Erstellen eines JFrames mit GridBagLayout Hchschule Harz BS/GUI Vrlesung: FB Autmatisierung und Infrmatik Dipl.-Inf., Dipl.-Ing. (FH) M. Wilhelm BS/GUI Thema: Swing und GridBagLayut Versuchsziele Kenntnisse in der Anwendung vn: Erstellen einer

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

Arten von Streams. Daten. Bytes (8-Bits) Java Programm. Daten. Java Programm. Characters (16 - Bits)

Arten von Streams. Daten. Bytes (8-Bits) Java Programm. Daten. Java Programm. Characters (16 - Bits) Datenströme Arten von Streams Daten 0 1 1 0 1 0 1 0 Java Programm Bytes (8-Bits) Daten 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 Java Programm Characters (16 - Bits) Byteströme(InputStream/OutputStream) I Java Programm

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

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

Einführung in GUI-Programmierung. javax.swing

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

Mehr

Einführung in die Programmierung für NF. Grafische Benutzeroberflächen

Einführung in die Programmierung für NF. Grafische Benutzeroberflächen Einführung in die Programmierung für NF Grafische Benutzeroberflächen Ziele Grafische Benutzeroberflächen (Graphical User Interfaces) als Anwendungsbeispiel für die objektorienferte Programmierung kennenlernen.

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

Java Einführung Exception Handling. Kapitel 17

Java Einführung Exception Handling. Kapitel 17 Java Einführung Exception Handling Kapitel 17 Inhalt Was sind Exceptoins? Wie werden sie ausgelöst? Wie kann man Exceptions behandeln? Erweiterung von Exceptions Spezialfall IO 2 Ausnahmezustände Im Ablauf

Mehr

Layout Manager. Astrid Beck FHT Esslingen

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

Mehr

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

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

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

Betriebssysteme Studiengang Informatik / SAT

Betriebssysteme Studiengang Informatik / SAT Betriebssysteme Studiengang Informatik / SAT Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de http://www.miwilhelm.de Raum 2.202 Tel. 03943

Mehr

Ausnahmebehandlung. Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren. Ausnahmen abfangen. Ausnahmen definieren

Ausnahmebehandlung. Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren. Ausnahmen abfangen. Ausnahmen definieren Ausnahmebehandlung Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren Ausnahmen abfangen Ausnahmen definieren Sinnvolle Verwendung von Ausnahmen Informatik II: Objektorientierte SW-Entwicklung, Algorithmik,

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

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

Einführung in GUI-Programmierung. javax.swing

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

Mehr

Ausnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Ausnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Fehlerarten Bei der Programmierung können viele Arten von Fehlern auftreten:

Mehr

Java Fehlerbehandlung

Java Fehlerbehandlung Java Fehlerbehandlung 1 Fehlerbehandlung In jedem nicht-trivialen Programm kann es während der Laufzeit zu Fehlersituationen kommen. Dabei handelt es sich nicht unbedingt um Programmierfehler: z. B.: Programm

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

JList JTable Layout-Manager GridBagLayout. Programmieren II. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011

JList JTable Layout-Manager GridBagLayout. Programmieren II. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011 Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 JList 2 JTable 3 Layout-Manager 4 GridBagLayout Die Klasse JList Die Klasse JList stellt einen Container für Auswahllisten

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Java Teil 9: Ausnahmebehandlung Martin Hofmann Steffen Jost LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München 8. Dezember

Mehr

1 Fehler-Objekte: Werfen, Fangen, Behandeln

1 Fehler-Objekte: Werfen, Fangen, Behandeln 1 Fehler-Objekte: Werfen, Fangen, Behandeln Tritt während der Programm-Ausführung ein Fehler auf, wird die normale Programm-ausführung abgebrochen und ein Fehler-Objekt erzeugt (geworfen). Die Klasse Throwable

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

Ausnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Ausnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung : http://www.pst.ifi.lmu.de/lehre/wise-12-13/infoeinf WS12/13 Fehlerarten Bei der Programmierung können viele Arten von Fehlern auftreten: Syntaktische Fehler

Mehr

Ausnahmen. Gilbert Beyer und Annabelle Klarl. Einführung in die Informatik. Zentralübung zur Vorlesung Einführung in die Informatik

Ausnahmen. Gilbert Beyer und Annabelle Klarl. Einführung in die Informatik. Zentralübung zur Vorlesung Einführung in die Informatik Ausnahmen Zentralübung zur Vorlesung http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Inhalte der heutigen Vorlesung: Arten von Fehlern Auslösen von Ausnahmen Vermeiden von Ausnahmen Ausnahmeklassen

Mehr

Programmiertechnik GUI Programmierung mit Java Swing

Programmiertechnik GUI Programmierung mit Java Swing Programmiertechnik GUI Programmierung mit Java Swing Prof. Dr. Oliver Haase Software Engineering und Verteilte Systeme Raum F012 haase@htwg-konstanz.de Tel: 07531/206-720 Oliver Haase Hochschule Konstanz

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

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

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

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

Mehr

Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI)

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

Mehr

Ausnahmen. Dr. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Ausnahmen. Dr. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Dr. Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-16-17/infoeinf WS16/17 Action required now 1. Smartphone: installiere die App "socrative

Mehr

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

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

Mehr

Ausnahmen. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Ausnahmen. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/ Fehlerarten Bei der Programmierung

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

Ausnahmen. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Ausnahmen. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung https://www.sosy-lab.org/teaching/2017-ws-infoeinf/ WS17/18 Fehlerarten Bei der Programmierung

Mehr

Einführung in die Programmierung für NF. Übung

Einführung in die Programmierung für NF. Übung Einführung in die Programmierung für NF Übung 09 18.12.2013 Inhalt Korrektur Blatt 8 Wiederholung Design Patterns Einführung in GUI s mit Java Swing und AWT Einführung in die Programmierung für NF Übung

Mehr

9. Ausnahmebehandlung

9. Ausnahmebehandlung Schwerpunkte Ausnahmen und Laufzeitfehler 9. Ausnahmebehandlung Java-Beispiele: Ausnahme.java TryCatch.java TryCatchAll.java Finally.java TryInTry.java KeyboardTry.java Oeffnungszeit.java Stack-Trace Java-Ausnahmeklassen-Hierarchie

Mehr

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4. ! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.4 Exceptions - 1 - Ausnahmen (Exceptions( Exceptions) Treten auf, wenn zur

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 13/14. Kapitel 11. Fehler und Ausnahmen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 13/14. Kapitel 11. Fehler und Ausnahmen 1 Kapitel 11 Ziele 2 Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen können Ausnahmen behandeln können Fehlerhafte

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

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen

Teil 5 - Java. Programmstruktur Operatoren Schlüsselwörter Datentypen Teil 5 - Java Programmstruktur Operatoren Schlüsselwörter Datentypen 1 Kommentare in Java In Java gibt es drei Möglichkeiten zur Kommentierung: // Kommentar Alle Zeichen nach dem // werden ignoriert. für

Mehr

Instrumentierung und Dekodierung

Instrumentierung und Dekodierung 116 Copyright 1996-1998 by Axel T. Schreiner. All Rights Reserved. Instrumentierung und Dekodierung Erweiterung der Grafikklassen Das awt-paket erweitert alle Klassen für Grafikobjekte in java.awt, so

Mehr

Ziele. Kapitel 8: Grafische Benutzerschnittstellen. AWT und Swing. Ziele (2)

Ziele. Kapitel 8: Grafische Benutzerschnittstellen. AWT und Swing. Ziele (2) Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Ziele Kapitel 8: Grafische Benutzerschnittstellen Prof. Dr. David Sabel Lehr- und Forschungseinheit für Theoretische

Mehr

Grafische Benutzeroberflächen

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

Mehr

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

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 11. Fehler und Ausnahmen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 11. Fehler und Ausnahmen 1 Kapitel 11 Ziele 2 Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen können Ausnahmen behandeln können Fehlerhafte

Mehr

9. Ausnahmebehandlung

9. Ausnahmebehandlung 9. Ausnahmebehandlung Java-Beispiele: Ausnahme.java TryCatch.java TryCatchAll.java Finally.java TryInTry.java KeyboardTry.java Oeffnungszeit.java Version: 11. Jan. 2016 Schwerpunkte Ausnahmen und Laufzeitfehler

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

Problemstellung. Object1:Klasse1. Object2:Klasse2 att1: Klasse1 att2: 9. att1: att2: 17. Klasse1 att1 att2 Klasse2 att1 att2

Problemstellung. Object1:Klasse1. Object2:Klasse2 att1: Klasse1 att2: 9. att1: att2: 17. Klasse1 att1 att2 Klasse2 att1 att2 Problemstellung Objekt mit aggregierten Objekten: att1: att2: 17 Object1:Klasse1 Object2:Klasse2 att1: Klasse1 att2: 9 serialisiert als Datei: Klasse1 att1 att2 Klasse2 att1 att2 -Speicherung von Objekten

Mehr

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

Ausnahmen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 27.6. Ausnahmen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 27.6.07 G. Bohlender (IANM UNI Karlsruhe) Ausnahmen 27.6.07 1 / 8 Übersicht 1 Einführung

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

1. Laboraufgabe. Grafische Nutzerschnittstellen. Studiengang I / IEA / SAT

1. Laboraufgabe. Grafische Nutzerschnittstellen. Studiengang I / IEA / SAT 1. Laboraufgabe Grafische Nutzerschnittstellen Studiengang I / IEA / SAT FB Automatisierung und Informatik: Grafische Nutzerschnittstellen 1 1. Laboraufgabe: Die Aufgabe lautet, ein Javaprogramm zu schreiben,

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White

Mehr

Programmierung 2 Studiengang MI / WI

Programmierung 2 Studiengang MI / WI Programmierung 2 Studiengang MI / WI Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de http://mwilhelm.hs-harz.de Raum 2.202 Tel. 03943 /

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

Mögliche Implementierung von intern():

Mögliche Implementierung von intern(): Mögliche Implementierung von intern(): public class String { private static int n = 1024; private static List[] hashset = new List[n]; public String intern() { int i = (Math.abs(hashCode()%n);

Mehr

Aufgabe 03. Swing: Die Swing-Oberfläche wird vorgegeben: Abbildung 1 Musterlösung

Aufgabe 03. Swing: Die Swing-Oberfläche wird vorgegeben: Abbildung 1 Musterlösung Hochschule Harz Programmierung 2 Aufgabe 03: FB Automatisierung und Informatik Dipl.-Inf. Dipl.-Ing. (FH) M. Wilhelm Programmierung 2 für MI / WI Thema: Swing, GridBagLayout und Bit-Funktionen Versuchsziele

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

Streams. V by WBR1&MOU2/BFH-TI. Berner Fachhochschule Hochschule für Technik und Informatik HTI

Streams. V by WBR1&MOU2/BFH-TI. Berner Fachhochschule Hochschule für Technik und Informatik HTI Ein- Ausgabe Streams Unterlagen zum Modul "OOP mit Java" V 3.0 2011 by WBR1&MOU2/BFH-TI Ein- Ausgabe, Streams V3.0 2011 by WBR1&MOU2/BFH-TI Definition: Berner Fachhochschule Streams Ein Stream ist eine

Mehr

Objektorientierung II & die Java Klassenbibliothek. Kristian Bergmann und Arthur Lochstampfer

Objektorientierung II & die Java Klassenbibliothek. Kristian Bergmann und Arthur Lochstampfer Java Kurs Objektorientierung II & die Java Klassenbibliothek Kristian Bergmann und Arthur Lochstampfer Vergleich class Apfel { String farbe; int gewicht; String geerntetin; class Erdbeere { String farbe;

Mehr

Kapitel 8: Grafische Benutzerschnittstellen

Kapitel 8: Grafische Benutzerschnittstellen Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Kapitel 8: Grafische Benutzerschnittstellen Prof. Dr. David Sabel Lehr- und Forschungseinheit für Theoretische

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

II.4.4 Exceptions - 1 -

II.4.4 Exceptions - 1 - 1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.4 Exceptions - 1 - Ausnahmen (Exceptions)

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

II.4.4 Exceptions - 1 -

II.4.4 Exceptions - 1 - n 1. Unterklassen und Vererbung n 2. Abstrakte Klassen und Interfaces n 3. Modularität und Pakete n 4. Ausnahmen (Exceptions) n 5. Generische Datentypen n 6. Collections II.4.4 Exceptions - 1 - Ausnahmen

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

Programmieren I. Fehlerbehandlung Exceptions. Heusch 2. Bd, 3 Ratz 10. Institut für Angewandte Informatik

Programmieren I. Fehlerbehandlung Exceptions. Heusch 2. Bd, 3 Ratz 10.  Institut für Angewandte Informatik Programmieren I Fehlerbehandlung Exceptions Heusch 2. Bd, 3 Ratz 10 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Exceptions und ihre Behandlung Exception - Ausnahmebedingung

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

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 27. Januar 2016 Lesen und Schreiben von Zeichen Reader read(); close();

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

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

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

Liste Programmieren Java Überblick

Liste Programmieren Java Überblick Liste Programmieren Java Überblick 1 Was ist Java? 2 Klassen und Objekte 3 Vererbung 4 Schnittstellen 5 Innere Klassen 7 Funktionsbibliothek 8 Datenstrukturen und Algorithmen 9 Ein-/Ausgabe 10 Threads

Mehr

Ausdrucksbäume in verschiedenen Darstellungen

Ausdrucksbäume in verschiedenen Darstellungen Ausdrucksbäume in verschiedenen Darstellungen SWE-42 Infix mit notwendigen Klammern: (a + b) / (c - d) Infix vollständig geklammert: (((a) + (b)) / ((c) - (d))) Postfix a b + c d - / Präfix / + a b - c

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG FORTGESCHRITTENE KONZEPTE Tobias Witt 26.03.2014 tobias.witt@hhu.de 25.12.01.30 Bürozeiten: 09 Uhr - 12 Uhr FEHLERBEHANDLUNG KLASSISCHER ANSATZ Fehlercode als Rückgabewert

Mehr

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

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

Mehr

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

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

Mehr

Ausnahmen (Exceptions)

Ausnahmen (Exceptions) Ausnahmen (Exceptions) Herkömmliche Fehlerbehandlung Jede Methode liefert einen Fehlercode int result; result = p(); if (result == ok) { result = q(); if (result == ok) { result = r(); if (result == ok)

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