Grafische Benutzeroberflächen in JAVA

Größe: px
Ab Seite anzeigen:

Download "Grafische Benutzeroberflächen in JAVA"

Transkript

1 Grafische Benutzeroberflächen in JAVA Jan-Philipp Kappmeier Technische Universität Berlin

2 Inhalt 1 Swing-Einführung Einleitung Ein Fenster erstellen 2 Swing-Komponenten Einfache Komponenten Ereignisse und Listener Container-Komponenten Standarddialoge 3 Threads Einführung Multithreading Umgang mit rechenintensiven Arbeiten in Swing Animation in Swing 4 Java2D Manuelles Zeichnen 2 / 53

3 Einleitung Grafische Oberflächen in JAVA Java Foundation Classes (JFC) APIs für die Programmierung von grafischen Oberflächen in JAVA Abstract Window Toolkit (AWT) Swing Java2D Veraltet nicht Systemunabhängig Seit Java 1.2 (1998) Einheitliches Aussehen Accessibility Internationalization Drag & Drop 3 / 53

4 Einleitung Swing Was Swing kann Modular, Objektorientiert, nutzt MVC für Komponenten Plattformunabhängig Aussehen konfigurierbar mit Look-and-Feels einheitliche Designs, standard: Motif Standardsystem-Design möglich. (Unterstützt auf Windows, Linux, MacOS) Standardmäßig werden sehr viele (auch komplexe) Komponenten bereitgestellt Mittlerweile (spätestens ab Java 1.5) schnell 4 / 53

5 Einleitung Threads und Swing Swing ist nicht Threadsicher JAVA stellt immer den Event Dispatch Thread (EDT) bereit Swing-Komponenten dürfen nur im EDT erstellt werden Auch Zugriff auf Komponenten nur aus dem EDT Rechenintensive Arbeiten dürfen nicht im EDT stattfinden JAVA bietet verschiedene Hilfsklassen für diese Zwecke an 5 / 53

6 Einleitung Obligatorische Informationsquellen Java ist auch eine Insel (10. Auflage, mit Java 7) Swing Tutorials und Beispiele von Oracle Wie immer: die JAVA-API für das JDK 1.6 bzw. für Java 7 CoMa-Forum Google ist dein Freund 6 / 53

7 Ein Fenster erstellen Fenster in Swing Fenster Alle Komponenten in Swing beginnen mit einem J. Fenster sind vom Typ JFrame Als Prameter wird dem Konstruktor der Titel übergeben: JFrame fenster = new JFrame( "Mein Fenstertitel"); Die Methode setvisible kann es anzeigen und auch wieder ausblenden 7 / 53

8 Ein Fenster erstellen Beispiel: Erstellen eines einfachen Fensters // Create a window for the application JFrame frame = new JFrame( "HelloWorld Swing example" ); // Define what happens if the window closes frame.setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); // Add a label with a message JLabel label = new JLabel( "Hello World!" ); // Add the label to the window frame.getcontentpane().add( label ); // Automatically set positions and sizes frame.pack(); // Finally, display the window frame.setvisible( true ); 8 / 53

9 Ein Fenster erstellen Beispiel: Funktionen für Fenster // Set the size of the window setsize( 640, 480 ); // Place window in the center of the screen Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); setlocation( (d.width - getsize().width) / 2, (d.height - getsize().height) / 2 ); // do not use pack if the window should have a specific si // pack(); 9 / 53

10 Ein Fenster erstellen Erzeugen des Fensters im Event Dispatch Thread Bisher: Swing-Objekte müssen im EDT erzeugt werden. Aufgaben Auslagern Aufgaben, die Ausgelagert werden sollen, können vom Typ Runnable sein. Dies ist ein Interface. Die Methode run() muss implementiert werden. Sie kann dann von einem Thread aufgerufen werden 10 / 53

11 Ein Fenster erstellen Erzeugen des Fensters im Event Dispatch Thread forts. Zugriff auf den Event Dispatch Thread JAVA bietet dazu die Hilfsklasse SwingUtilities an invokeandwait führt ein Objekt vom Typ Runnable aus und wartet, bis die Aufgabe erledigt ist. Niemals im Event Dispatch Thread aufrufen! invokelater führt ein Objekt vom Typ Runnable aus und arbeitet direkt weiter. Mit iseventdispatchthread kann festgestellt werden, ob der Code gerade im Event Dispatch Thread ist 11 / 53

12 Ein Fenster erstellen Beispiel: Erstellen eines einfachen Fensters cont. public static void main( String[] args ) { // Create a new task for the event dispatch thread Runnable createwindowtask = new Runnable() { public void run() { createandshowwindow(); } }; } // Send the job to the event dispatch thread // and continue here SwingUtilities.invokeLater( createwindowtask ); // Will be executed in parallel dosomethingelse(); 12 / 53

13 Ein Fenster erstellen Systemabhängiges Look and Feel Mehrere Oberflächen-Designs zur Auswahl. Mindestens: System-Typisch und Swing-Standard Seit neueren Java 1.6-Versionen: NIMBUS import javax.swing.uimanager; try { // System look and feel UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() ); // Nimbus: UIManager.setLookAndFeel( "javax.swing.plaf.nimbus.nimbuslookandfeel" ); } catch( Exception e ) { // Handle error case } 13 / 53

14 Einfache Komponenten Normale Komponenten und Container Normale Komponenten Ermöglichen Interaktion mit dem Benutzer Benutzerinteraktion läuft über EventListener Viele zeigen Daten über ein Daten-Modell an (MVC) Zum Beispiel: JLabel, JButton, JTextField, JComboBox,... Container Meistens keine direkte Interaktion mit dem Benutzer Können andere Komponenten enthalten und ggf. anordnen Anordnung der Kind-Komponenten über LayoutManager Standardmäßig kann ein JFrame nur eine Komponente anzeigen Zum Beispiel: JPanel, JSplitPane, JTabbedPane, / 53

15 Einfache Komponenten Beispiel Komponenten // Create a label, button and checkbox JLabel label = new JLabel( "Ein Informationstext" ); JButton button = new JButton( "Eine Schaltfläche" ); JCheckBox checkbox = new JCheckBox( "Kontrollkästchen" ); // Add the components to the panel panel.add( label ); panel.add( button ); panel.add( checkbox ); // And add the panel to the frame frame.getcontentpane().add( panel ); 15 / 53

16 Einfache Komponenten Datenmodelle Komponenten mit Modellen Einige Komponenten speichern ihre Daten in einem Modell: JListBox, JComboBox, JTable Das Modell für die Listbox wird durch das Interface ListModel definiert Zu jedem Modell gibt es eine Standardvariante, für Listenfelder z. B. DefaultListModel Default-Modelle können meistens nur Text anzeigen Daten, die in der Komponente angezeigt werden sollen, müssen in das Modell eingefügt werden Dies ist eine Variante des MVC-Modells. Genauer: Observable/Observer 16 / 53

17 Einfache Komponenten Beispiel Kombinationslistenfeld mit Modell // Create a default model for the combo box DefaultComboBoxModel model = new DefaultComboBoxModel(); // Fill the model with some entries // For general objects tostring() is used for( int i = 1; i < 10; ++i ) model.addelement( "Zeile " + Integer.toString( i ) ); // Create a new combo box with the model JComboBox combobox = new JComboBox( model ); 17 / 53

18 Einfache Komponenten Einige Standardkomponenten und die zugehörigen Modelle Java-Komponente Modell-Interface Standardimplementation JList ListModel DefaultListModel JComboBox ComboBoxModel DefaultComboBoxModel JTable TableModel DefaultTableModel JTree TreeModel DefaultTreeModel 18 / 53

19 Ereignisse und Listener Reaktion auf Benutzereingaben Bislang: Erstellen von Steuerelementen (und Platzieren im Fenster). Nun: Reaktion auf Benutzereingaben Senden und Lauschen Alle Oberflächenkomponenten in Swing senden passende Ereignisnachrichten wenn ein Benutzer mit ihnen interagiert z. B. falls eine Schaltfläche gedrückt wird oder ein Listenelement ausgewählt wird Die Nachricht wird an alle Listener geschickt, die dem Sender bekannt sind (die das Interface EventListener implementieren) Wenn man an einer Nachricht interessiert ist, muss man sich beim Sender registrieren 19 / 53

20 Ereignisse und Listener Reaktion auf Benutzereingaben Beispiel Eine Schaltfläche sendet ein ActionEvent wenn sie gedrückt wird Registrierung eines listeners mit addactionlistener Der Listener ist abstrakt, es muss die Methode actionperformed( ActionEvent e ) implementiert werden die Methode wird aufgerufen wenn der Button gedrückt wird Einfachste Implementation: als anonyme Klasse Aber: wird schnell unübersichtlich. Dann Auslagern in eigene Klassen 20 / 53

21 Ereignisse und Listener Beispiel Schaltfläche und Listener als anonyme Klasse // Create a label, button and checkbox to the final JButton button = new JButton( "Hallo" ); // Add an action listener to the button button.addactionlistener( new ActionListener() { /** Change button text */ public void actionperformed( ActionEvent e ) { if( button.gettext().equals( "CoMa" ) ) button.settext( "Hallo" ); else button.settext( "CoMa" ); } } ); 21 / 53

22 Ereignisse und Listener Beispiel Schaltfläche und das Fenster als Listener Die Oberfläche selbst kann auch als Listener fungieren: // Create a class extending JFrame class MyFrame extends JFrame implements ActionListener { Dann kann die Instanz des Fensters an den Listener übergeben werden: // Add an action listener to the button button.addactionlistener( this ); Die Methoden des Listeners sind nun Methoden der Klasse: /** Change button text */ public void actionperformed( ActionEvent e ) { if( button.gettext().equals( "CoMa" ) ) button.settext( "Hallo" ); else button.settext( "CoMa" ); } 22 / 53

23 Ereignisse und Listener Beispiel Schaltfläche und separate Klasse als Listener Eine eigene Klasse für den Listener: // Create a class for the action listener public class MyListener extends ActionListener { /** Change button text */ public void actionperformed( ActionEvent e ) { System.out.println( "Schaltfläche gedrückt" ); } } Dann kann die Instanz des Fensters an den Listener übergeben werden: // Add an action listener to the button button.addactionlistener( new MyListener() ); Vorteile: Objektorientiert, Trennung von Oberfläche und Listener Gut für komplexen Programmcode geeignet 23 / 53

24 Ereignisse und Listener Einige Standardkomponenten in Swing Steuerelement Java-Komponente Interessanter Listener Fenster JFrame WindowListener Schaltfläche JButton ActionListener Textfeld JTextField KeyListener Textbereich JTextArea KeyListener Fortschrittsbalken JProgressBar ChangeListener Listenfeld JList ListSelectionListener Kombinationsliste JComboBox ItemListener Tabelle JTable Kontrollkästchen JCheckBox ActionListener Optionsfeld JRadioButton ActionListener Formatiertes Textfeld JEditPane KeyListener Hoch-Runter-Auswahl JSpinner ChangeListener Baum JTree spezielle TreeListener KeyListener, MouseListener, MouseWheelListener und MouseMotionListener für allgemeine Komponenten (JComponent). 24 / 53

25 Ereignisse und Listener Adapterklassen Listener im Detail Listener sind Interfaces alle Methoden müssen überschrieben werden Für MouseListener sind das 5 Stück! Wenn man am Mausklick interessiert ist, aber Mausbewegungen egal sind, bedeutet das 4 leere Methoden Als Lösung nutze Adapterklassen. Enthalten alle abstrakten Methoden leer vorimplementiert! Einige wichtige Adapterklassen: WindowAdapter, MouseAdapter, KeyAdapter 25 / 53

26 Container-Komponenten Anordnen von Komponenten in Containern Layouts von Containern Anordnung wird festgelegt von einem LayoutManager Wird mit setlayout( LayoutManager ) gesetzt Der zweite Parameter von.add() spezifiziert die Anordnung in Abhängigkeit vom gewählten LayoutManager Das Standardlayout ist FlowLayout und setzt alle Komponenten nebeneinander. Alle Container können ineinander verschachtelt werden! 26 / 53

27 Container-Komponenten Das BorderLayout Unterteilt das Fenster in 5 Bereiche Oben, Unten, Links, Rechts und Mitte Steuerelemente werden gestreckt, so dass der komplette Bereich ausgefüllt wird 27 / 53

28 Container-Komponenten Beispiel BorderLayout // Create a panel containing several components JPanel p = new JPanel(); // Set the layout manager for the panel p.setlayout( new BorderLayout() ); // Add some components to the panel // Each component can have one of 5 positions p.add( new JButton( "North" ), BorderLayout.NORTH ); p.add( new JButton( "South" ), BorderLayout.SOUTH ); p.add( new JButton( "East" ), BorderLayout.EAST ); p.add( new JButton( "West" ), BorderLayout.WEST ); p.add( new JButton( "Center" ), BorderLayout.CENTER ); 28 / 53

29 Container-Komponenten Das GridBagLayout Komplizierte Variante eines Gitters Teilt den Bereich in ein Gitter ein Elemente können über mehrere Spalten und Zeilen gehen Anordnung über Bedingungen und Gewichte Relativ kompliziert Einfaches Beispiel mit 5 Schaltflächen auf layout/gridbag.html benötigt etwa 40 Zeilen Code! Das einfachere GridLayout stellt ein Gitter zur Verfügung, in dem alle Komponenten gleiche Breite und Höhe haben und nur eine Zelle belegen können. 29 / 53

30 Container-Komponenten Das TableLayout Die bessere Gittervariante Beispiel Kann Komponenten ebenfalls auf einem Gitter platzieren Größe der einzelnen Zellen wird durch ein 2-dimensionales Array angegeben Absolute, relative und spezielle Größen möglich: Relativ: Zahlen von 0 bis 1 Absolut: Zahlen größer als 1 Speziell: TableLayout.PREFERRED, TableLayout.FILL Nicht offiziell im Umfang von Swing enthalten, nur als Bibliothek Angabe der Position von Schaltflächen über einen Koordinatenstring:.add( comp, "1,2,6,9") fügt eine Komponente comp hinzu, die den quadratischen Bereich von (1, 2) bis (6, 9) ausfüllt. 30 / 53

31 Container-Komponenten Beispiel TableLayout // Create the array for the layout double[][] size = { // Columns {10, TableLayout.PREFERRED, 10, TableLayout.FILL, 10}, // Rows {10, 0.12, 10, TableLayout.FILL, 10} }; // Set the layout manager for the panel panel.setlayout( new TableLayout( size ) ); // Add some components to the panel and the panel to the f panel.add( new JButton( "Links" ), "1,1" ); panel.add( new JButton( "Rechts" ), "3,1" ); panel.add( new JButton( "Unten" ), "1,3,3,3" ); frame.getcontentpane().add( panel ); 31 / 53

32 Container-Komponenten Weitere Layouts CardLayout Mehrere Komponenten aufeinander Nur eine wird angezeigt Wie Kartenstapel, wo nur die oberste Karte sichtbar ist BoxLayout Mehrere Komponenten nebeneinander oder übereinander Komponenten nebeneinander, auch wenn Fenstergröße verändert wird Nur für einfache Fälle geeignet, einfacher als TableLayout 32 / 53

33 Container-Komponenten Einige weitere Container in Swing JTabbedPane Ein Karteikartensystem mit Reitern JSplitPane Teilt das Fenster in zwei Bereiche mit verschiebbarem Trennelement JScrollPane Zeigt horizontale und vertikale Scrollbalken an Fungiert auch als Container für Elemente in den Ecken JToolBar Eine Symbolleiste Am oberen Rand angedockt oder auch als eigenes Fenster JMenuBar Spezieller Container der Menüelemente enthalten kann Eine Statusleiste (für den unteren Fensterrand) fehlt in Swing. Eine simple Variante kann von uns bereitgestellt werden, wenn ihr eine solche nutzen wollt. 33 / 53

34 Standarddialoge Schnelle Meldungen // Display an error message JOptionPane.showMessageDialog( // The parent window frame, // The error message "Schiefgelaufen!", // The Title "Fehler", // The symbol for the message JOptionPane.ERROR_MESSAGE ); 34 / 53

35 Standarddialoge Einen Text eingeben // Display a dialog to input a text String s = (String)JOptionPane.showInputDialog( // The parent frame frame, // The text "The answer to life, the universe and everything:", // The title "Question", // The symbol JOptionPane.PLAIN_MESSAGE ); 35 / 53

36 Standarddialoge Schnelle Entscheidungen // Custom text for the buttons Object[] options = {"Rote Pille", "Blaue Pille"}; // Get the index of the chosen button int n = JOptionPane.showOptionDialog( // The parent window frame, // Text in the dialog "Wähle eine Pille...", // Message title "Die wichtigste Entscheidung deines Lebens", // Style for the dialog: use buttons JOptionPane.YES_NO_CANCEL_OPTION, // Symbol and additional icon JOptionPane.QUESTION_MESSAGE, null, // The list of options and default option options, options[1] ); 36 / 53

37 Standarddialoge Weitere Dialoge: Spezialisierte Dialoge JColorChooser Zeigt ein Dialog zur Auswahl einer Farbe an JFileChooser Zeigt einen Dialog zum Öffnen/Speichern an 37 / 53

38 Standarddialoge Beispiel: Datei öffnen FileFilter ff = new FileFilter() public boolean accept( File f ) { return f.isdirectory() f.getname().tolowercase().endswith( ".txt" ); public String getdescription() { return "Text"; } }; filechooser = new JFileChooser( "./" ); filechooser.setfilefilter( ff ); if( filechooser.showopendialog( parent ) == JFileChooser.APPROVE_OPTION ) load( filechooser.getselectedfile() ); 38 / 53

39 Einführung Multithreading Was sind Threads? Threads erlauben parallele Ausführung von Programmen wird immer wichtiger durch komplexere Aufgabenstellungen und große Verfügbarkeit von Mehrkernprozessoren problematisch: Beziehungen zwischen verschiedenen Threads die aufeinander angewiesen sind und gleiche Ressourcen benutzen! Deadlocks können auftreten Deadlock Gemeinsame Ressource R, z. B. Variable Thread A belegt R und wartet auf Thread B Thread B wartet auf Freigabe von R Vorsichtig programmieren! 39 / 53

40 Einführung Multithreading Threads in Java Benutzung von Threads abstrakte Klasse Thread Methode run muss implementiert werden. Hier wird die Arbeit erledigt Thread wird gestartet durch start() Gemeinsame Ressourcen Java Codewort synchronized möglich für Funktionen oder Codeblöcke Code im synchronized-bereich wird ausgeführt, ohne dass andere Threads Zugriff auf die benutzten Variablen erhalten 40 / 53

41 public static void main( String args[] ) { ThreadCount c1 = new ThreadCount( "1", 200 ); c1.start(); } } 41 / 53 Einführung Multithreading Beispiel: Zähl-Thread public class ThreadCount extends Thread { private int c; public ThreadCount( String name, int c ) { super( name ); this.c = c; public void run() { for( int i = 0; i < c; ++i ) System.out.println( "Thread " + getname() + " :" + i }

42 t.start(); t2.start(); // Starte Threads t.join(); t2.join(); // Warte auf ende System.out.println( "Minimum: " + min ); } 42 / 53 Einführung Multithreading Beispiel: Array summieren public class ThreadMinimum extends Thread { static int sum; // Summe static int[] numbers; // Zufallszahlen public void run() { for( int i = start; i <= end; ++i ) addnumber( numbers[i] ); } public static synchronized void addnumber( int i ) { sum += i; } public static void main( String args[] ) throws Interrup ThreadMinimum t = new ThreadMinimum( 0, n/2 ); ThreadMinimum t2 = new ThreadMinimum( n/2+1, n-1 );

43 Umgang mit rechenintensiven Arbeiten in Swing Arbeitsweise von Swing Der Ereignis-Thread Jede Interaktion sendet ein Ereignis (Event) an den EDT Im EDT läuft eine Schleife die Nacheinander alle Ereignisse bearbeitet Wenn notwendig, werden passende EventListener aufgerufen Lange Berechnungen in Ereignisbehandlungsmethoden lassen die Oberfläche einfrieren Im EDT müssen alle Methoden schnell zurückkehren Außerdem: deutlicher Geschwindigkeitszuwachs 43 / 53

44 Umgang mit rechenintensiven Arbeiten in Swing Arbeit auslagern in Threads Generelle Funktionsweise Java stellt die abstrakte Klasse SwingWorker<T,V> zur Verfügung Kann ein Ergebnis vom Typ T berechnen Kann zwischendurch Fortschritt vom Typ V ausgeben Aufgaben werden in der abstrakten Methode public T doinbackground() ausgeführt Ausführung in einem neuen Thread mit execute() done() wird (im EDT) aufgerufen, wenn die Ausführung beendet ist 44 / 53

45 Umgang mit rechenintensiven Arbeiten in Swing Arbeit auslagern in Threads forts. Anzeigen von Fortschritt Beispiel Fortschritt der Berechnung wird mit publish( V ) abgesendet dies passiert im neu gestarteten Thread process( List<V> chunks ) erhält eine Liste von evtl. mehreren Fortschrittsnachrichten (im EDT) es kann auf Swing-Komponenten zugegriffen werden Annahmen: Berechne ein Zwischenergbnis in 1 Millisekunde und sende Fortschritt mit publish Aktualisieren der Oberfläche dauert 0, 1 Sekunden Die Oberfläche kann nur jeden 100. Status anzeigen. Deshalb: Nachrichten werden gesammelt als Liste an process gegeben 45 / 53

46 Umgang mit rechenintensiven Arbeiten in Swing Beispiel SwingWorker /** A class computing a long with status text */ class Worker extends SwingWorker<Long, String> { /** Search for the next prime */ public Long doinbackground() { findnextmersenneprime( ); } /** Yipeeh, we are done. */ protected void done() { label.settext( "Gefunden: " + get() ); } } /** Give out some status text. */ protected void process( List<String> chunks ) { // Set the last process message as status text label.settext( chunks.get( chunks.size()-1 ) ); } 46 / 53

47 Animation in Swing Animation Klasse Timer führt ein Ereignis in definierten Intervallen aus ruft ActionListener auf läuft in eigenem Thread aufgerufener ActionListener im EDT erlaubt Animation Intervallangabe in Millisekunden 47 / 53

48 Animation in Swing Beispiel Timer // Set up a timer that is executed once a second Timer timer = new Timer( 1000, new ActionListener() public void actionperformed( ActionEvent e ) { // Just repaint the user interface repaint(); } }); // Start the timer timer.start(); 48 / 53

49 Manuelles Zeichnen Einleitung Grundlagen Zeichnen Oft gibt es kein spezielles Steuerelement für eine Aufgabe Erzeugen neuer Steuerelemente die von JComponent erben Zeichnen der Komponente mit paint( Graphics ) Java2D hat einen sehr großen Funktionsumfang! Überlegen, wie man das Ziel erreicht Koordinaten müssen berechnet werden: im Wesentlichen zweidimensionale Vektormathematik Sinnvoll alles Prozentual zu machen. Beispiel: Quadratgröße in Dem Carlos seine Flucht 49 / 53

50 Manuelles Zeichnen Beispiel Java2D Java2D initialisieren public void paint( Graphics g ) { super.paint( g ); // Set up the java2d graphics object Graphics2D g2d = (Graphics2D)g; // Set quality g2d.setrenderinghint( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON ); } 50 / 53

51 Manuelles Zeichnen Beispiel Java2D (2) Zeichenoptionen setzen // Set a drawing color. Here red g2d.setcolor( Color.red ); // Set a stroke type. Here: thick lines g2d.setstroke( new BasicStroke( 5 ) ); // Set a font by name g2d.setfont( new Font( "Comic Sans MS", Font.BOLD, 20 ) ); // or by type g2d.setfont( new Font( Font.SERIF, Font.PLAIN, 14 ); // or derive new font from the current font g2d.setfont( g2d.getfont().derivefont( 20f ) ); 51 / 53

52 Manuelles Zeichnen Beispiel Java2D (3) Formen Zeichnen // Draw a line, from start point to end point g2d.drawline( 0, 0, getwidth(), getheight() ); // Draw a rect between upper left and lower right g2d.drawrect( left, top, right, bottom ); // Draw a text starting in a point g2d.drawstring( "Text", startx, starty ); // Draw ellipse. Start us upper left of // the bounding rectangle g2d.drawarc( x, y, width, height, 0, 360 ); 52 / 53

53 Manuelles Zeichnen Beispiel Java2D (4) Ein Bild laden Viele Möglichkeiten. Komfortabel: die ImageIO-Klasse // Try to load an image. IOException may be thrown BufferedImage image; try { image = ImageIO.read( new File( "image.png" ) ); } catch( IOException ex ) { // Handle exception } // Draw an image from top left with width and height g2d.drawimage( image, topx, topy, width, height, this ); 53 / 53

Grafische Benutzeroberflächen in JAVA

Grafische Benutzeroberflächen in JAVA Grafische Benutzeroberflächen in JAVA Jan-Philipp Kappmeier Technische Universität Berlin 28. 04. 2010 Inhalt 1 Swing-Einführung Einleitung Ein Fenster erstellen 2 Swing-Komponenten Einfache Komponenten

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

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

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

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

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

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

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

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

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

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

11. GUI-Programmierung mit SWING Überblick

11. GUI-Programmierung mit SWING Überblick 11. GUI-Programmierung mit SWING Überblick 11.1 Einführung 11.2 Einfache Swing Komponenten 11.3 Ereignisbehandlung und Adapterklassen 11.4 Zeichnen 11.5 Dialoge 11.6 Layout Manager 11.7 Komplexere Swing

Mehr

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

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

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

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

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. Drag and Drop (DnD) 1. Transfer-Mechanismus 2. Transfer-Support 3. Cursor-Symbole 4. Einführendes Beispiel 5. Komponenten DnD-fähig machen 6. Standard DnD-Verhalten ändern Folie 1 Lernziele Sie

Mehr

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

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

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

Softwaretechnik (Medieninformatik): GUIs mit Swing Überblick

Softwaretechnik (Medieninformatik): GUIs mit Swing Überblick Softwaretechnik (Medieninformatik): GUIs mit Swing Überblick 1 Einführung 2 Einfache Swing Komponenten 3 Ereignisbehandlung und Adapterklassen 4 Zeichnen 5 Layout Manager 6 Komplexere Swing Komponenten

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

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

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

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

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

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

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

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

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

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

http://www.tutego.com/ Schieberegler und analoge Anzeigen

http://www.tutego.com/ Schieberegler und analoge Anzeigen http://www.tutego.com/ Schieberegler und analoge Anzeigen http://www.tutego.com/ JScrollBar Schieberegler Unter Swing ersetzt javax.swing.jscrollbardie Klasse java.awt.scrollbar. Direkt wird die Klasse

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

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

Institut für Informatik

Institut für Informatik Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2009 Praktikum: Grundlagen der Programmierung Aufgabenblatt 11 Prof. R. Westermann, R. Fraedrich,

Mehr

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

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

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

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

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

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

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

Ü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

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Abstrakte Klassen und Interfaces Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer

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

Distributed Computing Group

Distributed Computing Group JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird

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

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

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

JAVA Oberflächen mit Swing

JAVA Oberflächen mit Swing JAVA Oberflächen mit Swing Grafik von http://javafx.com 168 168 AGENDA Grundlagen GUI Swing JavaFX 169 169 GRAPHISCHE BENUTZEROBERFLÄCHEN (1) AWT = Abstract Window Toolkit Verwendet die jeweiligen GUI-Komponenten

Mehr

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

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

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

WPF Steuerelemente Listbox, ComboBox, ListView,

WPF Steuerelemente Listbox, ComboBox, ListView, WPF Steuerelemente Listbox, ComboBox, ListView, Dr. Beatrice Amrhein Überblick Einführung Listen ComboBox Tabellen 2 Einführung 3 Listen- und Tabellen-Elemente Listen und Tabellen-Elemente sind Steuerelemente,

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

Text Formatierung in Excel

Text Formatierung in Excel Text Formatierung in Excel Das Aussehen des Textes einer oder mehrerer Zellen kann in Excel über verschiedene Knöpfe beeinflusst werden. Dazu zuerst die betroffenen Zelle(n) anwählen und danach den entsprechenden

Mehr

Informatik Kurs 12 André Hoffmann. Delphi. Einführung in die Windows- Programmierung

Informatik Kurs 12 André Hoffmann. Delphi. Einführung in die Windows- Programmierung Informatik Kurs 12 André Hoffmann Delphi Einführung in die Windows- Programmierung Grundlagen Entwicklung von Windows-Programmen Relativ unkompliziert durch typische, vorgefertigte Elemente Programmiertechnische

Mehr

Comic Life 2.x. Fortbildung zum Mediencurriculum

Comic Life 2.x. Fortbildung zum Mediencurriculum Comic Life 2.x Fortbildung zum Mediencurriculum - 1 - Comic Life Eine kurze Einführung in die Bedienung von Comic Life 2.x. - 2 - Starten von Comic Life Bitte starte das Programm Comic Life. Es befindet

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

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,

Mehr

5.2 Neue Projekte erstellen

5.2 Neue Projekte erstellen 5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort

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

3. GLIEDERUNG. Aufgabe:

3. GLIEDERUNG. Aufgabe: 3. GLIEDERUNG Aufgabe: In der Praxis ist es für einen Ausdruck, der nicht alle Detaildaten enthält, häufig notwendig, Zeilen oder Spalten einer Tabelle auszublenden. Auch eine übersichtlichere Darstellung

Mehr

WhiteStarUML Tutorial

WhiteStarUML Tutorial WhiteStarUML Tutorial Autor: Simon Balázs, BME IIT, 2015. Übersetzung: Kovács Márton, 2015. Installation Herunterladen und installieren Sie das WhiteStarUML: http://sourceforge.net/projects/whitestaruml/

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

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

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

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

Schritt für Schritt Anleitung zum Erstellen einer Android-App zum Ein- und Ausschalten einer LED

Schritt für Schritt Anleitung zum Erstellen einer Android-App zum Ein- und Ausschalten einer LED Schritt für Schritt Anleitung zum Erstellen einer Android-App zum Ein- und Ausschalten einer LED Mit Google Chrome nach MIT App Inventor suchen. In den Suchergebnissen (siehe unten) auf

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

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

Java GUI Entwicklung mit Swing

Java GUI Entwicklung mit Swing Seminarunterlage Version: 5.03 Version 5.03 vom 13. Februar 2014 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen

Mehr

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

Tutorial: Wie kann ich Dokumente verwalten?

Tutorial: Wie kann ich Dokumente verwalten? Tutorial: Wie kann ich Dokumente verwalten? Im vorliegenden Tutorial lernen Sie, wie Sie in myfactory Dokumente verwalten können. Dafür steht Ihnen in myfactory eine Dokumenten-Verwaltung zur Verfügung.

Mehr

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

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

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

HTML Programmierung. Aufgaben

HTML Programmierung. Aufgaben HTML Programmierung Dr. Leander Brandl BRG Keplerstraße - A-8020 Graz Universität Graz - Institut für Experimentalphysik Fachdidaktik der Physik http://w4.brgkepler.asn-graz.ac.at 1. Die erste Web-Seite

Mehr

EINFACHES HAUSHALT- KASSABUCH

EINFACHES HAUSHALT- KASSABUCH EINFACHES HAUSHALT- KASSABUCH Arbeiten mit Excel Wir erstellen ein einfaches Kassabuch zur Führung einer Haushalts- oder Portokasse Roland Liebing, im November 2012 Eine einfache Haushalt-Buchhaltung (Kassabuch)

Mehr

Client-Server-Beziehungen

Client-Server-Beziehungen Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server

Mehr

EchoLink und Windows XP SP2

EchoLink und Windows XP SP2 EchoLink und Windows XP SP2 Hintergrund Für Computer auf denen Windows XP läuft, bietet Microsoft seit kurzem einen Update, in der Form des Service Pack 2 oder auch SP2 genannt, an. SP2 hat einige neue

Mehr

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-

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

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

GUI-Programmierung in Java

GUI-Programmierung in Java GUI-Programmierung in Java Jan Pihl, Daniel Bugdalle 1. Einleitung Betreuer: Thomas Ströder Die Bedienung von Software stellt sich oft als etwas schwierig für viele Nutzer heraus, wenn es keine grafische

Mehr

Programmierung für Mathematik (HS13)

Programmierung für Mathematik (HS13) software evolution & architecture lab Programmierung für Mathematik (HS13) Übung 5 1 Aufgabe: Eclipse IDE 1.1 Lernziele 1. Die Entwicklungsumgebung Eclipse einrichten. 2. Eclipse kennen lernen und mit

Mehr

Technische Dokumentation SilentStatistikTool

Technische Dokumentation SilentStatistikTool Technische Dokumentation SilentStatistikTool Version 1.0 Marko Schröder 1115063 Inhalt Einleitung... 3 Klasse Program... 3 Klasse ArgumentHandler... 3 Bereitgestellte Variablen... 3 Bereitgestellte Methoden...

Mehr

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

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

Mehr

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2.1 Die Einrichtung der Benutzeroberfläche Das Einrichten einer Android-Eclipse-Entwicklungsumgebung zur Android-Entwicklung ist grundsätzlich nicht

Mehr

Ereignisbehandlung 21

Ereignisbehandlung 21 Ereignisbehandlung 21 3 Ereignisbehandlung Dieses Kapitel beschäftigt sich mit der Ereignisbehandlung, d.h. der Reaktion eines Programms auf Eingaben durch benutzende Personen. Nach einigen ersten Beispielen

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

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

Mediator 9 - Lernprogramm

Mediator 9 - Lernprogramm Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop

Mehr

PCB manuell generieren

PCB manuell generieren 60 PCB manuell generieren Folgende Ränder müssen gezeichnet bzw. importiert werden: 1. Mechanischer Rand der Platine (Mechanical 1 Layer) 2. Elektrischer Rand der Platine (Keep Out Layer) für Signal-Layers

Mehr