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;Output
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();
}
}
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);
Border EtchedBorderLowered = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED);
RaisedBevelBorder
Erstellt einen Rahmen als lose Schaltfläche mit hellen Schattierungen und dunkleren Schattierungen für Schatten.
Erstellt einen Rahmen als gedrückten Knopf mit hellen und dunkleren Schattierungen für Schatten.
Border LoweredBevelBorder = BorderFactory.createLoweredBevelBorder();
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);
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);
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);
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);
Oracle Dokumentation: BorderFactory
java2s: create Use BorderFactory