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

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

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

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

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

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

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

Techniken der Projektentwicklung

Techniken der Projektentwicklung Einleitung Architektur Swing Beispiele Aufgabe Techniken der Projektentwicklung Swing Concepts Ingo Lütkebohle Termin 11 Ingo Lütkebohle Techniken der Projektentwicklung 1 Einleitung Architektur Swing

Mehr

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

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

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

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

Beispiellösung der Klausur zu Objektorientierte Programmierung mit Java 09. Juli 2004 (SS 2004)

Beispiellösung der Klausur zu Objektorientierte Programmierung mit Java 09. Juli 2004 (SS 2004) Beispiellösung der Klausur zu Objektorientierte Programmierung mit Java 09. Juli 2004 (SS 2004) A Bearbeitungszeit: 120 Minuten NICHT MIT BLEISTIFT SCHREIBEN! Name: Vorname: Matrikelnummer: Nr Max Bewertung

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

In Track B generell gute Java-Kenntnisse vorausgesetzt!

In Track B generell gute Java-Kenntnisse vorausgesetzt! Gliederung Track A (Technik, montags): A1. Eingabe- und Ausgabetechnik bei Rechnersystemen A2. Technik der digitalen Bildverarbeitung A3. Technik der digitalen Tonverarbeitung A4. Technik der digitalen

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

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:

Mehr

Grafikprogrammierung in Java: Grundlagen

Grafikprogrammierung in Java: Grundlagen Grafikprogrammierung in Java: Grundlagen 11.1 Grundlagen 11.2 Grafische Grundelemente 11.3 Fensterklassen 11.4 Ereignisse und Widgets 11.5 Applets 11.6 Die Swing-Klassen 11.1 Grundlagen 11-1 Schnittstellen

Mehr

Java Design und Event Handling. Natascha Hoebel Professur Prof. R. V. Zicari. AWT SWING Layout Design Event Handling

Java Design und Event Handling. Natascha Hoebel Professur Prof. R. V. Zicari. AWT SWING Layout Design Event Handling Java Design und Event Handling Natascha Hoebel Professur Prof. R. V. Zicari AWT SWING Layout Design Event Handling Benutzerschnittstellen User Interfaces (UI) UI: GUI, WEB-Schnittstellen GUI: interaktive

Mehr

Ab jetzt: Java ohne Kara

Ab jetzt: Java ohne Kara Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen JavaKara -> Java Ablauf in JavaKara: 1. Programm schreiben 2. Kompilieren 3. Programm starten Ablauf in Java

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

Kapitel 14. Systemarchitektur

Kapitel 14. Systemarchitektur 1 Kapitel 14 Ziele 2 Grundprinzipien der verstehen Schichtenarchitekturen kennenlernen Modelle und Programme mit Paketen strukturieren Eine Architektur für eine einfache Bankanwendung konstruieren Grundprinzipien

Mehr

Test von Oberflächen. 6. Test von Software mit Nutzungsoberflächen. Erinnerung: GUI-Aufbau mit Swing. Achtung: Swing und Threads

Test von Oberflächen. 6. Test von Software mit Nutzungsoberflächen. Erinnerung: GUI-Aufbau mit Swing. Achtung: Swing und Threads 6. Test von Software mit Nutzungsoberflächen Ansätze zum Oberflächentest Erinnerung: GUI-Aufbau mit Swing Einführung in FEST Systematische Nutzung von FEST Teststrategien Capture& Replay Vorstellung von

Mehr

Entwicklung von E-Learning Komponenten zur Computergrafik

Entwicklung von E-Learning Komponenten zur Computergrafik F Entwicklung von E-Learning Komponenten zur Computergrafik Development of E-learning components for computer graphics Markus Stollenwerk, Rainer Friesen und Daniel Valentin Master Projektstudium Betreuer:

Mehr

GUI-Programmierung - Einführung

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

Mehr

Objektorientierte Programmierung OOP Programmieren mit Java

Objektorientierte Programmierung OOP Programmieren mit Java Aufgaben: 2 JDK/SDK/JRE und Java Entwicklungswerkzeuge Objektorientierte Programmierung OOP Programmieren mit Java 1. Installation von Java 2. Erstes Java Programm Hello World 3. Dreimal Hallo Olten 2

Mehr

Kurs: Programmieren in Java

Kurs: Programmieren in Java Kurs: Programmieren in Java Tag 5 G R U N D L A G E N K I U N D S P I E L E - P R O G R A M M I E R U N G G R A F I K K O N Z E P T E B I L D V E R A R B E I T U N G M U S T E R E R K E N N U N G O B J

Mehr

Java Desktop Anwendungen

Java Desktop Anwendungen 5 1 Java Desktop Anwendungen das Problem: Desktop-Anwendungen werden mit Hilfe der Swing- Bibliothek programmiert, aber die Swing-Bibliothek ist riesig und unübersichtlich es gab kein Programmiergerüst

Mehr

Hello World in Java. Der Weg zum ersten Java-Programm

Hello World in Java. Der Weg zum ersten Java-Programm Vorwort Hello World in Java Der Weg zum ersten Java-Programm Diese Anleitung wurde unter Windows XP verfasst. Grundsätzlich sollte sie auch unter späteren Windows Versionen wie Windows Vista oder Windows

Mehr

Tutorium Java Ein Überblick. Helge Janicke

Tutorium Java Ein Überblick. Helge Janicke Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren

Mehr

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

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

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

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

Mehr

Kapitel 6. Vererbung

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

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Kapitel 6. Vererbung

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

Mehr

Schritt 4: Hallo Enterprise Bean

Schritt 4: Hallo Enterprise Bean Prof. Dr. Th. Letschert FB MNI JEE Schritt 4: Hallo Enterprise Bean Einstieg: EJBs erzeugen und nutzen Meine erstes EJB Projekt Enterprise Beans sind eine Backend Technologie, die mit unterschiedlichen

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

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

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

Mehr

4. Objektorientierte Programmierung

4. Objektorientierte Programmierung 4. Objektorientierte Programmierung In Abschnitt 3 ging es um fundamentale Basiskonzepte von Java, wie es sie in jeder anderen gängigen Programmiersprache so oder so ähnlich auch gibt. In Abschnitt 4 nun

Mehr

Erste Schritte in Java

Erste Schritte in Java Erste Schritte in Java Im einführenden Kapitel haben wir die Grundbegriffe der imperativen Programmierung an einem Beispiel (Algorithmus von Euklid) kennengelernt. In diesem Kapitel sehen wir uns an einem

Mehr

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014) Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

Einführung in die GUI Programmierung mit Java

Einführung in die GUI Programmierung mit Java GUI-Programmierung Einführung in die GUI Programmierung mit Java Christian Knauer GUI = Graphical User Interface = Grafische Benutzeroberfläche Graphische Darstellung der Anwendungsdaten und Interaktionsmöglichkeiten

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

5 Projekt Bankverwaltung

5 Projekt Bankverwaltung Kapitel 5 Bankverwaltung (Lösung) Seite 1/7 5 Projekt Bankverwaltung 5.1 Festlegen der Schnittstelle Bevor du mit der Programmierung beginnst, musst du dir einige Gedanken über die Schnittstelle zwischen

Mehr

Programmierung. Programme, Compiler, virtuelle Maschinen, Java

Programmierung. Programme, Compiler, virtuelle Maschinen, Java Programmierung Programme, Compiler, virtuelle Maschinen, Java Programme Ein Programm ist eine Folge von Anweisungen, die einem Computer sagen, was er tun soll tuwas.c for(int i=0; i=0; i

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

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

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org)

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Dynamische Plug-ins mit Eclipse 3 Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Überblick Die Ausgangslage Dynamische Plug-ins Warum? Eclipse 3 Die OSGi-basierte

Mehr

Erste Schritte zum lauffähigen Java Programm

Erste Schritte zum lauffähigen Java Programm Erste Schritte zum lauffähigen Java Programm Diese kleine Einführung ist eine Hilfe für Studenten der Vorlesung SWT I zur Meisterung der sich ergebenden Hürden bei der Erstellung eines ersten kleinen Java-Programms.

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung Ludwig-Maximilians-Universität München Institut für Informatik Programmierung und Softwaretechnik (PST) Prof. Wirsing 6. Mai 2009 1 Der Name Java

Mehr

Praktikum Informatik - 1

Praktikum Informatik - 1 Hochschule der Medien Stuttgart Studiengang Audiovisuelle Medien Praktikum Informatik - 1 Aufgabensammlung Prof. Uwe Schulz, Prof. Dr. Simon Wiest Organisation des Informatik Praktikums Sommersemester

Mehr

Projekt Su-do-ku Generator

Projekt Su-do-ku Generator Projekt Su-do-ku Generator unter der Leitung von Univ.-Ass. Dr. Michael Hahsler verfasst für Abteilung für Informationswirtschaft Wirtschaftsuniversität Wien, UZA II 3.Ebene Augasse 2-6, A-1090 Wien, Austria

Mehr

Beuth Hochschule JDK und TextPad WS14/15, S. 1

Beuth Hochschule JDK und TextPad WS14/15, S. 1 Beuth Hochschule JDK und TextPad WS14/15, S. 1 JDK und TextPad Der TextPad ist ein ziemlich ausgereifter Text-Editor, den man auch als einfache ("noch durchschaubare") Entwicklungsumgebung z.b. für Java-Programme

Mehr

Whitepaper 428-01 VCI - Virtual CAN Interface Einbindung in LabWindows/CVI

Whitepaper 428-01 VCI - Virtual CAN Interface Einbindung in LabWindows/CVI Whitepaper 428-01 VCI - Virtual CAN Interface Einbindung in LabWindows/CVI The expert for industrial and automotive communication IXXAT Hauptsitz Geschäftsbereich USA IXXAT Automation GmbH IXXAT Inc. Leibnizstr.

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung orientierte Programmierung Motivation e und Klassen Kapselung und Geheimnisprinzip Umgang mit einzelnen en Interaktion von en Klassenmethoden und Klassenvariablen Entwurf von Klassen Inhalt der Vorlesung

Mehr

JAVA. Ein kurzer Überblick. Thomas Karp

JAVA. Ein kurzer Überblick. Thomas Karp JAVA Ein kurzer Überblick Thomas Karp WAS IST JAVA? Java ist eine fast rein objektorientierte Sprache nicht JavaScript eine professionelle Sprache eine im Unterricht weit verbreitete Sprache für verschiedene

Mehr

Kapitel 7: GUI-Rahmenwerk: AWT & Swing

Kapitel 7: GUI-Rahmenwerk: AWT & Swing Kapitel 7: GUI-Rahmenwerk: AWT & Swing 7.1 Aufbau & Funktionsweise 7.2 Beispiel Counter im Detail 7.3 Grafikprogrammierung an Beispielen 'The night is fine', the Walrus said, 'Do you admire the view?'

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

Vorbereitung zu Praktikum 3

Vorbereitung zu Praktikum 3 Vorbereitung zu Praktikum 3 Menü-Toolkit und Command Pattern Fallstudie zu Vererbung und Polymorphie: "Menü-Toolkit" Anwenderfreundliche Programme werden mit Menüs gesteuert In objektorientierten Anwendungen

Mehr

Klassendefinitionen verstehen

Klassendefinitionen verstehen Klassendefinitionen verstehen Java-Programme bestehen aus Klassendefinitionen und sonst nichts! 1 1.0 Konzepte Felder Konstruktoren Methoden Parameter Zuweisungen ( = ) Anweisungen bedingte Anweisungen

Mehr

Fortgeschrittene Objektorientierung

Fortgeschrittene Objektorientierung Fortgeschrittene Objektorientierung GUI-Programmieren in Java Gregor Snelting Andreas Lochbihler Universität Karlsruhe Lehrstuhl Programmierparadigmen 27. Mai 2008 Gregor Snelting (Universität Karlsruhe)

Mehr

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung 1. Begriffe Objektorientierte Programmierung mit C++ Prozedurale Programmierung Sprachen: C, Pascal, Cobol, Basic,... Objektorientierte Programmierung Sprachen: C++, C#, Java... Methode: - Gesamtproblem

Mehr

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

Mehr

5.6 Vererbung. Vererbung

5.6 Vererbung. Vererbung 5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug

Mehr

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv

Alexander Niemann. Das Einsteigerseminar Objektorientierte Programmierung in Java. bhv Alexander Niemann Das Einsteigerseminar Objektorientierte Programmierung in Java G bhv Inhaltsverzeichnis Vorwort 11 Einleitung 13 Lernen - Üben 13 Über dieses Buch 14 Ш11ШШШШ '. ш Ш Java 19 Die Geschichte

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

Grundlagen der Programmierung Prof. H. Mössenböck. 11. Objektorientierung

Grundlagen der Programmierung Prof. H. Mössenböck. 11. Objektorientierung Grundlagen der Programmierung Prof. H. Mössenböck 11. Objektorientierung Klasse = Daten + Methoden Beispiel: Positionsklasse class Position { private int x; private int y; void goleft() { x = x - 1; void

Mehr

Übungen zu Verteilte Systeme : Aufgabe zu Java-RMI (1)

Übungen zu Verteilte Systeme : Aufgabe zu Java-RMI (1) BEREICH DATENTECHNIK U VS 031 01 TH 02 Übungen zu Verteilte Systeme : Aufgabe zu Java-RMI (1) Aufgabenstellung : Es ist ein über RMI aktivierbarer generischer Problemlösungs-Server in Java zu entwickeln.

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

CLR CIL MCS ECMA-335. Linux.Ne t. 2005 Albrecht Liebscher, Erlanger Linux Tage

CLR CIL MCS ECMA-335. Linux.Ne t. 2005 Albrecht Liebscher, Erlanger Linux Tage C# CLR CIL MCS ECMA-335 Linux.Ne t Was ist.net? Microsoft Homepage:.NET is the Microsoft Web services strategy to connect information, people, systems and devices through software. Mono Handbuch:.Net besteht

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe 1 Kapitel 1 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm, Compiler, Einordnung von Java Ein einfaches Java-Programm erstellen, übersetzen und ausführen Java-Programme dokumentieren 3 Informatik

Mehr

Grundlagen der Informatik Übungen 1.Termin

Grundlagen der Informatik Übungen 1.Termin Grundlagen der Informatik Übungen 1.Termin Dr. Ing Natalia Currle-Linde Institut für Höchstleistungsrechnen 1 Kurzvorstellung Dr.-Ing. Natalia Currle-Linde linde@hlrs.de Institut für Höchstleistungsrechnen

Mehr

Einführung in das Microsoft.NET-Framework. Programmiersprache C# MEF Das Managed Extensibility Framework. André Kunz

Einführung in das Microsoft.NET-Framework. Programmiersprache C# MEF Das Managed Extensibility Framework. André Kunz Einführung in das Microsoft.NET-Framework Programmiersprache C# MEF Das Managed Extensibility Framework André Kunz 21.09.2010 1 In dieser Einführung bekommen Sie einen kurzen Einstieg in das.net-framework

Mehr

B7. Web-Programmierung mit Java

B7. Web-Programmierung mit Java B7. Web-Programmierung mit Java B7.1 Applets B7.2 Servlets B7.3 Java Server Pages (JSP) Literatur: Siehe http://java.sun.com/applets Ludwig-Maximilians-Universität München Prof. Hußmann Medientechnik B7-1

Mehr

Erweitern Sie ihren Tomcat um das AXIS-Framework und machen Sie ihn damit bereit für den Einsatz von Web Services:

Erweitern Sie ihren Tomcat um das AXIS-Framework und machen Sie ihn damit bereit für den Einsatz von Web Services: 0BBA Karlsruhe, Vorlesung Programmieren, Web Services 1BAufgabe 1 Tomcat um das AXIS-Framework erweitern : Erweitern Sie ihren Tomcat um das AXIS-Framework und machen Sie ihn damit bereit für den Einsatz

Mehr

EWA - JAVA - Teil 2 - Klassenbibliotheken und GUI

EWA - JAVA - Teil 2 - Klassenbibliotheken und GUI Vorlesungsreihe Entwicklung webbasierter Anwendungen EWA - JAVA - Teil 2 - Klassenbibliotheken und GUI Prof. Dr.-Ing. Thomas Wiedemann email: wiedem@informatik.htw-dresden.de HOCHSCHULE FÜR TECHNIK UND

Mehr

Einführung in die objektorientierte Programmierung mit Java - SS 2014

Einführung in die objektorientierte Programmierung mit Java - SS 2014 In Verlauf des Semesters wollen wir ein Memory-Spiel programmieren, das sich dem Spieler etwa so präsentieren soll wie auf der folgenden Bildschirmkopie: Zu den Regeln des Memory-Spiels siehe z.b. http://de.wikipedia.org/wiki/memory_(spiel)

Mehr

UNIVERSITÄT DORTMUND GUI-Programmierung mit JavaBeans

UNIVERSITÄT DORTMUND GUI-Programmierung mit JavaBeans GUI-Programmierung mit JavaBeans Dipl.-Inform. Christof Veltmann Lehrstuhl für Software-Technologie Universität Dortmund GUI-Programmierung mit JavaBeans Oberflächenprogrammierung mit Java GUI-Elemente

Mehr

Java Virtual Machine (JVM) Bytecode

Java Virtual Machine (JVM) Bytecode Java Virtual Machine (JVM) durch Java-Interpreter (java) realisiert abstrakte Maschine = Softwareschicht zwischen Anwendung und Betriebssystem verantwortlich für Laden von Klassen, Ausführen des Bytecodes,

Mehr

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

Effiziente Java Programmierung

Effiziente Java Programmierung Effiziente Java Programmierung Seminar Implementierung moderner virtueller Maschinen am Beispiel von Java SS 2009 von Reinhard Klaus Losse 20. Mai 2009 Gliederung Definition Effizienz Werkzeuge zum Messen

Mehr

Einführung in die Informatik 1 - Javainstallationsanleitung

Einführung in die Informatik 1 - Javainstallationsanleitung Einführung in die Informatik 1 - Javainstallationsanleitung Die Tutoren Stand: 19. Oktober 2009 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einfhrung in Java 1 1.1 Installation von Java unter Mac...............................

Mehr

Einführung zu den Übungen aus Softwareentwicklung 1

Einführung zu den Übungen aus Softwareentwicklung 1 Einführung zu den Übungen aus Softwareentwicklung 1 Dipl.-Ing. Andreas Riener Universität Linz, Institut für Pervasive Computing Altenberger Straße 69, A-4040 Linz riener@pervasive.jku.at SWE 1 // Organisatorisches

Mehr

Turtlegrafik und Game-Apps für Smartphones und Tablets

Turtlegrafik und Game-Apps für Smartphones und Tablets Game-Apps für Smartphones und Tablets Turtlegrafik und Game-Apps für Smartphones und Tablets www.java-online.ch www.adroid-turtlegrafik.ch www.jdroid.ch Programm 1. Teil: Vortrag mit Demos Warum Smartphone

Mehr

Das Anwendungsfenster

Das Anwendungsfenster Das Word-Anwendungsfenster 2.2 Das Anwendungsfenster Nach dem Start des Programms gelangen Sie in das Word-Anwendungsfenster. Dieses enthält sowohl Word-spezifische als auch Windows-Standardelemente. OFFICE-

Mehr

11.10.2010. Eine Einführung - FH Krefeld WS2010-11. NetBeans IDE

11.10.2010. Eine Einführung - FH Krefeld WS2010-11. NetBeans IDE NetBeans IDE 1 Entwicklungsumgebung: komplett in Java geschrieben läuft auf NetBeans Plattform wurde hauptsächlich für die Programmiersprache Java entwickelt unterstützt unter anderem C, C++ und dynamische

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Erste Schritte mit Eclipse

Erste Schritte mit Eclipse Erste Schritte mit Eclipse März 2008, KLK 1) Java Development Kit (JDK) und Eclipse installieren In den PC-Pools der HAW sind der JDK und Eclipse schon installiert und können mit dem Application Launcher

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