Utiliser BorderFactory pour créer des bordures
Pour ajouter une bordure à un composant ou un conteneur, vous pouvez utiliser la classe java BorderFactory qui fournit de nombreuses types de bordures Swing. Les trois étapes de la création d'une bordure sont:- Créer une bordure en instanciant la classe Border.
- Choisir le style de la bordure avec la méthode BorderFactory.create...().
- Modifier le JComponent (composant) avec la méthode setBorder.
LineBorder
Cette méthode BorderFactory.createLineBorder(Color, int) crée une simple bordure. Le premier paramètre représente la couleur et le deuxième, la largeur du trait.Le code suivant crée une Border dans JLabel et JPanel.
import java.awt.BorderLayout;Sortie
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 BorderFactoryExemple extends JPanel{
public BorderFactoryExemple(){
JFrame f = new JFrame("BorderFactoryExemple");
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));
//créer une bordure de trait noir et largeur minimale 1
Border lineborder = BorderFactory.createLineBorder(Color.black, 1);
//associer à JLabel
label.setBorder(lineborder);
f.getContentPane().setLayout(new BorderLayout());
f.add(new JLabel(" "), BorderLayout.NORTH);
//adjuster au centre
f.add(panel, BorderLayout.CENTER);
f.pack();
}
public static void main(String[] args) {
new BorderFactoryExemple();
}
}
EtchedBorder
Etched signifie gravé en français, soit de l’extérieur: EtchedBorder.RAISED, soit de l'intérieur: EtchedBorder.LOWERED.RAISED
Border EtchedBorderRaised = BorderFactory.createEtchedBorder(EtchedBorder.RAISED);
Border EtchedBorderLowered = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED);
RaisedBevelBorder
Crée une bordure sous forme d'un bouton relâché avec des nuances lumineuses et plus sombre pour les ombres.
Crée une bordure sous forme d'un bouton appuyé avec des nuances lumineuses et plus sombre pour les ombres.
Border LoweredBevelBorder = BorderFactory.createLoweredBevelBorder();
Crée une bordure avec 5 paramètres, les 4 premiers traitent la largeur du trait gauche, droit, haut et bas, et le dernier pour colorer les bords.
Border matteborder = BorderFactory.createMatteBorder(1, 1, 3, 1, Color.blue);
On peut aussi rendre plus jolie en ajoutant un icone qui se redéssine autour de la bordure:
ImageIcon icone = new ImageIcon("etoile.png");
Border matteborder = BorderFactory.createMatteBorder(1, 1, 3, 1, icone);
TitledBorder
TitledBorder a cinq constructeurs, on a choisi de faire un exemple avec celui qui englobe tous les paramètres qui permettent d'ajouter un titre a une bordure avec un style de bordure précis, position, font et couleur.
Border LoweredBevelBorder = BorderFactory.createLoweredBevelBorder();
Border EtchedBorderRaised = BorderFactory.createTitledBorder(LoweredBevelBorder, "titre",
TitledBorder.LEFT,TitledBorder.TOP,
new Font("Arial", Font.PLAIN , 13), Color.black);
EtchedBorder
Ce style regroupe deux styles en un seul. Par exemple, on veut dessiner une LineBorder à l'intérieur de RaisedBevelBorder:
Border lineborder = BorderFactory.createLoweredBevelBorder();
Border RaisedBevelBorder = BorderFactory.createLineBorder(Color.blue);
Border EtchedBorderRaised = BorderFactory.createCompoundBorder(lineborder,
RaisedBevelBorder);
Oracle Documentation: BorderFactory
java2s: create Use BorderFactory