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

INE2 Java Applikationen, Swing/JFC. Anwendungen mit GUI Swing/JFC Menus Weitere Komponenten Layouts Look & Feel

INE2 Java Applikationen, Swing/JFC. Anwendungen mit GUI Swing/JFC Menus Weitere Komponenten Layouts Look & Feel INE2 Java Applikationen, Swing/JFC Anwendungen mit GUI Swing/JFC Menus Weitere Komponenten Layouts Look & Feel Frames und WindowEvents 2 von 57 Applikationen mit GUIs Die Klasse JFrame stellt ein Fenster

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

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

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

Mehr

Swing Lernen am Code Teil 1

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

Mehr

Objektorientierte Software-Entwicklung

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

Mehr

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

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

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

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

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

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

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

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

Java I Vorlesung 11 Graphische Oberflächen mit Swing

Java I Vorlesung 11 Graphische Oberflächen mit Swing Java I Vorlesung 11 Graphische Oberflächen mit Swing 5.7.2004 Swing Komponenten Layout-Manager Events Swing und Threads Die Java-Plattform 2 Die Java-Plattform 3 "Hello World" in Swing HelloWorldS.java

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Exkurs: Graphische Benutzeroberflächen FH Braunschweig/Wolfenbüttel Sommersemester 2009 1 / 22 Gliederung I Wiederholung Klassen, Objektorientierung (Kapitel 10,11) Exkurs:

Mehr

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

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

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

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

Hochschule der Medien Prof. Uwe Schulz 14. Juli 2010 Klausur Informatik, EDV-Nr. 40301 Seite 1 von 5. Teil 2: Aufgaben

Hochschule der Medien Prof. Uwe Schulz 14. Juli 2010 Klausur Informatik, EDV-Nr. 40301 Seite 1 von 5. Teil 2: Aufgaben Hochschule der Medien Prof Uwe Schulz 14 Juli 2010 Klausur Informatik, EDV-Nr 40301 Seite 1 von 5 Name: Matr Nr: Teil 2: Aufgaben Hilfsmittel: alle außer tragbare Computer und Nachbar Bearbeitungszeit:

Mehr

Grafische Benutzeroberflächen mit Swing

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

Mehr

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

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

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

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

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

Funktionale und Objekt-Orientierte Programmierkonzepte

Funktionale und Objekt-Orientierte Programmierkonzepte Funktionale und Objekt-Orientierte Programmierkonzepte Prof. Marc Fischlin, Wintersemester 15/16 Kapitel 17: GUI, Threads und verschachtelte Klassen 13. Oktober 2010 Dr.Marc Fischlin Kryptosicherheit 1

Mehr

GRAFISCHE 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

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

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

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

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

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

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

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

tentoinfinity Apps 1.0 EINFÜHRUNG

tentoinfinity Apps 1.0 EINFÜHRUNG tentoinfinity Apps Una Hilfe Inhalt Copyright 2013-2015 von tentoinfinity Apps. Alle Rechte vorbehalten. Inhalt der online-hilfe wurde zuletzt aktualisiert am August 6, 2015. Zusätzlicher Support Ressourcen

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

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

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,

Mehr

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

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

Mehr

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

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Kleines Handbuch zur Fotogalerie der Pixel AG

Kleines Handbuch zur Fotogalerie der Pixel AG 1 1. Anmelden an der Galerie Um mit der Galerie arbeiten zu können muss man sich zuerst anmelden. Aufrufen der Galerie entweder über die Homepage (www.pixel-ag-bottwartal.de) oder über den direkten Link

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

32.4 Anpassen von Menüs und Symbolleisten 795i

32.4 Anpassen von Menüs und Symbolleisten 795i 32.4 Anpassen von Menüs und Symbolleisten 795i Fortsetzung der Seiten in der 8. Auflage 32.4 Anpassen von Menüs und Symbolleisten 32.4.1 Anpassen von Menüs Die Menüs können um folgende Typen von Optionen

Mehr

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering 5 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger OPTSWE_SWE: 5 Programmentwicklung

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

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

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

Java Projekt: Tic Tac Toe + GUI

Java Projekt: Tic Tac Toe + GUI Java Projekt: Tic Tac Toe + GUI Rechnerpraktikum aus Programmierung im WS 2005/06 unter der Leitung von Dr. Michael Hahsler Tadeh Amirian (h0253821) 10.01.2006 1) Problemdefinition Beim TicTacToe Spiel

Mehr

INE2 Ereignisse, Anwendungen mit GUI

INE2 Ereignisse, Anwendungen mit GUI INE2 Ereignisse, Anwendungen mit GUI Merkmale und Aufba eines ereignisgesteuerten Programms MVC, Trennung GUI Logik Graphische Komponenten Layouts Look & Feel Ereignisse That's That's one one small small

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

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

2A Basistechniken: Weitere Aufgaben

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

Mehr

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

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

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung Nach dem Update auf die Version 1.70 bekommen Sie eine Fehlermeldung,

Mehr

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG Um mit IOS2000/DIALOG arbeiten zu können, benötigen Sie einen Webbrowser. Zurzeit unterstützen wir ausschließlich

Mehr

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

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

Mehr

Dokumentation des Projektes Tic Tac Toe

Dokumentation des Projektes Tic Tac Toe Praktikum aus Programmierung Dr. Michael Hahsler Dokumentation des Projektes Tic Tac Toe 0050230 1 Java Projekt: Tic Tac Toe 1. Inhaltsverzeichnis 1. Inhaltsverzeichnis... 2 2. Problemdefinition... 2 3.

Mehr

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista Allgemeines: Bitte lesen Sie sich diese Anleitung zuerst einmal komplett durch. Am Besten, Sie drucken sich diese Anleitung

Mehr

Visio 2013. Grundlagen. Linda York. 1. Ausgabe, Oktober 2013

Visio 2013. Grundlagen. Linda York. 1. Ausgabe, Oktober 2013 Visio 2013 Linda York 1. Ausgabe, Oktober 2013 Grundlagen V2013 2 Visio 2013 - Grundlagen 2 Einfache Zeichnungen erstellen In diesem Kapitel erfahren Sie wie Sie Shapes einfügen, kopieren und löschen was

Mehr

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Ab der Version forma 5.5 handelt es sich bei den Orientierungshilfen der Architekten-/Objektplanerverträge nicht

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

Artikel Schnittstelle über CSV

Artikel Schnittstelle über CSV Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte

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

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen

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

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld Sharing. Auf dem Bildschirm sollte folgendes Fenster erscheinen: Einleitung Unter MacOS X hat Apple die Freigabe standardmäßig auf den "Public" Ordner eines Benutzers beschränkt. Mit SharePoints wird diese Beschränkung beseitigt. SharePoints erlaubt auch die Kontrolle

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden. Track in Route umwandeln ACHTUNG: Ein Track kann nur dann in eine Route umgewandelt werden, wenn der Track auf Wegen gefahren wurde. Ein Querfeldein-Track kann nicht in eine Route umgewandelt werden, da

Mehr

Graphical User Interfaces

Graphical User Interfaces Graphical User Interfaces SEP 184 Toolkits es gibt verschiedene Toolkits (= Sammlungen von Klassen, Anbindungen an Betriebssystem, etc.) für grafische Oberflächen Abstract Windows Toolkit (AWT) Swing Standard

Mehr

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

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

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:

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

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool JBoss vorbereiten Wir haben ein zip-archiv mit JBoss 4.0.5 in /opt/jboss-4.0.5.zip hinterlegt. Entpacken Sie dieses in ihrem Homeverzeichnis an

Mehr

System-Update Addendum

System-Update Addendum System-Update Addendum System-Update ist ein Druckserverdienst, der die Systemsoftware auf dem Druckserver mit den neuesten Sicherheitsupdates von Microsoft aktuell hält. Er wird auf dem Druckserver im

Mehr

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme Novell Client Anleitung zur Verfügung gestellt durch: ZID Dezentrale Systeme Februar 2015 Seite 2 von 8 Mit der Einführung von Windows 7 hat sich die Novell-Anmeldung sehr stark verändert. Der Novell Client

Mehr

Delegatesund Ereignisse

Delegatesund Ereignisse Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses

Mehr

26. November 2007. EFS Übung. Ziele. Zwei Administrator Benutzer erstellen (adm_bill, adm_peter) 2. Mit adm_bill eine Text Datei verschlüsseln

26. November 2007. EFS Übung. Ziele. Zwei Administrator Benutzer erstellen (adm_bill, adm_peter) 2. Mit adm_bill eine Text Datei verschlüsseln EFS Übung Ziele Zwei Administrator Benutzer erstellen (adm_bill, adm_peter) Mit adm_bill eine Text Datei verschlüsseln Mit adm_peter einen Ordner verschlüsseln und darin eine Text Datei anlegen Dem Benutzer

Mehr

Excel Pivot-Tabellen 2010 effektiv

Excel Pivot-Tabellen 2010 effektiv 7.2 Berechnete Felder Falls in der Datenquelle die Zahlen nicht in der Form vorliegen wie Sie diese benötigen, können Sie die gewünschten Ergebnisse mit Formeln berechnen. Dazu erzeugen Sie ein berechnetes

Mehr

Installation der Konfigurationsdateien für alle Windows-Versionen bis einschließlich Microsoft Windows 7

Installation der Konfigurationsdateien für alle Windows-Versionen bis einschließlich Microsoft Windows 7 Installation der Konfigurationsdateien für alle Windows-Versionen bis einschließlich Microsoft Windows 7 Zur Arbeitserleichterung und für einen reibungslosen Übungsbetrieb ist es zwingend notwendig, sowohl

Mehr

Innere Klassen in Java

Innere Klassen in Java Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird

Mehr

Das Startmenü. Das Startmenü anpassen

Das Startmenü. Das Startmenü anpassen Das Startmenü Über das Startmenü gelangen Sie zu allen Programmen und Funktionen des Computers. Klicken Sie dazu auf die Schaltfläche Start. Die meistgenutzten Programme finden Sie in der linken Liste.

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

Erstellen eines Screenshot

Erstellen eines Screenshot Blatt 1 von 5 Erstellen eines Screenshot Einige Support-Probleme lassen sich besser verdeutlichen, wenn der Supportmitarbeiter die aktuelle Bildschirmansicht des Benutzers sieht. Hierzu bietet Windows

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

Eclipse 3.0 (Windows)

Eclipse 3.0 (Windows) Eclipse Seite 1 Eclipse 3.0 (Windows) 1. Eclipse installieren Eclipse kann man von der Webseite http://www.eclipse.org/downloads/index.php herunterladen. Eclipse ist für Windows, Mac und Linux erhältlich.

Mehr

Freigabe der Windows-Firewall und Verknüpfung der Pfade für die Druckvorlagen

Freigabe der Windows-Firewall und Verknüpfung der Pfade für die Druckvorlagen Freigabe der Windows-Firewall und Verknüpfung der Pfade für die Druckvorlagen Diese Dokumentation beschäftigt sich mit folgenden Themen: 1. Firewall-Freigabe auf dem Server (falls keine Datenbankverbindung

Mehr

Computeria Solothurn

Computeria Solothurn Computeria Solothurn Seniorinnen und Senioren entdecken den Computer und das Internet Sich mit «TeamViewer» von einem Supporter helfen lassen Diese Anleitung und die Illustrationen wurden unter Mac OS

Mehr

5. Abstrakte Klassen

5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,

Mehr