Verwenden von BorderFactory zum Erstellen von Rahmen

Um einer Komponente oder einem Container einen Rahmen hinzuzufügen, können Sie die java  BorderFactory das viele Arten von Swing-Rahmen bereitstellt. Die drei Schritte zum Erstellen eines Rahmens sind:
  • Erstellen Sie einen Rahmen, indem Sie den Border.
  • Wählen Sie den Rahmenstil mit der BorderFactory.create... ().
  • Ändern Sie den JComponent (Komponente) mit der Methode setBorder.

LineBorder

Diese Methode BorderFactory.createLineBorder(Color, int) erstellt einen einzelnen Rahmen. Der erste Parameter stellt die Farbe und der zweite die Breite der Linie dar.

Der folgende Code erstellt einen Rahmen in JLabel und JPanel.

import java.awt.BorderLayout; 
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.Border;

public class BorderFactoryExample extends JPanel{

public BorderFactoryExample(){

JFrame f = new JFrame("BorderFactoryExample");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);

JPanel-Panel = new JPanel();
JLabel label = new JLabel(" lineBorder");
label.setPreferredSize(new Dimension(100, 100));
panel.add(label);
panel.setPreferredSize(new Dimension(200,125));
//Erstellen eines schwarzen Linienrahmens und einer Mindestbreite 1
Border lineborder = BorderFactory.createLineBorder(Color.black, 1);
//mit JLabel
label.setBorder(lineborder);

f.getContentPane().setLayout(new BorderLayout());
f.add(new JLabel(" "), BorderLayout.NORTH);
//an Mitte anpassen
f.add(panel, BorderLayout.CENTER);
f.pack();

}
public static void main(String[] args) {
new BorderFactoryExample();
}
}
Output
BorderFactory Beispiel lineBorder

EtchedBorder

Etched bedeutet in Französisch graviert, entweder von außen: EtchedBorder.RAISED, oder von innen: EtchedBorder.LOWERED.

RAISED

Border EtchedBorderRaised = BorderFactory.createEtchedBorder(EtchedBorder.RAISED); 
borderfactory raised

LOWERED

Border EtchedBorderLowered = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED); 
borderfactory lowered

RaisedBevelBorder

Erstellt einen Rahmen als lose Schaltfläche mit hellen Schattierungen und dunkleren Schattierungen für Schatten.

 Border RaisedBevelBorder = BorderFactory.createRaisedBevelBorder(); 
borderfactory erhöhte abgeschrägte Grenze

LoweredBevelBorder

Erstellt einen Rahmen als gedrückten Knopf mit hellen und dunkleren Schattierungen für Schatten.

Border LoweredBevelBorder = BorderFactory.createLoweredBevelBorder(); 
borderfactory abgesenkter Abschrägungsrand

MatteBorder

Erstellen Sie einen Rahmen mit 5 Parametern, die ersten 4 verarbeiten die Breite der linken, rechten, oberen und unteren Linie, und der letzte, der die Kanten einfärbt.

Border matteborder = BorderFactory.createMatteBorder(1, 1, 3, 1, Color.blue); 
borderfactory matteborder

Sie können es auch hübscher machen, indem Sie ein Symbol hinzufügen, das um den Rahmen herum neu gestaltet:

ImageIcon icon = new ImageIcon("etoile.png"); 
Border matteborder = BorderFactory.createMatteBorder(1, 1, 3, 1, icon);
borderfactory matteborder icon

TitledBorder

TitledBorder hat fünf Konstruktoren, wir haben uns entschieden, ein Beispiel mit dem zu erstellen, das alle Parameter enthält, mit denen Sie einem Rahmen mit einem bestimmten Rahmenstil einen Titel hinzufügen können,   position, schriftart und farbe.

Border LoweredBevelBorder = BorderFactory.createLoweredBevelBorder(); 
Border EtchedBorderRaised = BorderFactory.createTitledBorder(LoweredBevelBorder, "title",
TitledBorder.LEFT,TitledBorder.TOP, 
new Font("Arial", Font.PLAIN , 13), Color.black);
borderfactory titledborder

EtchedBorder

Dieser Stil kombiniert zwei Stile zu einem. Zum Beispiel möchten wir einen LineBorder innerhalb von RaisedBevelBorder:

Border lineborder = BorderFactory.createLoweredBevelBorder(); 
Border RaisedBevelBorder = BorderFactory.createLineBorder(Color.blue);
Border EtchedBorderRaised = BorderFactory.createCompoundBorder(lineborder,
RaisedBevelBorder);
BorderFactory EtchedBorder

References
Oracle Dokumentation: BorderFactory
java2s: create Use BorderFactory