15.17 Rahmen (Borders)
 
Jeder Swing-Komponente kann mit der Methode setBorder() ein Rahmen zugewiesen werden. Ein Rahmen ist eine Klasse, die die Schnittstelle Border implementiert. Swing stellt einige Standardrahmen zur Verfügung:
Tabelle 15.3
Border in Swing
AbstractBorder
|
Eine abstrakte Klasse, die die Schnittstelle minimal implementiert
|
BevelBorder
|
Ein 3D-Rahmen, der eingelassen sein kann
|
CompoundBorder
|
Ein Rahmen, der andere Rahmen aufnehmen kann
|
EmptyBorder
|
Rahmen, dem freier Platz zugewiesen werden kann
|
EtchedBorder
|
Noch deutlicher markierter Rahmen
|
LineBorder
|
Rahmen in einer einfachen Farbe in gewünschter Dicke
|
MatteBorder
|
Rahmen, bestehend aus Kacheln von Icons
|
SoftBevelBorder
|
Ein 3D-Rahmen mit besonderen Ecken
|
TitledBorder
|
Rahmen mit String in einer gewünschten Ecke
|
 Hier klicken, um das Bild zu Vergrößern
Damit können wir ein kleines Testprogramm für Rahmen implementieren.
Listing 15.24
BorderDemo.java
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
public class BorderDemo
{
public static void main( String[] args )
{
JFrame frame = new JFrame();
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setLayout( new GridLayout(0,2,10,10) );
JButton b1 = new JButton( "Schamlis" );
b1.setBorder( new BevelBorder(BevelBorder.RAISED) );
frame.add( b1 );
JButton b2 = new JButton( "Borfluq" );
b2.setBorder( new BevelBorder(BevelBorder.LOWERED) );
frame.add( b2 );
JButton b3 = new JButton( "Tüm Tüm de Lüm" );
b3.setBorder( new EtchedBorder() );
frame.add( b3 );
JButton b4 = new JButton( "Skromm" );
b4.setBorder( new EtchedBorder(Color.blue, Color.yellow) );
frame.add( b4 );
frame.setSize( 500, 200 );
frame.setVisible( true );
}
}
 Hier klicken, um das Bild zu Vergrößern
Abbildung 15.17
BevelBorder und EtchedBorder
Hinweis Mit Hilfe statischer Funktionen createXXXBorder() der Klasse BorderFactory lassen sich ebenfalls Rahmen erzeugen. Die Methode liefert Rahmen-Objekte aus einem Objekt-Pool.
JPanel p = new JPanel();
p.setBorder( BorderFactory.createRaisedBevelBorder() );
|
|