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 Überblick 1 java.awt Überblick AWT Beispiel 2 Überblick Look and Feel Vermischen von AWT und Swing 3 Swing Komponenten Einfache Swing Komponenten Text Komponenten Swing Container Window Komponenten 4 Layout Manager 5 Ausblick
java.awt Swing Komponenten Layout Manager Ausblick Überblick Abstract Windowing Toolkit java.awt Enthält 3 Kategorien von Klassen: * User Interface Komponenten * Grafik, Hilfsklassen * Layout Manager
java.awt Swing Komponenten Layout Manager Ausblick Überblick Abstract Windowing Toolkit java.awt Enthält 3 Kategorien von Klassen: * User Interface Komponenten * Grafik, Hilfsklassen * Layout Manager plattformunabhängiges GUI-Toolkit
java.awt Swing Komponenten Layout Manager Ausblick Überblick Abstract Windowing Toolkit java.awt Enthält 3 Kategorien von Klassen: * User Interface Komponenten * Grafik, Hilfsklassen * Layout Manager plattformunabhängiges GUI-Toolkit plattformspezifisch implementiert * plattformabhängiges Look-and-Feel * bietet nicht alle Möglichkeiten der Plattform
java.awt Swing Komponenten Layout Manager Ausblick Überblick AWT Komponenten
java.awt Swing Komponenten Layout Manager Ausblick Überblick Component Basisklasse der sichtbaren Objekte
java.awt Swing Komponenten Layout Manager Ausblick Überblick Component Basisklasse der sichtbaren Objekte Methoden zum Zeichnen der GUI Komponenten: public void paint(graphics g) public void update(graphics g) public void repaint()
java.awt Swing Komponenten Layout Manager Ausblick Überblick Component Bietet Methoden für... Sichtbarkeit setvisible(boolean)
java.awt Swing Komponenten Layout Manager Ausblick Überblick Component Bietet Methoden für... Sichtbarkeit setvisible(boolean) Farbe setforeground(), setbackground()
java.awt Swing Komponenten Layout Manager Ausblick Überblick Component Bietet Methoden für... Sichtbarkeit setvisible(boolean) Farbe setforeground(), setbackground() Aktivierung setenabled(boolean)
java.awt Swing Komponenten Layout Manager Ausblick Überblick Component Bietet Methoden für... Sichtbarkeit setvisible(boolean) Farbe setforeground(), setbackground() Aktivierung setenabled(boolean) Layout setbounds(), setlocation(), setsize(), setheight(), setwidth()
java.awt Swing Komponenten Layout Manager Ausblick Überblick Component Bietet Methoden für... Sichtbarkeit setvisible(boolean) Farbe setforeground(), setbackground() Aktivierung setenabled(boolean) Layout setbounds(), setlocation(), setsize(), setheight(), setwidth() Event Handling
java.awt Swing Komponenten Layout Manager Ausblick Überblick Container Container können andere Komponenten enthalten
java.awt Swing Komponenten Layout Manager Ausblick Überblick Container Container können andere Komponenten enthalten Einfügen: add(component) // am Schluss add(component, pos) // an der Position pos
java.awt Swing Komponenten Layout Manager Ausblick Überblick Container Container können andere Komponenten enthalten Einfügen: add(component) // am Schluss add(component, pos) // an der Position pos Entfernen: remove(component) // einzeln removeall() // alle
java.awt Swing Komponenten Layout Manager Ausblick Überblick Container Container können andere Komponenten enthalten Einfügen: add(component) // am Schluss add(component, pos) // an der Position pos Entfernen: remove(component) // einzeln removeall() // alle Anordnen mittels Layout Managers: setlayout(layoutmanager)
java.awt Swing Komponenten Layout Manager Ausblick Überblick Komponenten Container Komponenten:
java.awt Swing Komponenten Layout Manager Ausblick Überblick Komponenten Container Komponenten: Frame Hauptfenster einer Applikation (setmenubar(mb), settitle(string), seticonimage(icon))
java.awt Swing Komponenten Layout Manager Ausblick Überblick Komponenten Container Komponenten: Frame Hauptfenster einer Applikation (setmenubar(mb), settitle(string), seticonimage(icon)) Window Fenster ohne Dekorationen
java.awt Swing Komponenten Layout Manager Ausblick Überblick Komponenten Container Komponenten: Frame Hauptfenster einer Applikation (setmenubar(mb), settitle(string), seticonimage(icon)) Window Fenster ohne Dekorationen Dialog, FileDialog Nebenfenster für temporäre Informationen
java.awt Swing Komponenten Layout Manager Ausblick Überblick Komponenten Container Komponenten: Frame Hauptfenster einer Applikation (setmenubar(mb), settitle(string), seticonimage(icon)) Window Fenster ohne Dekorationen Dialog, FileDialog Nebenfenster für temporäre Informationen Panel Container, der in anderen Containern platziert wird
java.awt Swing Komponenten Layout Manager Ausblick Überblick Komponenten Container Komponenten: Frame Hauptfenster einer Applikation (setmenubar(mb), settitle(string), seticonimage(icon)) Window Fenster ohne Dekorationen Dialog, FileDialog Nebenfenster für temporäre Informationen Panel Container, der in anderen Containern platziert wird Primitive Komponenten: Button, Canvas, Checkbox, Choice, Label, List, Scrollbar, TextArea und TextField
java.awt Swing Komponenten Layout Manager Ausblick AWT Beispiel Ein AWT Beispiel
java.awt Swing Komponenten Layout Manager Ausblick Überblick Java Swing Mehrwert von Swing: Keyboard Accelerators
java.awt Swing Komponenten Layout Manager Ausblick Überblick Java Swing Mehrwert von Swing: Keyboard Accelerators Tool Tips
java.awt Swing Komponenten Layout Manager Ausblick Überblick Java Swing Mehrwert von Swing: Keyboard Accelerators Tool Tips Neue LayoutManager, neue Panels
java.awt Swing Komponenten Layout Manager Ausblick Überblick Java Swing Mehrwert von Swing: Keyboard Accelerators Tool Tips Neue LayoutManager, neue Panels virtuelle Desktops (MDI Applikationen)
java.awt Swing Komponenten Layout Manager Ausblick Überblick Java Swing Mehrwert von Swing: Keyboard Accelerators Tool Tips Neue LayoutManager, neue Panels virtuelle Desktops (MDI Applikationen) Drag and Drop
java.awt Swing Komponenten Layout Manager Ausblick Überblick Java Swing Mehrwert von Swing: Keyboard Accelerators Tool Tips Neue LayoutManager, neue Panels virtuelle Desktops (MDI Applikationen) Drag and Drop Undo
java.awt Swing Komponenten Layout Manager Ausblick Überblick Java Swing Mehrwert von Swing: Keyboard Accelerators Tool Tips Neue LayoutManager, neue Panels virtuelle Desktops (MDI Applikationen) Drag and Drop Undo...
java.awt Swing Komponenten Layout Manager Ausblick Überblick Klassenstruktur
java.awt Swing Komponenten Layout Manager Ausblick Überblick JComponent JComponent ist von (AWT) Container abgeleitet: Swing Komponenten basieren auf AWT
java.awt Swing Komponenten Layout Manager Ausblick Überblick JComponent JComponent ist von (AWT) Container abgeleitet: Swing Komponenten basieren auf AWT Einfügen von Komponenten auch in primitive Swing Komponenten (wie JButton, JLabel...)
java.awt Swing Komponenten Layout Manager Ausblick Überblick JComponent JComponent ist von (AWT) Container abgeleitet: Swing Komponenten basieren auf AWT Einfügen von Komponenten auch in primitive Swing Komponenten (wie JButton, JLabel...) Setzen des Look and Feel
java.awt Swing Komponenten Layout Manager Ausblick Überblick JComponent JComponent ist von (AWT) Container abgeleitet: Swing Komponenten basieren auf AWT Einfügen von Komponenten auch in primitive Swing Komponenten (wie JButton, JLabel...) Setzen des Look and Feel Automatisches Double Buffering
java.awt Swing Komponenten Layout Manager Ausblick Überblick SwingHelloWorld.java
java.awt Swing Komponenten Layout Manager Ausblick Look and Feel Look and Feel Setzen des Look and Feel (Crossplattform):
java.awt Swing Komponenten Layout Manager Ausblick Vermischen von AWT und Swing Vermischen von AWT und Swing Achtung! Swing und AWT Objekte nicht gleichzeitig in einem Container verwenden
java.awt Swing Komponenten Layout Manager Ausblick Vermischen von AWT und Swing Vermischen von AWT und Swing Achtung! Swing und AWT Objekte nicht gleichzeitig in einem Container verwenden AWT Komponenten nicht innerhalb von Swing Komponenten verwenden
java.awt Swing Komponenten Layout Manager Ausblick Vermischen von AWT und Swing Vermischen von AWT und Swing Achtung! Swing und AWT Objekte nicht gleichzeitig in einem Container verwenden AWT Komponenten nicht innerhalb von Swing Komponenten verwenden Vorsicht bei Swing Popup-Menus in Containern mit AWT Objekten: AWT Objekte liegen immer über den Swing Komponenten
java.awt Swing Komponenten Layout Manager Ausblick Vermischen von AWT und Swing Vermischen von AWT und Swing Achtung! Swing und AWT Objekte nicht gleichzeitig in einem Container verwenden AWT Komponenten nicht innerhalb von Swing Komponenten verwenden Vorsicht bei Swing Popup-Menus in Containern mit AWT Objekten: AWT Objekte liegen immer über den Swing Komponenten Empfehlung: Besser nicht mischen, sondern direkt Swing benutzen... :)
java.awt Swing Komponenten Layout Manager Ausblick Einfache Swing Komponenten Einfache Swing Komponenten JLabel
java.awt Swing Komponenten Layout Manager Ausblick Einfache Swing Komponenten Einfache Swing Komponenten JLabel JButton
java.awt Swing Komponenten Layout Manager Ausblick Einfache Swing Komponenten Einfache Swing Komponenten JLabel JButton JCheckBox / JRadioButton
java.awt Swing Komponenten Layout Manager Ausblick Einfache Swing Komponenten Einfache Swing Komponenten JLabel JButton JCheckBox / JRadioButton JMenu / JMenuItem / JCheckBoxMenuItem / JRadioButtonMenuItem
java.awt Swing Komponenten Layout Manager Ausblick Einfache Swing Komponenten JLabel Ein JLabel kann Text und Bilder enthalten:
java.awt Swing Komponenten Layout Manager Ausblick Einfache Swing Komponenten JLabel Ein JLabel kann Text und Bilder enthalten: JLabel() - leerer Konstruktor JLabel(Icon image) - Label mit Bild JLabel(String text) - Label mit Text JLabel(String text, int alignment) - Label mit Text und Ausrichtung
java.awt Swing Komponenten Layout Manager Ausblick Einfache Swing Komponenten JLabel Ein JLabel kann Text und Bilder enthalten: JLabel() - leerer Konstruktor JLabel(Icon image) - Label mit Bild JLabel(String text) - Label mit Text JLabel(String text, int alignment) - Label mit Text und Ausrichtung Beispiel JLabel mit Icons und/oder Text (IconLabel.java)
java.awt Swing Komponenten Layout Manager Ausblick Einfache Swing Komponenten Buttons Klassenhierachie der Swing Buttons
java.awt Swing Komponenten Layout Manager Ausblick Einfache Swing Komponenten Buttons Klassenhierachie der Swing Buttons Wichtige Button Methoden: Setzen eines Icon: seticon(), setpressedicon(), setrollovericon()
java.awt Swing Komponenten Layout Manager Ausblick Einfache Swing Komponenten Buttons Klassenhierachie der Swing Buttons Wichtige Button Methoden: Setzen eines Icon: seticon(), setpressedicon(), setrollovericon() Setzen des Textes: settext()
java.awt Swing Komponenten Layout Manager Ausblick Einfache Swing Komponenten Buttons Klassenhierachie der Swing Buttons Wichtige Button Methoden: Setzen eines Icon: seticon(), setpressedicon(), setrollovericon() Setzen des Textes: settext() Setzen eines Hilfetextes (ToolTip): settooltiptext()
java.awt Swing Komponenten Layout Manager Ausblick Einfache Swing Komponenten Buttons Klassenhierachie der Swing Buttons Wichtige Button Methoden: Setzen eines Icon: seticon(), setpressedicon(), setrollovericon() Setzen des Textes: settext() Setzen eines Hilfetextes (ToolTip): settooltiptext() Setzen von Tastaturshortcuts: setmnemonic()
java.awt Swing Komponenten Layout Manager Ausblick Einfache Swing Komponenten Buttons Klassenhierachie der Swing Buttons Wichtige Button Methoden: Setzen eines Icon: seticon(), setpressedicon(), setrollovericon() Setzen des Textes: settext() Setzen eines Hilfetextes (ToolTip): settooltiptext() Setzen von Tastaturshortcuts: setmnemonic() Button Event auslösen: doclick()
java.awt Swing Komponenten Layout Manager Ausblick Einfache Swing Komponenten JToolBar Bietet einen schnellen Zugriff auf häufig verwendete Befehle
java.awt Swing Komponenten Layout Manager Ausblick Einfache Swing Komponenten JToolBar Bietet einen schnellen Zugriff auf häufig verwendete Befehle Enthält i.d.r. vor allem Buttons, kann aber beliebiege Komponenten enthalten
java.awt Swing Komponenten Layout Manager Ausblick Einfache Swing Komponenten JToolBar Bietet einen schnellen Zugriff auf häufig verwendete Befehle Enthält i.d.r. vor allem Buttons, kann aber beliebiege Komponenten enthalten Behält nie den Fokus!
java.awt Swing Komponenten Layout Manager Ausblick Einfache Swing Komponenten JToolBar Bietet einen schnellen Zugriff auf häufig verwendete Befehle Enthält i.d.r. vor allem Buttons, kann aber beliebiege Komponenten enthalten Behält nie den Fokus! Kann zur Laufzeit vom Benutzer verschoben werden
java.awt Swing Komponenten Layout Manager Ausblick Einfache Swing Komponenten Menus JMenuBar() erzeugt einen Menubalken. Dieser wird mit setjmenubar() in das JFrame eingefügt
java.awt Swing Komponenten Layout Manager Ausblick Einfache Swing Komponenten Menus JMenuBar() erzeugt einen Menubalken. Dieser wird mit setjmenubar() in das JFrame eingefügt JMenu() erzeugt einen Menueintrag, add() fügt diesen in den Menubalken ein
java.awt Swing Komponenten Layout Manager Ausblick Einfache Swing Komponenten Menus JMenuBar() erzeugt einen Menubalken. Dieser wird mit setjmenubar() in das JFrame eingefügt JMenu() erzeugt einen Menueintrag, add() fügt diesen in den Menubalken ein JMenuItem() erzeugt einen Menubutton. add() fügt diesen in das JMenu ein
java.awt Swing Komponenten Layout Manager Ausblick Einfache Swing Komponenten Menus JMenuBar() erzeugt einen Menubalken. Dieser wird mit setjmenubar() in das JFrame eingefügt JMenu() erzeugt einen Menueintrag, add() fügt diesen in den Menubalken ein JMenuItem() erzeugt einen Menubutton. add() fügt diesen in das JMenu ein Die Menueinträge können optisch getrennt werden durch addseparator()
java.awt Swing Komponenten Layout Manager Ausblick Einfache Swing Komponenten Menus JMenuBar() erzeugt einen Menubalken. Dieser wird mit setjmenubar() in das JFrame eingefügt JMenu() erzeugt einen Menueintrag, add() fügt diesen in den Menubalken ein JMenuItem() erzeugt einen Menubutton. add() fügt diesen in das JMenu ein Die Menueinträge können optisch getrennt werden durch addseparator() Aktivieren des File Menus durch Alt F :
java.awt Swing Komponenten Layout Manager Ausblick Einfache Swing Komponenten Menus JMenuBar() erzeugt einen Menubalken. Dieser wird mit setjmenubar() in das JFrame eingefügt JMenu() erzeugt einen Menueintrag, add() fügt diesen in den Menubalken ein JMenuItem() erzeugt einen Menubutton. add() fügt diesen in das JMenu ein Die Menueinträge können optisch getrennt werden durch addseparator() Aktivieren des File Menus durch Alt F : Aktivieren von Quit durch Ctrl-Q :
java.awt Swing Komponenten Layout Manager Ausblick Text Komponenten Text Komponenten In Swing gibt es die folgenden Text Komponenten:
java.awt Swing Komponenten Layout Manager Ausblick Text Komponenten Text Komponenten In Swing gibt es die folgenden Text Komponenten: gettext()
java.awt Swing Komponenten Layout Manager Ausblick Text Komponenten Text Komponenten In Swing gibt es die folgenden Text Komponenten: gettext() settext(string)
java.awt Swing Komponenten Layout Manager Ausblick Text Komponenten Text Komponenten In Swing gibt es die folgenden Text Komponenten: gettext() settext(string)...
java.awt Swing Komponenten Layout Manager Ausblick Swing Container Swing Container JPanel Einfachster Swing Container. Dient vor allem dazu, andere Container (in logisch zusammengehörige Teile) zu unterteilen.
java.awt Swing Komponenten Layout Manager Ausblick Swing Container Swing Container JPanel Einfachster Swing Container. Dient vor allem dazu, andere Container (in logisch zusammengehörige Teile) zu unterteilen. JSplitPane / JTabbedPane Möglichkeit zum Unterteilen von Fenstern
java.awt Swing Komponenten Layout Manager Ausblick Swing Container Swing Container JPanel Einfachster Swing Container. Dient vor allem dazu, andere Container (in logisch zusammengehörige Teile) zu unterteilen. JSplitPane / JTabbedPane Möglichkeit zum Unterteilen von Fenstern JDesktopPane / JInternalFrame Swing Version des Multiple Document Interfaces (MDI). In einem JDesktopPane können beliebig viele JInternalFrame platziert werden.
java.awt Swing Komponenten Layout Manager Ausblick Swing Container Swing Container JPanel Einfachster Swing Container. Dient vor allem dazu, andere Container (in logisch zusammengehörige Teile) zu unterteilen. JSplitPane / JTabbedPane Möglichkeit zum Unterteilen von Fenstern JDesktopPane / JInternalFrame Swing Version des Multiple Document Interfaces (MDI). In einem JDesktopPane können beliebig viele JInternalFrame platziert werden. Auch einfache Swing Komponenten sind Container!
java.awt Swing Komponenten Layout Manager Ausblick Window Komponenten Window Komponenten Die Komponenten Dialog, Frame, JWindow, JDialog und JFrame sind von Window und nicht von JComponent abgeleitet. Diese Komponenten sind nicht lightweight.
java.awt Swing Komponenten Layout Manager Ausblick Window Komponenten Ebenen eines Fensters Beim Erzeugen eines JFrame, JApplet, JWindow oder eines JDialog wird ein RootPane, ein LayeredPane, ein GlassPane und ein ContentPane erzeugt
java.awt Swing Komponenten Layout Manager Ausblick Window Komponenten JLayeredPane
java.awt Swing Komponenten Layout Manager Ausblick Die wichtigsten Layout Manager Der LayoutManager bestimmt die Position und eventuell auch die Größe der im Container enthaltenen Komponenten
java.awt Swing Komponenten Layout Manager Ausblick FlowLayout Einfachster LayoutManager für einfache Anwendungen. Positioniert Zeilenweise
java.awt Swing Komponenten Layout Manager Ausblick FlowLayout Einfachster LayoutManager für einfache Anwendungen. Positioniert Zeilenweise BorderLayout Layout anhand von Himmelsrichtungen : 4 Randbereiche NORTH, EAST, SOUTH, WEST und ein großer CENTER Bereich
java.awt Swing Komponenten Layout Manager Ausblick GridLayout LayoutManager mit Tabellenstruktur. Alle Zellen sind gleich groß
java.awt Swing Komponenten Layout Manager Ausblick GridLayout LayoutManager mit Tabellenstruktur. Alle Zellen sind gleich groß BoxLayout Layout aller Komponenten in einer Reihe oder Spalte. Die Zellen können verschieden groß sein
java.awt Swing Komponenten Layout Manager Ausblick GridBagLayout Komplexer LayoutManager mit vielen Optionen
java.awt Swing Komponenten Layout Manager Ausblick GridBagLayout Komplexer LayoutManager mit vielen Optionen CardLayout LayoutManager bei dem verschiedene Komponenten sich einen Platz teilen können. Nur die oberste Karte ist dabei jeweils sichtbar
java.awt Swing Komponenten Layout Manager Ausblick Was fehlt noch? Model-View-Controller (MVC) / model-delegate Actions, Events and Listeners (!) Borders Farben, Fonts und Zeichnen...