Java Applikationen, Swing/JFC

Größe: px
Ab Seite anzeigen:

Download "Java Applikationen, Swing/JFC"

Transkript

1 Java Applikationen, Swing/JFC Applets und Applikationen Kommandozeilen Anwendung Anwendungen mit GUI Swing/JFC Menus Weitere Komponenten Layouts Look & Feel Applets und Applikationen 2 von 70 Einführung Applets Es gibt zwei Typen von Java-Programmen: Applets (eingebettete in Web Seite) Applikationen (eigenständige Programme) Applets wurden für die Anreicherung von HTML Seiten entworfen Erste Anwendung von Java Laufen in einer Sandbox d.h. können i.a. nicht direkt auf Ressourcen (z.b. FileSystem, HW) der Klienten Plattform zugreifen Verbreitung ist am Widerstand von Microsoft gescheitert Müssen in einer HTML-Seite eingebettet sein und benötigen einen Browser oder AppletViewer, um lauffähig zu sein Browser ruft init() und bei Bedarf paint(graphics g, actionperformed(...) etc. auf 1 * Applikationen Auf der Klienten Seite für Plattform unabhängige Anwendungen (JSE) - Java Standard Edition * Auf der Server Seite für die Verarbeitung von Daten (JEE) - Java Enterprise Edition * = mehrmals aufgerufen MeinProgramm.html MeinProgramm.html 3 von 70 4 von 70

2 Applets Applikationen Applet (mit GUI) Editor Greeting.java Programm Quellcode-Datei Byte-Code-Datei sind eigenständige Programme brauchen keinen Browser oder AppletViewer Greeting.html Compiler Greeting.class javac Greeting.java Weitere Klassen Sie laufen vollständig unabhängig von anderen Programmen Applikationen werden gestartet durch Anklicken eines Icons oder einen entsprechenden Befehl auf der Kommandozeile Applikationen können normalerweise nicht über das Internet gestartet werden Installation (kopieren : Bytecode + JRE + Startverweis) JVM Browser (Applet Viewer) appletviewer Greeting.html JVM = Java Virtual Machine Sie können ebenfalls die AWT-Bibliothek benützen (ausser Applet-Klassen) Applikationen haben mehr Rechte bezüglich dem Zugriff auf lokale Ressourcen (Dateien) kein Sandbox wie beim Applet 5 von 70 6 von 70 Applikationen Editor Programm Quellcode-Datei HelloWorld.java Byte-Code-Datei Kommando: Compiler javac HelloWorld.java Kommandozeilen Anwendung HelloWorld.class Weitere Klassen JVM java HelloWorld JVM = Java Virtual Machine 7 von 70 8 von 70

3 Kommandozeilen Anwendung Aufruf Applikationen mit Ein-/Ausgabe über die Kommandozeile, Beispiel: (Basic Java Application in Jcreator) public class Gruss { public static void main(string[] args) { System.out.println("Hallo " + args[0]); Aufruf einer Java Kommandozeilen -Applikation: java Klassenname [Argumente] java ruft den Java-Interpreter auf und übergibt ihm als Argument den Namen (=Klassenname) des auszuführenden Programms Der Java-Interpreter interpretiert dann den Byte-Code des Programms Klassenname 1 Die Ausführung des Programms Klassenname beginnt mit der main-methode der Klasse Klassenname Klassenname Name des Programms (= Name der public-klasse) [Argumente] Argumente; werden im String-Array args der Methode main übergeben Die Anzahl der übergebenen Argumente erhält man mit args.length Aufruf: java Gruss (ohne.class) 9 von von 70 Eigenschaften Implementation Variante 1 Jede Applikation muss eine Klassenmethode mit der folgenden Signatur enthalten: public static void main(string[] args) {... Diese Methode main ist der Startpunkt der Applikation String[] args ist ein String-Array, der allfällige Argumente von der Kommandozeile enthält; Verwendung via args[0], args[1]... java myapplication arg0 arg1 Werden diese Command Line Arguments nicht verwendet, ist auch diese main- Methode zulässig: public static void main() {... Eine Applikation: public class Applikation { public static void main(string[] args) { tuetwas(); //oder this.tuetwas(); private static void tuetwas() {... Ablauf des Programms: Java-Interpreter ruft die main-methode der Klasse Applikation auf main ruft sodann eine Methode der Klasse auf Klasse Klasse Application Application main() main() { { tueetwas tueetwas tueetwas() tueetwas() 11 von von 70

4 Beispiel Implementation Variante 2 Klasse wird nicht instanziert. Programm spielt sich direkt in der Klasse ab. Methode main ist das Hauptprogramm Alle Methoden und nicht lokale Variablen müssten als static deklariert werden public class BasicJavaAppl { public static void main(string[] argumente) { for (String s : args) { // iteriere durch alle Arrayelemente System.out.println(s); int a = Integer.parseInt(args[0]); int res = tuetwas(a); System.out.println("Quadrat von " + a + " = " + res); Aufbau der Applikation: public class Applikation { public static void main(string[] args) { Applikation a = new Applikation(); a.tuetwas(args); private void tuetwas() {... Ablauf des Programms: Java-Interpreter ruft die main-methode der Klasse Applikation auf main erzeugt eine Instanz der Klasse (eigenen) Applikation main ruft sodann eine Methode im erzeugten Objekt auf Klasse Klasse Application Application main() main() { { a= a= new new.. a.tuetwas(); a.tuetwas(); tuetwas() tuetwas() Instanz von Application Instanz von Application Var Var a a main() main() tuetwas() tuetwas() private static int tuetwas(int x){ return x*x; Diese Variante ist zu bevorzugen 13 von von 70 Beispiel Übungsaufgabe main wird nur für die Instanzierung verwendet Klasse wird in main instanziert. Nur main muss als static deklariert werden. public class BasicJavaAppl { public static void main(string[] argumente) { a = new BasicJavaAppl(); a.tuetwas (argumente); Schreiben Sie ein Adder-Programm, das die Eingaben der Kommandozeile zusammen zählt und ausgibt: java Adder sollte als Resultat diesen Output liefern: 78 private void tuetwas(string[] args){ //Constructor for (String s : args) { // iteriere durch alle Arrayelemente System.out.println(s); int a = Integer.parseInt(args[0]); int res = a*a; System.out.println("Quadrat von " + a + " = " + res); 15 von von 70

5 Applikationen mit GUI (Graphical( User Interface) Anwendungen mit GUI Im Applet ist die Klasse Applet selbst schon ein Fenster GUI-Element Eine GUI Applikation muss dieses selber erstellt werden Die Klasse Frame (Abstract Window Toolkit (AWT) ) diese Aufgabe class MyFrame extends Frame Klasse Frame: Verwaltet ein Fenster mit Scrollbars, Menubalken und Window-Controls Ein Frame kann WindowEvents erzeugen WindowListener benötigt Object Component Container Behälter für andere Behälter für andere Komponenten: add( ) Komponenten: add( ) Panel Window Applet Frame Dialog auf dem Desktop darstellbar auf dem Desktop darstellbar 17 von von 70 Applikationen mit GUI Klasse MyFrame erbt von Frame Erzeuge Instanz von MyFrame Öffne MyFrame with setvisible(true) Add a Window Listener in Construktor Beenden der Application mit System.exit(0) import java.awt.*; import java.awt.event.*; public MyFrame(String name) { super(name); this.addwindowlistener ( new WindowAdapter() { public void windowclosing(windowevent e){ System.exit(0); ); Frames und WindowEvents public class MyFrame extends Frame { public static void main(string[] args) { // Create application frame. MyFrame frame = new MyFrame("TestJFC"); // Show frame frame.setsize(new Dimension(400, 400)); frame.setvisible(true); 19 von von 70

6 Frame WindowEvents Konstruktoren: Frame() erzeugt ein Fenster ohne Titel Frame(String Fenstertitel) erzeugt ein Fenster mit Titel Wichtige Methoden (zum Teil von Klasse Window geerbt): setsize(int b,int h) setzt Fenstergrösse show() macht Fenster sichtbar setvisible(boolean b) macht Fenster un-/sichtbar toback() schiebt Fenster nach hinten tofront() schiebt Fenster nach vorne validate(); ordnet Elemente in Fenster neu an settitle(string titel) setzt Fenstertitel (kann auch in Contructor gemacht werden) setmenubar(menubar m) setzt neue Menuleiste des Fensters Ein Frame kann WindowEvents erzeugen; die Applikation muss WindowListener Interface implementieren um darauf reagieren zu können: public void windowopened(windowevent event)wird aufgerufen, nachdem das Fenster das erste Mal sichtbar geworden ist public void windowclosing(windowevent event)wird aufgerufen, wenn der Benützer das Fenster schliessen möchte public void windowclosed(windowevent event)wird aufgerufen, sobald Fenster effektiv geschlossen ist public void windowiconified(windowevent event)wird aufgerufen, nachdem das Fenster zu einem Icon verkleinert worden ist public void windowdeiconified(windowevent event)wird aufgerufen, sobald der Benützer das Icon wieder geöffnet hat public void windowactivated(windowevent event)wird aufgerufen, sobald das Fenster aktiv ist, d.h. den Fokus erhält public void windowdeactivated(windowevent event)wird aufgerufen, sobald Fenster inaktiv geworden ist, d.h. den Fokus abgegeben hat 21 von von 70 PlayBalloon Applet vs Applikation PlayBalloon Applet vs Applikation import java.awt.*; import java.awt.event.*; public class PlayBalloon extends Frame implements ActionListener, WindowListener { private Button grow, shrink; private Balloon myballoon; public static void main(string[] args) { PlayBalloon f = new PlayBalloon(); f.setsize(300,300); f.setvisible(true); public PlayBalloon() { // Constructor kreiert u.a. GUI settitle("balloon"); setlayout(new FlowLayout()); // Default Layout for Frame = Border! grow = new Button("Grow"); add(grow); grow.addactionlistener(this); shrink = new Button("Shrink"); add(shrink); shrink.addactionlistener(this); myballoon = new Balloon(20, 50, 50); this.addwindowlistener(this); 23 von 70 public void actionperformed (ActionEvent event) { // wie beim Applet if (event.getsource() == grow){ myballoon.changesize(10); if (event.getsource() == shrink){ myballoon.changesize(-10); repaint(); Adapter verwenden! Adapter verwenden! public void windowclosing(windowevent event) { // WindowListener!! System.exit(0); public void windowiconified(windowevent event) { public void windowopened(windowevent event) { public void windowclosed(windowevent event) { public void windowactivated(windowevent event) { public void windowdeiconified(windowevent event) { public void windowdeactivated(windowevent event) { public void paint (Graphics g) { // gleich wie beim Applet myballoon.display(g); School of Engineering A. Meier/M. Braschler/J. Zeman/K. Rege 24 von 70

7 PlayBalloon Applet vs Applikation Umwandlung Applet in eine Applikation unverändert unverändert public class Balloon { private int diameter, xcoord, ycoord; public Balloon (int initialdiameter, int initialx, int initialy){ diameter = initialdiameter; xcoord = initialx; ycoord = initialy; public void changesize (int change) { diameter = diameter+change; public void display (Graphics g) { g.drawoval (xcoord, ycoord, diameter, diameter); Methode init() in einen Konstruktor (d.h. gleicher Name wie Klasse) ohne Parameter umwandeln extends Applet durch extends Frame ersetzen und import Applet löschen main-methode schreiben: public static void main(string[] args) muss ein Objekt der eigenen Klasse (d.h. des Programms) erzeugen damit wird das entsprechende Frame erzeugt muss Grösse der Frames setzen mit setsize(breite, hoehe); muss Frame sichtbar machen mit setvisible(true); WindowListener implementieren via Adapter! via Adapter! Deklarierung der 7 WindowListener Methoden Implementierung mindestens der windowclosing Methode Applikation bei sich selbst als WindowListener Registieren this.addwindowlistener(this); Layout-Manager auf FlowLayout ändern, falls gewünscht Kontrollieren, ob keine Methoden der Applet-Klasse mehr verwendet werden Alternative bei JFC siehe Alternative bei JFC siehe Anhang Anhang 25 von von 70 Swing Oberflächen (JFC) Neben AWT die zweite Bibliothek von GUI Komponenten: Swing/JFC Java Foundation Classes nicht unabhängig voneinander JFC/Swing teilen z.b. Events, Layout Manager etc. Komponenten sollten nicht gemischt werden 27 von von 70

8 Vergleich JFC/Swing und AWT Vergleich JFC/Swing und AWT AWT Eigenschaften ist älter braucht weniger Ressourcen einfach aufgebaut Komponenten passen sich automatisch Umgebung an (Konzept der Peers "Gegenüber" auf allen Plattformen) Nachteile: beschränkt in Funktionsumfang kleinster-gemeinsamer-nenner Ansatz (z.b. bei Maustasten) Swing/JFC Eigenschaften moderner, sieht besser aus kann mehr mehr Komponenten Unterstützung von D&D, Clipboard unterstützt erweiterbares Komponentenmodell: Java Beans Plattform independent and native Look-and-Feel Wechsel von AWT zu Swing ist einfach Nachteile braucht etwas mehr Ressourcen AWT Importieren von Klassen import java.awt.*; import java.awt.event.*; Komponenten aber Frame Button TextField List Verwendung Frame add() Applet app = new Applet(); Button but = new Button(); app.add(but); Swing Import von Klassen import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; Komponenten JFrame JButton JTextField aber JList (anders aufgebaut) JTable (neu) Verwendung JFrame add() JApplet app = new JApplet(); JButton but = new JButton(); app.add(but); 29 von von 70 JFC Klassenhierarchie (vereinfacht) Object Component Container gemeinsame Oberklasse gemeinsame Oberklasse (auch für AWT) (auch für AWT) "Behälter" "Behälter" für für andere andere Komponenten Komponenten einfache JFC Komponenten JComponent Oberklasse für eigene JFC Oberklasse für eigene JFC Komponenten (kein Canvas mehr) Komponenten (kein Canvas mehr) Window Menus JButton JScrollbar JLabel JMenu JCheckBox JRadioButton JTextComponent JTextField JTextArea JPanel Hilfsklassen zur Anordnungssteuerung FlowLayout BorderLayout BoxLayout JApplet JFrame JDialog auf dem Desktop darstellbare Behälter 31 von von 70

9 Menus Menus Applikationen können im Gegensatz zu Applets neben den anderen GUI- Komponenten auch Menus enthalten Dazu braucht es eine sogenannte Menuleiste (JMenubar) an dieser Leiste sind die Menus aufgehängt sind MenuItem: so heissen die einzelnen Einträge eines Menus (können selbst wieder Untermenus sein) JComponent JMenuBar: Leiste, an der die Menus aufgehängt sind JMenu einzelne Einträge in Menübar JMenuItem: einzelne Einträge eines Menus Klassen: JMenuBar JMenu JMenuItem Klassenhierarchie: JMenuItem JMenuBar JMenu 33 von von 70 Klasse JMenuBar Klasse JMenu Konstruktor JMenuBar() Nützliche Methoden add(jmenu menu) Werden mittels der Frame-Methode setmenubar(jmenubar menuleiste) zu einem Frame hinzugefügt Klasse JMenu ist eine Unterklasse von JMenuItem: Konstruktor: JMenu(String label) erzeugt JMenu mit Titel label Nützliche Methoden JMenuItem add(jmenuitem item) fügt JMenuItem item zum JMenu add(string label) erzeugt JMenuItem label und fügt es ans Ende des Menus an (MenuItem wird zurückgegeben) addseparator() fügt einen Separator ans JMenu an insert(jmenuitem item, int pos) fügt Item item an der Stelle pos ins JMenu ein insertseparator(int pos) fügt Separator an der Stelle pos ein 35 von von 70

10 Klasse JMenuItem JMenuItem Methoden erzeugt einen ActionEvent, falls das betroffene JMenuItem ausgewählt wird und aktiv ist Es muss nicht bei jedem JMenuItem ein ActionListener registriert sein Es kann auch nur ein Listener beim JMenu selbst registriert sein Die ActionEvents eines Items werden dann zum darüber liegenden JMenu propagiert Konstruktoren: JMenuItem(String label) erzeugt ein JMenu-Item label JMenuItem(String label, MenuShortCut shortcut) erzeugt ein JMenu-Item label mit der zugeordneten Tastenkombination shortcut boolean isenabled() gibt zurück, ob JMenu-Item aktiv ist setenabled(boolean b) aktiviert oder deaktiviert ein JMenu-Item String getlabel() gibt Label des JMenu-Items zurück setlabel(string name) setzt Label des JMenu-Items auf name addactionlistener(actionlistener o) registriert Object o als Listener setactioncommand(string command) setzt Befehlsname des JMenu-Items auf command (dieser kann aus dem ActionEvent-Objekt mit getactioncommand() ausgelesen werden) MenuShortcut getshortcut() gibt Shortcut des JMenu-Items zurück setshortcut(menushortcut c) setzt Shortcut des JMenu-Items auf c 37 von von 70 Menus Verwendung Menus Event-Behandlung Diese Objekte erzeugen keine JMenu-Events setmenubar() JFrame JMenuBar menubar.add() movemenu.add() JMenu JMenuItem JMenuItem JFrame JMenuBar JMenu rightitem.addactionlistener() JMenuItem JMenuItem JMenu JMenuItem JMenuItem JMenu JMenuItem JMenuItem JMenu JMenu 39 von von 70

11 7 Schritte, um eine Menuleiste zu erzeugen: Beispiel: PlayBalloon Applikation mit Menus 1. Neue Menuleiste erzeugen: JMenuBar menubar = new JMenuBar(); 2. Neues JMenu erzeugen: JMenu menuname = new JMenu( menutitel); 3. Neuen Menueintrag erzeugen und ins JMenu einfügen: JMenuItem einitem = new JMenuItem(itemName); menuname.add(einitem); Objekt als Listener des entsprechenden JMenu-Item-Events anmelden: einitem.addactionlistener(this); 4. Schritt 3 für alle JMenuItems wiederholen 5. JMenu zu Menuleiste hinzufügen: menubar.add(menuname); 6. Schritte 2 4 für alle Menus wiederholen 7. MenuLeiste in Frame einfügen: setmenubar(menubar); Umwandlung der PlayBalloon Applikation: Menus statt Buttons Code siehe Anhang 41 von von 70 Ein oder mehrfache Auswahl: JCheckBox Kleine Auswahl weiterer Komponenten ermöglicht (mehrfache) Auswahl aus einer (Check-)Liste. Eine JCheckBox hat einen Zustand -> ausgewählt oder nicht Erzeugung (Instanzierung): JCheckBox one = new JCheckBox ("one"); erzeugt eine JCheckBox mit Label "Cola" JCheckBox two = new JCheckBox ("two",true); erzeugt gleiche JCheckBox wie oben, die aber bereits ausgewählt ist Hinzufügen Listener registrieren: one.additemlistener(this); Behandlung der Events: muss ItemListener sein muss Methode public void itemstatechanged(itemevent e) zur Verfügung stellen Nützliche Methoden von JRadioButton-Objekten: String gettext() gibt Label der JCheckBox zurück boolean isselected() Zustand der JCheckBox (selektiert oder nicht) settext(string str) Setzt Label einer JCheckBox auf str setselected(boolean sel) Selektiert oder deselektiert 43 von von 70

12 RadioButton: JRadioButton Auswahl: JComboBox Es kann maximal ein Schalter einer Schaltergruppe eingeschaltet sein Instanzierung: one = new JRadioButton("one"); two = new JRadioButton("two"); ButtonGroup group = new ButtonGroup(); group.add(one); grous.add(two); Erzeugt eine Schaltergruppe c und einen Schalter red mit dem Label "one", der eingeschaltet ist. ButtonGroup wird nur bei Deklaration gebraucht Liste von Auswahlmöglichkeiten, von denen man eine auswählen kann. Erzeugung: JComboBox colourchoice = new JComboBox(); Hinzufügen: colourchoice.additem("rot"); colourchoice.additem("grün"); Behandlung der Events: Applet muss ActionListener sein Methoden des ActionEvent-Objekts: Object getsource() gibt JComboxBox zurück, die Ereignis erzeugte Object getselecteditem() gibt Item (als String) zurück, das Ereignis erzeugte Bsp: if (e.getsource() == colorchoice) { String achoice = (String)e.getSelectedItem(); -> achoice enthält schliesslich den String des angewählten Items 45 von von 70 Und viele andere mehr... Dialoge 47 von von 70

13 Dialoge: JDialog Standard Dialoge, z.b. JFileChooser Kleine Fenster für Meldungen und Benutzer(nach)fragen können modal zu anderem Window sein, d.h. parent Window lässt keine Eingabe zu solange JDialog sichtbar. Konstruktoren: JDialog(JFrame Parent); JDialog(JFrame parent, String title); wichtige Methoden resize(int breite, int hoehe) setzt Fenstergrösse show() macht JDialog sichtbar setvisible(boolean b) macht un- /sichtbar setmodal(boolean b) setzt Modalität des Dialogs class MyDialog extends JDialog implements ActionListener { JButton yes,no; boolean _yes; MyDialog (JFrame f, String name) { super(f, name); resize(200,100); setlayout (new FlowLayout()); yes = new Button("yes"); no = new Button("no"); yes.addactionlistener(this);; no.addactionlistener(this); this.setmodal(true); add(yes); add(no); public boolean yespressed() {return _yes; public void actionperformed (ActionEvent e) { _yes = e.getsource() == yes; setvisible(false); 49 von 70 erzeugt Dialog-Fenster, um ein File auszuwählen Deklaration: private JFileChooser fc; Initialisierung: fc = new JFileChooser(); int returnval = fc.showopendialog(this); oder int returnval = fc.showsavedialog(this); Verarbeitung: if (returnval == JFileChooser.APPROVE_OPTION) {.// ok else {System.out.println("canceled"); Name des ausgewählten Files: filename = fc.getselectedfile().getname(); Pfad des ausgewählten Files: path = fc.getselectedfile().getpath(); Weitere Einstellungsmöglichkeiten Filter, Directory, Standard Dialogbox JOptionPane.showMessageDialog(frame, "Eggs are not supposed to be green.", "Inane error",joptionpane.error_message); 50 von 70 Übung Erstellen Sie einen modalen JDialog, zur Anzeige einer Fehlermeldung, die durch Drücken eines ok-knopfes geschlossen werden kann. Anordnungsverwalter 51 von von 70

14 Anordnungsverwalter Flussanordnung: FlowLayout Komponenten eines GUI werden i.d.r. nicht von Hand ausgerichtet, da aufwendig und wenig flexibel Swing definiert zu diesem Zweck verschiedene Layout-Manager die bestimmen, wie die Komponenten ausgelegt werden Die Frame/Panel Methode validate ordnet die Komponenten entsprechend an (nötig falls Komponenten zur Laufzeit hinzugefügt wurden) Die wichtigsten Layout-Manager: FlowLayout: in der Mitte zentriert; Default für Applets BorderLayout: in 5 Regionen unterteilt GridLayout: GUI Kompontenten in Raster angeordnet GridBagLayout: Raster angeordnet mit Constraints Default für Applets Komponenten in einer Reihe von links nach rechts zentriert zum Fenster, Reihenfolge entspricht den add()- Befehlen Erzeugung: FlowLayout layout = new FlowLayout(); FlowLayout, Reihen zentriert FlowLayout layout= new FlowLayout(FlowLayout.LEFT); FlowLayout, Reihen linksbündig Layout setzen setlayout(layout); public void init() { setlayout(new FlowLayout()); add(new Button("Ok")); add(new Button("Open")); add(new Button("Close")); 53 von von 70 Anordnung an den Rändern: BorderLayout MatrixAnordnung: GridLayout Default bei eigenständigen Anwendungen Komponenten entlang der Fensterseiten teilt das Fenster in 5 Felder ein: North, South, East, West, Center Nur eine Komponente pro Feld möglich Randfelder werden zuerst angelegt. Feld Center belegt sodann den verbleibenden Platz So füllen z.b. Schieberegler immer ganze Seitelänge aus Erzeugung BorderLayout layout = new BorderLayout(); Borderlayout ohne Zwischenräume zwischen den Komponenten BorderLayout layout = new BorderLayout(10,20); Borderlayout mit 10 Pixel horizontaler und 20 Pixel vertikaler Zwischenraum zwischen den Komponenten Layout setzen: setlayout(layout); oder direkt setlayout(new BorderLayout()); public void init() { setlayout(new BorderLayout()); add(borderlayout.north,new Button("North")); add(borderlayout.south,new Button("South")); add(borderlayout.west,new Button("West")); add(borderlayout.east,new Button("East")); add(borderlayout.center,new Button("Center")); Komponenten Reihen- und Kolonnenweise anordnen Reihenfolge entspricht den add()- Befehlen (Leserichtung l.r.o.u) Erzeugung: GridLayout layout = new GridLayout(int rows, int cols); rows = -1 -> beliebige Anzahl Reihen GridLayout layout = new GridLayout(int rows, int cols, int hgap, int vgap); wie oben aber mit Abstand zwischen den Komponenten Layout setzen setlayout(layout); public void init() { setlayout(new GridLayout(-1,2)); add(new Button("1")); add(new Button("2")); add(new Button("3")); add(new Button("4")); add(new Button("5")); add(new Button("6")); 55 von von 70

15 Komponentenbehälter Basis: Container Ist abstrakte Oberklasse aller Komponenten, die andere Komponenten enthalten können (Bsp. JComponent, JPanel) Container (und Unterklassen) können selber in Container eingebettet sein Container Behälter Die wichtigsten Methoden sind: JPanel setlayout(layoutmanager layout) setzt den Layout-Manager der Komponente auf layout add(component komponente) fügt die Komponente komponente zur aktuellen Komponente hinzu remove(component komponente) entfernt Komponente komponente von aktueller Komponente validate() Führt einen neuen Layout aus unter Verwendung des aktuellen Layout- Managers (nötig, nachdem einzelne Komponenten unsichtbar/sichtbar gemacht wurden) 57 von von 70 Konkreter Behälter: JPanel Übung Komponente, die zur Gruppierung von anderen Komponenten dient Komponenten innerhalb eines JPanels werden gemäss dem entsprechenden Layout-Manager angeordnet ist eine Unterklasse der Klasse Container Erstellen sie mit den bekannten Anordnungsverwaltern und Elementen (inkl. Panel) ein GUI, das wie untenstehendes Beispiel aussieht. Vorgehen, um Komponenten mit JPanel zu gruppieren: JPanel erzeugen Komponenten zu JPanel hinzufügen Panel zu anderen Container hinzufügen Erzeugung JPanel p1 = new JPanel(new BorderLayout()) erzeugt ein Panel mit BorderLayout-Manager JPanel p2 = new JPanel(new FlowLayout(FlowLayout.RIGHT)) erzeugt Panel mit LayoutManager Komponenten zu Panel hinzufügen button b1 = new Button("button 1"); button b2 = new Button("button 2"); p2.add(b1); p2.add(b2); p1.add(borderlayout.south,p2); 59 von von 70

16 Look and Feel Plattform unabhängig Die Anwendung soll unabhängig von der Plattform gleich aussehen try {UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); catch (Exception e) {System.out.println("L&F not found"); Look and Feel Plattform abhängig Die Anwendung soll sich wie eine "native" Anwendung auf der entsprechenden Plattform aussehen. try {UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); catch (Exception e) {System.out.println("L&F not found"); Nimbus Nimbus Einstellung in main() noch bevor das erste Fenster geöffnet wird 61 von von 70 Plattformunabhänge Look and Feel Nativer Look And Feel Plattformunabhänge Look and Feels Angepasst an jeweilige Plattform Metal (Default) and Nimbus Look and Feel XP, Vista, Win 7, Mac "javax.swing.plaf.metal.metallookandfeel" "com.sun.java.swing.plaf.nimbus.nimbuslookandfeel" 63 von von 70

17 Zusammenfassung Anhang: JFC Klassenbibliothek Applets und Applikationen Kommandozeilen Anwendung Anwendungen mit GUI JFC/Swing JMenu Weitere Komponenten Layouts Look & Feel 65 von von 70 JFC Klassenbibliothek Anhang: PlayBalloon Applikation mit Menus public class MenuBalloon extends JFrame implements ActionListener, WindowListener { private Balloon myballoon; private JMenuItem growitem, shrinkitem; private JMenuItem leftitem, rightitem; public static void main(string[] args) { MenuBalloon f = new MenuBalloon(); f.setsize(300,300); f.setvisible(true); public MenuBalloon() { settitle("balloon"); setlayout(new FlowLayout()); JMenuBar menubar = new JMenuBar(); JMenu sizemenu = new JMenu("Size"); growitem = new JMenuItem("Grow"); sizemenu.add(growitem); growitem.addactionlistener(this); // Fortsetzung Constructor shrinkitem = new JMenuItem("Shrink"); sizemenu.add(shrinkitem); shrinkitem.addactionlistener(this); menubar.add(sizemenu); JMenu movemenu = new JMenu("Move"); leftitem = new JMenuItem("Left"); movemenu.add(leftitem); leftitem.addactionlistener(this); movemenu.addseparator(); rightitem = new JMenuItem("Right"); movemenu.add(rightitem); rightitem.addactionlistener(this); menubar.add(movemenu); setjmenubar(menubar); myballoon = new Balloon(20, 50, 50); this.addwindowlistener(this); 67 von von 70

18 Anhang:...PlayBalloon Applikation mit Menus Anhang: Beenden von JFC Anwendungen public void actionperformed (ActionEvent event) { if (event.getsource() == growitem){ myballoon.changesize(10); if (event.getsource() == shrinkitem){ myballoon.changesize(-10); if (event.getsource() == leftitem){ myballoon.moveleft(); if (event.getsource() == rightitem){ myballoon.moveright(); repaint(); public void paint (Graphics g) { myballoon.display(g); public void windowclosing(windowevent event) {. // // windows listener Methoden // end class MenuBalloon Menü-Elemente (Items) Menü-Elemente (Items) Reagieren auf Windows Event Mittels WindowListener(wie AWT) System.exit(0) bei Closing Event von Fenster aufrufen meist als anonyme Klasse implementiert this.addwindowlistener ( new WindowAdapter() { public void windowclosing(windowevent e){ System.exit(0); Mittels defaultclosingoperation Eigenschaft des JFrames festlegen frame.setdefaultcloseoperation(jframe.exit_on_close) Public class Balloon { gleich wie vorher ); 69 von von 70

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

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

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

Swing Lernen am Code Teil 1

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

Mehr

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

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

Mehr

Objektorientierte Software-Entwicklung

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

Mehr

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Einführung in die Programmierung Blockkurs Java

Einführung in die Programmierung Blockkurs Java Michael Bader 19. 25. Februar 2003 Donnerstag Inhaltsübersicht Java pur die Java-Welt außerhalb von BlueJ Adressierung von Klassen und Paketen Java Applications Klassenmethoden und -variablen Ein- und

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

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

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

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

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

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

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

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

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

Mehr

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

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

Grafische Benutzeroberflächen mit Swing

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

Mehr

Swing 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

Applications Applets (eingeschränkte Rechte)

Applications Applets (eingeschränkte Rechte) 1 Arten von Java-Programmen Man unterscheidet 2 verschiedene Arten von Java-Programmen: Applications Applets (eingeschränkte Rechte) Erstere sind eigenständige Programme. Letztere sind "kleine" Programme,

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

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

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer

Applets Belebung von Webseiten. Dipl.-Ing. Wolfgang Beer Applets Belebung von Webseiten Dipl.-Ing. Wolfgang Beer Was sind Applets? Java Klassen, die spezielle Richtlinien befolgen, um: "in Internet-Browsern lauffähig zu sein" Somit ist, komplexere Funktionalität,

Mehr

04 - Actions. Actions

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

Mehr

GRAFISCHE 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

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

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

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

Mehr

Session 1: Classes and Applets

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

Mehr

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

Klassen in Java. Klassen

Klassen in Java. Klassen Klassen in Java Klassen Klassen beschreiben Objekte, die abstakte oder konkrete Sachverhalte modellieren. Objekte sind durch einen Status gekennzeichnet (State). Der Status eines Objektes ergibt sich aus

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

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

Klausur vom 14. Juni 2004. Informatik 4

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

Mehr

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

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

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

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

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

von Anja Austermann Drag and Drop

von Anja Austermann Drag and Drop von Anja Austermann Drag and Drop »Drag and Drop«ist die Bezeichnung für den Datentransfer zwischen unterschiedlichen Anwendungen mit grafischer Benutzeroberfläche. Zur Zeit arbeitet Drag and Drop in Java

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

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

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

Mehr

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

SWING. DVG2-09 -Swing 1

SWING. DVG2-09 -Swing 1 SWING DVG2-09 -Swing 1 GUIs Swing stellt eine Menge von Klassen zur Verfügung, mit deren Hilfe man in Java portable GUIs programmieren kann. GUI: Graphical User Interface (Grafische Nutzer Schnittstelle)

Mehr

Interaktive Elemente, GUI-Programmierung

Interaktive Elemente, GUI-Programmierung Softwaretechnik für IM, WS2015/2016 http://knopper.net/bw/swt/ Übung 4 Interaktive Elemente, GUI-Programmierung 1. Schreiben Sie ein Programm (wahlweise als Applet oder Applikation, oder beides), das die

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

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

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

Mehr

Aufbau einer Swing-Applikation

Aufbau einer Swing-Applikation SWING GUIs Swing stellt eine Menge von Klassen zur Verfügung, mit deren Hilfe man in Java portable GUIs programmieren kann. GUI: Graphical User Interface (Grafische Nutzer Schnittstelle) GUIs sind grafische

Mehr

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

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

Mehr

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

GUI Design. Universität Paderborn Prof. Dr. Stefan Böttcher. Java Swing und AWT GUI Design Java Swing und AWT 1 Gui Design Von Hand Mittels visuellem GUI Designer 2 Warum von Hand? Grundkonzepte erlernen Zum Verständnis des von GUI Designern generierten Codes unerlässlich GUI Designer

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

5. Das Java AWT (II) Components und Container

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

Mehr

Übersicht. 1 Vorbemerkungen zu Sequenzdiagrammen. 2 Sequenzdiagramm aus Code ableiten. 3 Sequenzdiagramm konstruieren und in Java implementieren

Übersicht. 1 Vorbemerkungen zu Sequenzdiagrammen. 2 Sequenzdiagramm aus Code ableiten. 3 Sequenzdiagramm konstruieren und in Java implementieren Globale Übung Informatik 2, Blatt 7 Globale Übung Informatik 2, Blatt 7 Übersicht Globale Übung Informatik 2 im Sommersemester 2010 Blatt 7, Aufgaben 27-28 1 Vorbemerkungen zu Sequenzdiagrammen 2 Sequenzdiagramm

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

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

Serie 3: Designbeschreibung Verantwortlich für Rose-Projekt und Designbeschreibungen Dang, Quoc Anh / Phan, Ngoc Diep / Xiongjie Ding

Serie 3: Designbeschreibung Verantwortlich für Rose-Projekt und Designbeschreibungen Dang, Quoc Anh / Phan, Ngoc Diep / Xiongjie Ding DESIGNBESCHREIBUNG. 1. Allgemeines.? GeoViewer ist eine menügesteuerte graphische Java-Applikation. VonGEO-Record wird die vordefinierte geometrische Konfiguration geladen, im GeoProver-Paket berechnet

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

GUI-Programmierung mit Java-Swing

GUI-Programmierung mit Java-Swing GUI-Programmierung mit Java-Swing Michael Dienert 18. Oktober 2010 Inhaltsverzeichnis 1 Was ist Swing? 2 1.0.1 Ein sehr gutes Beispiel..................... 3 1.0.2 Eine sehr schnelle Alternative zu Swing............

Mehr

Graphische Programmierung: GUIs: graphical user interfaces

Graphische Programmierung: GUIs: graphical user interfaces Graphische Programmierung: GUIs: graphical user interfaces Ziel: Java -Programmierung und Handhabung von graphischen Benutzeroberflächen (in Applets) mehrere Fenster Fenster-Eigenschaften: aktiv oder inaktiv

Mehr

3-schichtige Informationssystem-Architektur

3-schichtige Informationssystem-Architektur 3-schichtige Informationssystem-Architektur plattformunabhängig beliebige Endgeräte kein Konfigurationsaufwand plattformunabhängig objektorientierte Architektur Server: Anwendungslogik verteilte Datenbank:

Mehr

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

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

Mehr

Objektorientierte Softwareentwicklung

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

Mehr

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi 06.09.10 1

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi 06.09.10 1 Kapitel 1 Einstieg in Java Dr. Elham Firouzi 06.09.10 1 1 : Einstieg in Java Einleitung Ein erstes Beispiel Berner Fachhochschule Entwicklung von Java-Programmen Applikationen Applets Vor und Nachteile

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

Ansonsten VIEL SPAß! Nicholas Ohs (GK 11 IF 2)

Ansonsten VIEL SPAß! Nicholas Ohs (GK 11 IF 2) !!!ACHTUNG!!! Wenn jemand Rechtschreib- oder Grammatikfehler findet, kann er sie behalten. Ich habe diesen Text nicht Korrektur gelesen. Deshalb bitte: Inhaltliche Fehler MELDEN!!! Ansonsten VIEL SPAß!

Mehr

D:\daten\tbz\TTT\ttt_framework\TTT.java. D:\daten\tbz\TTT\ttt_framework\TTT.java

D:\daten\tbz\TTT\ttt_framework\TTT.java. D:\daten\tbz\TTT\ttt_framework\TTT.java D:\daten\tbz\TTT\ttt_framework\TTT.java D:\daten\tbz\TTT\ttt_framework\TTT.java 1: /* TTT.java */ 2: /* Hauptklasse fuer Tic Tac Toe mit Java AWT (GUI) */ 3: /* benoetigt Java 1.2 oder hoeher */ 4: /*

Mehr

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

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

Mehr

Java Lab 2006/12/13 Client

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

Mehr

Donnerstag, 16.07.2009 09:00 11:00 Uhr (2 Zeitstunden) Hörsaal 1

Donnerstag, 16.07.2009 09:00 11:00 Uhr (2 Zeitstunden) Hörsaal 1 Klausur Termin und Ort Donnerstag, 16.07.2009 09:00 11:00 Uhr (2 Zeitstunden) Hörsaal 1 Als die drei wesentlichen Merkmale der objektorientierten Programmierung werden Kapselung, Vererbung (Polymorphie)

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

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

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

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

Java Beans. http://java.sun.com/beans/

Java Beans. http://java.sun.com/beans/ Java Beans http://java.sun.com/beans/ Software Komponenten Eine Software Komponente ist ein eigenständiges, flexibles und einfach wieder verwendbares Stück Software. In Java: + Plattformunabhängigkeit

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

Mehr

Appletprogrammierung

Appletprogrammierung Appletprogrammierung 362 Übersicht zum Vorlesungsinhalt zeitliche Abfolge und Inhalte können variieren Appletprogrammierung HTML Methoden eines Applets AppletViewer Applikation zu Applet Flackernde Applets

Mehr

Grundlagen der Informatik für Ingenieure I. 8. AWT - Abstract Window Toolkit Teil 1

Grundlagen der Informatik für Ingenieure I. 8. AWT - Abstract Window Toolkit Teil 1 8. AWT - Abstract Window Toolkit Teil 1 8.1.1 Labels 8.1.2 Buttons 8.1.3 Check Boxes 8.1.4 Radio Buttons 8.1.5 Choice Menus 8.1.6 Text Fields 8.2.1 Flow Layout 8.2.2 Grid Layout 8.2.3 Border Layout.1 8

Mehr

Arbeitsblatt 5 EAD II NetBeans

Arbeitsblatt 5 EAD II NetBeans Arbeitsblatt 5 EAD II NetBeans Graphische Oberfläche für Uhrenanzeige mit NetBeans Für die Einführung in die Verwendung von NetBeans erstellen wir die graphische Oberfläche für die Uhr nun mit NetBeans.

Mehr

Teil 5: Benutzeroberflächen 5.2 Einführung GUI-Programmierung Prof. Dr. Max Mühlhäuser FG Telekooperation TU Darmstadt

Teil 5: Benutzeroberflächen 5.2 Einführung GUI-Programmierung Prof. Dr. Max Mühlhäuser FG Telekooperation TU Darmstadt Grundzüge der Informatik 1 Teil 5: Benutzeroberflächen 5.2 Einführung GUI-Programmierung Prof. Dr. Max Mühlhäuser FG Telekooperation TU Darmstadt AWT und SWING AWT = Abstract Window Toolkit Package java.awt

Mehr

GUI-Programmierung - Einführung

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

Mehr

Probeklausur: Programmierung WS04/05

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

Mehr

Java GUI und Applet Grundlagen

Java GUI und Applet Grundlagen In diesem Kursteil Kursübersicht Modul 1 : Die Entwicklung von Java GUIs Modul Einleitung Lektion 1 - Java GUI Grundlagen Lektion 2 - Layout Manager Lektion 3 - Kreieren komplexer Layouts Kreieren eines

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

Objekt-Orientierte Programmierung

Objekt-Orientierte Programmierung Objekt-Orientierte Programmierung Ein OO-Programm modelliert eine Anwendung als eine Welt von Objekten, die miteinander in Beziehung stehen ( später). Ein Objekt kann andere Objekte erzeugen. Ein Objekt

Mehr