82
GUI Entwicklung Sascha Just Softwarepraktikum 2014

09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

GUI Entwicklung Sascha JustSoftwarepraktikum 2014

Page 2: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Paper Prototyping

Page 3: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Paper Prototyping

Page 4: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

1.Paper PrototypingCredits: Nielsen Norman Group

Page 5: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

2.

1.Paper PrototypingCredits: Nielsen Norman Group

Page 6: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

2. 3.

1.Paper PrototypingCredits: Nielsen Norman Group

Page 7: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

2. 3. 4.

1.Paper PrototypingCredits: Nielsen Norman Group

Page 8: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

2. 3. 4.

1.

5.

Paper PrototypingCredits: Nielsen Norman Group

Page 9: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

2. 3. 4.

1.

5. 6.

Paper PrototypingCredits: Nielsen Norman Group

Page 10: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

2. 3. 4.

1.

5. 6. 7.

Paper PrototypingCredits: Nielsen Norman Group

Page 11: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Wireframing

Page 12: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Wireframing

Page 13: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Vorteile

Credits: Paper Prototyping

Page 14: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

• Schnelles Erstellen eines Mockups ohne dazu programmieren zu müssen.

Vorteile

Credits: Paper Prototyping

Page 15: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

• Schnelles Erstellen eines Mockups ohne dazu programmieren zu müssen.

• Entdeckt frühzeitig Probleme im Design.

Vorteile

Credits: Paper Prototyping

Page 16: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

• Schnelles Erstellen eines Mockups ohne dazu programmieren zu müssen.

• Entdeckt frühzeitig Probleme im Design.

• Ermöglicht das Einholen von User-Feedback vor dem Implementieren.

Vorteile

Credits: Paper Prototyping

Page 17: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

• Schnelles Erstellen eines Mockups ohne dazu programmieren zu müssen.

• Entdeckt frühzeitig Probleme im Design.

• Ermöglicht das Einholen von User-Feedback vor dem Implementieren.

• Ermöglicht Zusammenarbeit von Teams aus mehreren Disziplinen.

Vorteile

Credits: Paper Prototyping

Page 18: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Storyboards

Page 19: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

GUI Design Abnahme

Page 20: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.

‣ Status-Diagramme ‣ Status-Beschreibungen ‣ Status-Übergangsbeschreibung ‣ Interaktionsbeschreibung: GUI zu Datenquelle

(Simulator oder Logreader) und umgekehrt.

Was wir von Ihnen sehen möchten.

Page 21: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Status Diagramme

Welchen Status kann Ihre GUI annehmen?

Wie gelangt die GUI in welchen Status?

Page 22: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Start der GUI

Konfigurieren

Abspielen

A B C

Pausieren

Status Diagramme

BestätigungD

Neue Simulation

Page 23: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Status Beschreibungen

A. Uninitialisiert: Fenster: Main. Panels: Main:Control. Alle Buttons gesperrt, Menu>File>(Open, Quit) verfügbar.

B. Pausiert: Play-Button nutzbar, Spielfeld präsent in Panel Main:Map. Spielstände in Panel Main:Info angezeigt.

C. Laufende Simulation: … D. Warten auf Konfiguration: … E. …

Page 24: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Status Übergänge

Start der GUI: Erstellung des Hauptfensters (Main) mit Panel Main:Control.

Konfiguration: Konfigurieren-Button öffnet Dialog:Config

Bestätigung: Dialog:Config:OK-Button + gültige Einstellungen schließt Dialog und erstellen Panel Main:Main und Main:Info.

Laufende Simulation: Drücken des Main:Control:Play-Buttons startet Simulation und setzt Pause-Symbol für Main:Control:Play-Button.

Page 25: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Interaktion mit Datenquelle

Simulator Log Reader

In Ihrem Fall zwei Möglichkeiten:

Page 26: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Interaktion mit Simulator

Main:Control:Play#click startet neuen Simulator-Thread

GUI zu Simulator

Main:Control:Pause#click signalisiert dem Simulator-Thread zu warten

Main:Control:Turn#change signalisiert dem Simulator-Thread Daten ab der angegebenen Runde zu senden.

Page 27: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Interaktion mit Simulator

Simulation bereitSetzt GUI in Pausiert-Status (freigeben der Elemente: Play, …)

Simulator zu GUI

Ende der SimulationSetzt GUI in End-Status und veranlasst Anzeigen des Punktestands.

Page 28: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Mockups Demo

Page 29: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

GUI Frameworks

JavaFXSwing GWT

http://docs.oracle.com/javase/8/javase-clienttechnologies.htm

Page 30: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Paper Prototype zu GUI.

Page 31: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

JavaFX Scene Builder Demo

Page 32: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

FXML in Eclipse verknüpfen: Demo

Page 33: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

JavaFX Linkshttp://docs.oracle.com/javafx/2/get_started/jfxpub-get_started.htm

Swing Linkshttp://docs.oracle.com/javase/tutorial/uiswing/start/index.html

http://docs.oracle.com/javase/8/javafx/get-started-tutorial/get_start_apps.htm#JFXST804

http://code.makery.ch/java/javafx-8-tutorial-intro/

https://www.youtube.com/watch?v=ij0HwRAlCmo

Page 34: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Java GUI Toolkits

Page 35: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Java GUI Toolkits

AWT

Page 36: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Java GUI Toolkits

AWT Swing

Page 37: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Java GUI Toolkits

AWT Swing Accessibility

Page 38: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Java GUI Toolkits

AWT Swing AccessibilityJava2D

Page 39: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Java GUI Toolkits

AWT Swing AccessibilityJava2D

Dragand

Drop

Page 40: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Java GUI Toolkits

AWT Swing AccessibilityJava2D

Dragand

Drop

+ Standard Widget Toolkit (SWT) • + Qt Jambi • …

Page 41: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Java GUI Toolkits

SwingJava2D

Page 42: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Frames

Page 43: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Framesjava.lang.Object

java.awt.Component

java.awt.Container

java.awt.Window

java.awt.Frame

javax.swing.JFrame

Page 44: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Framesjava.lang.Object

java.awt.Component

java.awt.Container

java.awt.Window

java.awt.Frame

javax.swing.JFrame JFrame frame = new JFrame("HelloWorldSwing");

Page 45: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Framesjava.lang.Object

java.awt.Component

java.awt.Container

java.awt.Window

java.awt.Frame

javax.swing.JFrame JFrame frame = new JFrame("HelloWorldSwing");

Page 46: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Hello Worldprivate static void createAndShowGUI() { //Create and set up the window. JFrame frame = new JFrame("HelloWorldSwing"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);! //Add the ubiquitous "Hello World" label. JLabel label = new JLabel("Hello World"); frame.getContentPane().add(label);! //Display the window. frame.pack(); frame.setVisible(true);}

Page 47: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Hello Worldimport javax.swing.*; !public class HelloWorldSwing { private static void createAndShowGUI() { /* see above */ } public static void main(String[] args) { //Schedule a job for the event-dispatching thread: //creating and showing this application's GUI. javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); }}

Page 48: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Elemente hinzufügen

Page 49: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Elemente hinzufügenpublic Component add(Component c);

Page 50: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Elemente hinzufügenpublic Component add(Component c);Component

Container

Window

Frame

JFrame

JComponent

JLabel

JPanel

AbstractButton

JButton

… und hunderte weitere Elemente!

Page 51: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Layout

frame.getContentPane().setLayout(new FlowLayout());

Page 52: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Layout

frame.getContentPane().setLayout(new FlowLayout());

Page 53: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Layout

frame.getContentPane().setLayout(new FlowLayout());

Page 54: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Layout

frame.getContentPane().setLayout(new FlowLayout());

Page 55: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Layout

frame.getContentPane().setLayout(new FlowLayout());

Page 56: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Aktionen

Page 57: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

1. Für jede Aktion eigene Klasse implementieren

Aktionen

Page 58: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

1. Für jede Aktion eigene Klasse implementieren

Aktionen

public class MyClass implements ActionListener { public void actionPerformed(ActionEvent e) { ...//code that reacts to the action... }

Page 59: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

1. Für jede Aktion eigene Klasse implementieren

2. Objekt der Klasse beim Bedienelement registrieren

Aktionen

public class MyClass implements ActionListener { public void actionPerformed(ActionEvent e) { ...//code that reacts to the action... }

Page 60: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

1. Für jede Aktion eigene Klasse implementieren

2. Objekt der Klasse beim Bedienelement registrieren

Aktionen

public class MyClass implements ActionListener { public void actionPerformed(ActionEvent e) { ...//code that reacts to the action... }

someComponent.addActionListener(instanceOfMyClass);

auch WindowListener, ChangeListener, MouseListener…

Page 61: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Model-View-Controller

Bundestagswahl 22.09.2013

Page 62: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Model-View-ControllerCDU/CSU 41,5%

Bundestagswahl 22.09.2013

Page 63: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Model-View-ControllerCDU/CSU 41,5%

SPD 25,7%

Bundestagswahl 22.09.2013

Page 64: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Model-View-ControllerCDU/CSU 41,5%

SPD 25,7%

GRÜNE 8,4%

Bundestagswahl 22.09.2013

Page 65: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Model-View-ControllerCDU/CSU 41,5%

SPD 25,7%

GRÜNE 8,4%

FDP 4,8%

Bundestagswahl 22.09.2013

Page 66: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Model-View-ControllerCDU/CSU 41,5%

SPD 25,7%

GRÜNE 8,4%

FDP 4,8%

LINKE 8,6%

Bundestagswahl 22.09.2013

Page 67: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Model-View-ControllerCDU/CSU 41,5%

SPD 25,7%

GRÜNE 8,4%

FDP 4,8%

LINKE 8,6%

AfD 4,7%Bundestagswahl 22.09.2013

Page 68: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Model-View-ControllerCDU/CSU 41,5%

SPD 25,7%

GRÜNE 8,4%

FDP 4,8%

LINKE 8,6%

AfD 4,7%

Sonstige 6,2%Bundestagswahl 22.09.2013

Page 69: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Model-View-ControllerCDU/CSU 41,5%

SPD 25,7%

GRÜNE 8,4%

FDP 4,8%

LINKE 8,6%

AfD 4,7%

Sonstige 6,2%Bundestagswahl 22.09.2013

Page 70: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Model-View-ControllerCDU/CSU 41,5%

SPD 25,7%

GRÜNE 8,4%

FDP 4,8%

LINKE 8,6%

AfD 4,7%

Sonstige 6,2%Bundestagswahl 22.09.2013

Page 71: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Model-View-ControllerCDU/CSU 41,5%

SPD 25,7%

GRÜNE 8,4%

FDP 4,8%

LINKE 8,6%

AfD 4,7%

Sonstige 6,2%

CDU/CSU 41,5%

SPD 25,7%

GRÜNE 8,4%

FDP 4,8%

LINKE 8,6%

AfD 4,7%

Sonstige 6,2%

Bundestagswahl 22.09.2013

Page 72: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Grafik

Page 73: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Grafik

Vektor

Page 74: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Grafik

Vektor Pixel

Page 75: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Icons

Page 76: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Icons

Page 77: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

IconsmageIcon icon = createImageIcon("images/middle.gif", "pretty but meaningless");label1 = new JLabel("Image and Text", icon, JLabel.CENTER);...label3 = new JLabel(icon);

Page 78: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

IconsmageIcon icon = createImageIcon("images/middle.gif", "pretty but meaningless");label1 = new JLabel("Image and Text", icon, JLabel.CENTER);...label3 = new JLabel(icon);

/** Returns an ImageIcon, or null if the path was invalid. */protected ImageIcon createImageIcon(String path, String description) { java.net.URL imgURL = getClass().getResource(path); if (imgURL != null) { return new ImageIcon(imgURL, description); } else { System.err.println("Couldn't find file: " + path); return null; }}

Page 79: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Vektorgrafik

Page 80: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Vektorgrafikjava.lang.Object

java.awt.Graphics

java.awt.Graphics2D

Page 81: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Vektorgrafikjava.lang.Object

java.awt.Graphics

java.awt.Graphics2D

JPanel

My Own Panel

JComponent

Page 82: 09. GUI Entwicklung · 2018-04-05 · Credits: Paper Prototyping. Storyboards. GUI Design Abnahme ‣ Paper Prototype/Wireframe (Papier oder Digital) mit klar erkennbaren Elementen.!

Vektorgrafikimport java.awt.Graphics2D;!public class CellPanel extends JPanel {! public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; drawItall(g2d); }! private void drawItAll(Graphics2D g2d) { g2d.drawImage(…); g2d.drawString(…); g2d.drawLine(…); }}

java.lang.Object

java.awt.Graphics

java.awt.Graphics2D

JPanel

My Own Panel

JComponent