
 |
 |
Graphische Benutzungsoberfl"achen (Blatt 11)
Betreuer: Martin Kraus, Klaus
Engel, Norbert Frisch, Sabine Iserhardt-Bauer
Grundlagen der
interaktiven Systeme (Blatt 11)
Aufgabe 11.1 [3 Punkte] Benutzungsoberflächen
Apple hat kürzlich den neuen ,,Look``, der Aqua genannt
wird, seines Betriebssystems MacOS X vorgestellt.
Unter http://www.apple.com/macosx/aqua.html finden Sie einige
Informationen dazu. Listen Sie zunächst stichpunktartig auf,
was sich bezüglich Icons, Fenstern und Dialogenboxen geändert hat.
Die Änderungen der Oberfläche sind zum Teil Reaktionen auf
Weiterentwicklungen der Hardware und des eigentlichen Betriebssystems.
Versuchen Sie für die dargestellten Änderungen solche Gründe
zu finden.
Aufgabe 11.2 [4 Punkte] Einfache Dialoge
Die Swing-Klasse JOptionPane (Dokumentation unter http://web2.java.sun.com/
products//jdk/1.2/docs/api/javax/swing/JOptionPane.html)
bietet die Möglichkeit einfache Dialoge zu erzeugen. Hier ein Beispiel:
import javax.swing.*;
public class DialogDemo extends JFrame
{
public static void main(String args[])
{
Object[] knoepfe = {"Eins", "Zwei", "Drei", "Vier"};
int auswahl;
auswahl = JOptionPane.showOptionDialog(null,
"Bitte waehlen", "Auswahl", JOptionPane.YES_NO_OPTION,
JOptionPane.INFORMATION_MESSAGE, null,
knoepfe, knoepfe[0]);
System.out.println(auswahl);
}
}
Neben der Methode showOptionDialog ist auch die Methode
showInputDialog(null,''Nachricht'') interessant, die einen
vom Benutzer eingegebenen String zurückgibt.
- Ersetzen Sie in dem Programm die Methode showOptionDialog durch
showInputDialog und senden Sie das Programm an
gis-uebungen@informatik.uni-stuttgart.de unter dem Subject
GIS-Uebungen 11.
- Welche der in der Vorlesung besprochenen
Interaktionstechniken werden von diesen Methoden jeweils benutzt?
- Welche Interaktionsaufgaben und -stile können mit diesen
Methoden jeweils implementiert werden?
- Es gibt ein Ungleichgewicht zwischen der Anzahl der möglichen
Interaktionsaufgaben und -stile; welche Gefahr könnte sich daraus
ergeben?
Aufgabe 11.3 [3 Punkte] Fenster-Events
Um in Java Fenster-Events abzufangen, muss ein Objekt der
Klasse WindowListener definiert werden. WindowListener
ist aber eine abstrakte Klasse, von der keine Objekte erzeugt
werden können, deshalb muss zunächst eine Klasse von WindowListener
abgeleitet werden, in der alle abstrakten Methoden implementiert
werden. Das folgende Beispiel implementiert nicht alle abstrakten
Methoden von WindowListener, deswegen wird ein Java-Compiler
zu jeder noch nicht implementierten abstrakten Methode eine Fehlermeldung
erzeugen.
-
Ergänzen Sie das Beispiel ausgehend von diesen Fehlermeldungen.
-
Analog zu Aufgabe 10.3 kann auch die WindowEventDemo-Klasse
selbst die Klasse WindowListener implementieren, so dass
auf die Klasse myWindowListener verzichtet werden kann.
Ändern Sie das Programm entsprechend und schicken Sie die beiden Programme
an die E-mail-Adresse gis-uebungen@informatik.uni-stuttgart.de
mit dem Subject GIS-Uebungen 11.
-
Welche Fenster-Events werden beim Schließen, Ikonifizieren
und Deikonifiziern erzeugt? Können Sie zwei Deaktivierungs-Events
ohne Aktivierungs-Event dazwischen erzeugen?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class WindowEventDemo extends JFrame
{
public static void main(String args[])
{
WindowEventDemo w = new WindowEventDemo();
w.pack();
w.setVisible(true);
}
public WindowEventDemo()
{
addWindowListener(new myWindowListener());
}
public Dimension getPreferredSize()
{
return new Dimension(300, 200);
}
}
class myWindowListener implements WindowListener
{
public void windowActivated(WindowEvent e)
{
System.out.println("Window activated.");
}
public void windowClosed(WindowEvent e)
{
System.out.println("Window closed.");
e.getWindow().dispose();
System.exit(0);
}
public void windowClosing(WindowEvent e)
{
System.out.println("Window closing.");
e.getWindow().dispose();
}
/* weitere Methoden */
}
Abgabe: Mittwoch, 26. 1. 2000, vor der Vorlesung
Martin Kraus
Wed Jan 19 16:26:22 MEZ 2000
|
|