Titel   Inhalt   Suchen   Index   DOC  Handbuch der Java-Programmierung, 7. Auflage
 <<    <     >    >>   API  Kapitel 27 - Fenster

27.5 Fensterelemente



Neben den visuellen Eigenschaften eines Fensters gibt es noch eine Reihe weiterer Elemente, die einem Fenster zugeordnet werden können. Hierzu zählen die Titelleiste, das Menü, ein Icon, ein Mauscursor, eine bestimmte Vorder- und Hintergrundfarbe und ein Standard-Font zur Ausgabe von Schriften. Bis auf die Definition und die Zuordnung von Menüs, die in Kapitel 30 erläutert werden, soll der Umgang mit diesen Fensterelementen in den folgenden Unterabschnitten erklärt werden.

27.5.1 Der Fenstertitel

Die Titelleiste eines Fensters lässt sich in den Klassen Frame und Dialog mit Hilfe der Methode setTitle verändern:

public void setTitle(String title)

public String getTitle()
java.awt.Frame

Ein Aufruf dieser Methode ändert die Beschriftung der Titelleiste in den als String übergebenen Parameter title. Mit der Methode getTitle kann die Titelleiste abgefragt werden.

27.5.2 Das Icon des Fensters

Wenn ein Fenster unter Windows minimiert wird, zeigt es ein Icon an. Mit einem Klick auf das Icon in der Taskleiste kann die ursprüngliche Größe des Fensters wiederhergestellt werden. Mit Hilfe der Methode setIconImage der Klasse Frame kann dem Fenster ein Icon zugeordnet werden, das beim Minimieren angezeigt wird:

public void setIconImage(Image image)
java.awt.Frame

Beim Design des Icons steht man nun vor dem Konflikt, entscheiden zu müssen, in welcher Größe das Icon entworfen werden soll. Ein Windows-Programm hat meist ein Haupticon in der Größe 32*32 Pixel und ein kleineres Icon mit 16*16 Pixeln. Beide werden an unterschiedlichen Stellen im Programm benötigt. Das JDK ist glücklicherweise in der Lage, die übergebenen Images so zu skalieren, dass sie die jeweils benötigte Größe annehmen. Die Ergebnisse sind im Falle des großen Icons durchaus brauchbar (so hat z.B. das in Abbildung 27.3 gezeigte und in Listing 27.4 verwendete Icon eine Originalgröße von 60*56 Pixeln).

Abbildung 27.3: Das Beispiel-Icon

27.5.3 Der Mauscursor

Zur Darstellung des Mauscursors bietet die Klasse Component eine Methode setCursor, mit der ein Cursor-Objekt vorgegeben werden kann:

public void setCursor(Cursor cursor)
java.awt.Component

Die Klasse Cursor besitzt einen Konstruktor, der als einziges Argument eine ganzzahlige Konstante erwartet, mit der der gewünschte Cursor aus der Liste der vordefinierten Cursortypen ausgewählt werden kann. Tabelle 27.1 gibt eine Auswahl der verfügbaren Cursortypen an.

Konstante aus Frame Cursorform
Cursor.CROSSHAIR_CURSOR Fadenkreuz
Cursor.DEFAULT_CURSOR Standardpfeil
Cursor.MOVE_CURSOR Vierfachpfeil
Cursor.TEXT_CURSOR Senkrechter Strich
Cursor.WAIT_CURSOR Eieruhr

Tabelle 27.1: Konstanten zur Cursorauswahl

Das freie Erstellen benutzerdefinierter Cursortypen wird seit dem JDK 1.2 unterstützt. Dazu gibt es in der Klasse Toolkit die Methoden createCustomCursor, getBestCursorSize und getMaximumCursorColors. Wir wollen darauf nicht näher eingehen.

 Tip 

27.5.4 Die Vorder- und Hintergrundfarbe

Die Hintergrundfarbe eines Fensters wird vor dem Aufruf von paint verwendet, um den Hintergrund des Fensters zu löschen. Das Löschen kann man sich so vorstellen, dass ein gefülltes Rechteck in der Größe der Client-Area in der aktuellen Hintergrundfarbe gezeichnet wird. Die Vordergrundfarbe dient zur Ausgabe von Grafik- und Textobjekten, wenn im Grafikkontext keine andere Farbe gesetzt wird. Wird die Einstellung nicht geändert, werden in beiden Fällen die unter Windows eingestellten Standardfarben verwendet. Mit Hilfe der Methoden setForeground und setBackground der Klasse Component können Vorder- und Hintergrundfarbe eines Fensters geändert werden:

public void setBackground(Color c)

public void setForeground(Color c)
java.awt.Component

27.5.5 Der Standard-Font

Ein Fenster hat einen Standard-Font, der zur Ausgabe von Schrift verwendet wird, wenn nicht im Grafikkontext ein anderer Font ausgewählt wird. Die Verwendung eines Standard-Fonts macht Sinn, wenn nur ein Font verwendet werden soll, um Text darzustellen. Dadurch ergeben sich Laufzeitvorteile gegenüber der separaten Auswahl eines Fonts bei jedem Aufruf von paint. Der Standard-Font eines Fensters wird mit der Methode setFont der Klasse Component eingestellt:

public void setFont(Font f)
java.awt.Component

Das folgende Beispielprogramm erzeugt ein Fenster mit einer Titelleiste, gesetzter Vorder- und Hintergrundfarbe und der Eieruhr als Cursor. Zusätzlich besitzt das Programm das in Abbildung 27.3 gezeigte Icon, das beim Minimieren des Programms und in der Taskleiste angezeigt wird.

001 /* Listing2704.java */
002 
003 import java.awt.*;
004 
005 public class Listing2704
006 extends Frame
007 {
008   public static void main(String[] args)
009   {
010     Listing2704 wnd = new Listing2704();
011     wnd.setSize(300,200);
012     wnd.setLocation(50,50);
013     wnd.setVisible(true);
014   }
015 
016   public Listing2704()
017   {
018     super();
019     assignTitle();
020     assignIcon();
021     assignCursor();
022     assignColors();
023     assignFont();
024     addWindowListener(new WindowClosingAdapter(true));
025   }
026 
027   private void assignTitle()
028   {
029     setTitle("Veränderte Fensterelemente");
030   }
031 
032   private void assignIcon()
033   {
034     Image img = getToolkit().getImage("testicon.gif");
035     MediaTracker mt = new MediaTracker(this);
036 
037     mt.addImage(img, 0);
038     try {
039       //Warten, bis das Image vollständig geladen ist,
040       mt.waitForAll();
041     } catch (InterruptedException e) {
042       //nothing
043     }
044     setIconImage(img);
045   }
046 
047   private void assignCursor()
048   {
049     setCursor(new Cursor(Cursor.WAIT_CURSOR));
050   }
051 
052   private void assignColors()
053   {
054     setForeground(Color.white);
055     setBackground(Color.black);
056   }
057 
058   private void assignFont()
059   {
060     setFont(new Font("Serif", Font.PLAIN, 28));
061   }
062 
063   public void paint(Graphics g)
064   {
065     g.drawString("Test in Vordergrundfarbe",10,70);
066   }
067 }
Listing2704.java
Listing 27.4: Ein Programm mit veränderten Fensterelementen

Die Programmausgabe ist wie folgt:

Abbildung 27.4: Ein Programm mit veränderten Fensterelementen

In vielen Beispielen in diesem Buch wird der Einfachheit halber die in Abschnitt 24.2.4 vorgestellte Klasse WindowClosingAdapter verwendet, um einen Listener zum Schließen des Fensters zu registrieren. Damit ein solches Beispiel sich kompilieren lässt, muss die Datei WindowClosingAdapter.java im aktuellen Verzeichnis vorhanden sein. Sie befindet sich auf der DVD zum Buch oder in Listing 24.2.

 Hinweis 


 Titel   Inhalt   Suchen   Index   DOC  Handbuch der Java-Programmierung, 7. Auflage, Addison Wesley, Version 7.0
 <<    <     >    >>   API  © 1998, 2011 Guido Krüger & Heiko Hansen, http://www.javabuch.de