Bei jeder Standardinstallation befinden sich Java-Demos im Installationsverzeichnis
von Java unter demo/jfc/SwingSet3
. Mit einem Doppelklick lässt sich
das Jar-Archiv öffnen und das Programms starten.
Implementiere ein Swing-Programm, welches
Einige Softwareprodukte, wie etwa Winamp, haben für Fenster ein "Einrasten" implementiert. Wenn man etwa 20 Pixel vom Rand entfernt ist, heftet sich das Fenster automatisch an den Rand. Wie wird so etwas prinzipiell funktionieren?
Toolkit.getDefaultToolkit().getScreenSize()
.
Ein Fenster kann man mit setPosition()
auf eine absolute Stelle
setzen. Methode componentMoved()
ein Schlüssel zu dem Problem ist. Erzeuge ein Fenster und fange Maus-Events ab. Gib die Koordinaten auf dem Bildschirm aus.
Erzeuge ein Fenster. Die Applikation soll nun auf Eigenschaften wie Miniaturisieren
oder Schließen der Fenster reagieren. Dazu soll die Schnittstelle
java.awt.event.WindowListener implementiert werden. Die Applikation soll beim
Versuch des Schließens beendet werden (System.exit(0)
). Nimm den Quellcode
für einen MouseMotionListener als
Vorlage.
Implementiere die Hilfsklasse JClosableFrame
, die automatisch das
Fenster schließt, falls der Benutzer das X im Fensterrahmen (oder Alt+F4) drückt.
JClosableFrame
soll eine Unterklasse von
javax.swing.JFrame
sein. Achte auf die Behandlung der Ereignisse mit setDefaultCloseOperation()
.
Man kann dann diese Klasse für ihre eigenen Programme nutzen und muss sich dann
nicht mehr um die Schließen-Ereignisse kümmern. Zwar würde das Fenster mit
setDefaultCloseOperation()
auch geschlossen, aber wir könnten auf das Ende
nicht mehr mit einer eigenen Aktion reagieren.
showConfirmDialog()
,
um einen Bestätigungsdialog anzuzeigen. Die API-Dokumentation zeigt ein Beispiel
für diese Methode. Man kann als String eine Nachricht einsetzen, wie etwa "Soll
die Applikation wirklich beendet werden?"new
java.awt.Color(x,y,0)
.
Setze dann diese Farbe mit Hilfe der Funktion setColor()
. Lösung für ein JFrame mit JLabel
Ein javax.swing.JFrame soll über einen javax.swing.JButton auf dem Bildschirm verfügen. Wird der Button drückt, soll die Applikation geschlossen werden.
Wie kann eine Telefontastatur mit Hilfe eines java.awt.GridLayout gezeichnet werden?
Schreibe eine Swing-Applikation zum Umrechnen der DM-Beträge in Euro-Beträge.
Baue dazu eine grafische Oberfläche mit zwei Textfeldern (javax.swing.JTextField)
auf. Wenn man in der oberen Textbox (für Euro) etwas schreibt, dann sollte in der
unteren Textbox der Wert angezeigt werden. Die Umrechnung sollte umgekehrt genauso
funktionieren. Implementiere für die Ereignisbehandlung einen ActionListener.
Nutze ein
java.awt.BorderLayout,
um die Textfelder anzuordnen. (Man kann auch mit einem GridLayout-Manager rechts
den Text (Euro/DM) und links die Textfelder platzieren).
setBackground( new Color(0,0,0) )
erreichen. Viele einfache Programmiersprachen erlauben arithmetische Ausdrücke in umgekehrt Polnischer Notation (UPN). Ein bekanntes Beispiel dafür ist Postscript. Programmiere einen Taschenrechner, der mittels des java.util.StringTokenizer einen String (wie etwa 12 34 23 + *) parst und das Ergebnis auswertet.
Schreibe ein Programm zur Euro-Umrechnung. Dabei soll eine javax.swing.JList zu sehen sein. Wird in ein Eingabefeld ein Betrag eingesetzt, soll der Betrag in einem anderen Feld in der angewählten Währung ausgegeben werden. Bei der European Central Bank gibt es die aktuellen Kurse.