15.16 Symbolleisten alias Toolbars
Mit der Klasse JToolBar, die unter dem AWT keine Entsprechung besitzt, lassen sich Symbolleisten erstellen. Diese Symbolleisten erhalten häufig eine Menge von Schaltflächen, die horizontal oder vertikal angeordnet sein dürfen. Für die JToolBar-Klasse ist dies aber unerheblich, denn sie nimmt beliebige Swing-Komponenten an. Schöner sieht es jedoch aus, wenn alle Komponenten die gleiche Größe besitzen.
Listing 15.21 JToolBarDemo.java
import java.awt.*;
import javax.swing.*;
public class JToolBarDemo
{
public static void main( String args[] )
{
JFrame frame = new JFrame();
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
// Erste Symbolleiste
JToolBar toolbar = new JToolBar();
toolbar.add( new JButton("Compile") );
toolbar.add( new JButton("Undo") );
toolbar.addSeparator();
toolbar.add( new Checkbox("Love Bill") );
toolbar.add( new JComboBox() );
frame.getContentPane().add( toolbar, BorderLayout.NORTH );
// Zweite Symbolleiste
toolbar = new JToolBar();
Icon iconOk = new ImageIcon( ImageIconDemo.class.getResource("ok.gif") );
Icon iconNo = new ImageIcon( ImageIconDemo.class.getResource("not.gif") );
toolbar.add( new JButton(iconOk) );
toolbar.add( new JButton(iconNo) );
frame.getContentPane().add( toolbar, BorderLayout.SOUTH );
frame.pack();
frame.show();
}
}
Interessant ist auch, dass der Benutzer die Symbolleisten frei verschieben kann. Dann erscheinen die aufgenommenen Komponenten in einem eigenen Fenster mit einem Titel, der sich im Konstruktor festlegen lässt. Diese Eigenschaft kann mit der Methode setFloatable(false) aber ausgeschaltet werden. Das Fenster ist jedoch schwergewichtig.
Hier klicken, um das Bild zu Vergrößern
Abbildung 15.14 Fenster mit JToolbar-Objekten
class javax.swing.JToolBar
extends JComponent
implements SwingConstants, Accessible
|
|
JToolBar()
Erstellt eine neue horizontale Toolbar. |
|
JToolBar( String name )
Erstellt eine neue Toolbar, die einen Namen in der Titelleiste anzeigt, wenn die Toolbar als Fenster dargestellt wird. |
|
JToolBar( String name, int orientation )
Eine neue Toolbar mit Namen und Orientierung (entweder JToolBar.HORIZONAL oder VERTICAL). |
Aus der Oberklasse Container erben wir die Möglichkeit, mittels add() Elemente aufzunehmen. Dennoch kommen noch weitere Funktionen hinzu. Unter ihnen:
|
void addSeparator(), void addSeparator( Dimension d )
Fügt einen Freiraum ein. Bei der parameterlosen Variante bestimmt das aktuelle Look&Feel das Aussehen. |
|
void setRollover( boolean rollover )
Stellt die Elemente mit einem Roll-over-Effekt dar. Die Methode getRollover() erfragt diesen Zustand. |
|
void setFloatable( boolean f )
Lässt sich die Toolbar zu einem Fenster abreißen? Standardmäßig ja. getFloatable() erfragt das Flag. |
|