import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;

public class Bordures extends JPanel {
  
  private static JPanel createBorderPanel(Border border) {
    JPanel panel= new JPanel(new BorderLayout());
    panel.setBorder(border);
    
    JLabel label=new JLabel(border.getClass().getName(),JLabel.CENTER);
    panel.add(label);
    return panel;
  }
  
  private static JPanel createMainPanel() {
    JPanel panel=new JPanel(new GridLayout(4, 2));
    
    panel.add(createBorderPanel(
      BorderFactory.createTitledBorder("Titre")));
    panel.add(createBorderPanel(
      BorderFactory.createEtchedBorder()));
    panel.add(createBorderPanel(
      BorderFactory.createMatteBorder(5, 30, 10, 30, Color.green)));
    panel.add(createBorderPanel(
      BorderFactory.createLineBorder(Color.BLUE)));
    panel.add(createBorderPanel(
      BorderFactory.createBevelBorder(BevelBorder.RAISED)));
      
    
    panel.add(createBorderPanel(
      new SoftBevelBorder(BevelBorder.LOWERED)));
      
    panel.add(
      createBorderPanel(
        new CompoundBorder(
          BorderFactory.createEtchedBorder(),
          BorderFactory.createLineBorder(Color.RED))));
    
    Border emptyBorder= new EmptyBorder(3, 3, 3, 4);
    Border border= new CompoundBorder(emptyBorder, new LineBorder(Color.blue, 3));
    border= new CompoundBorder(new LineBorder(Color.red, 3), border);
    border= new CompoundBorder(emptyBorder, border);
    border= new CompoundBorder(new LineBorder(Color.green, 3), border);
    border= new CompoundBorder(emptyBorder, border);
    
    panel.add(
      createBorderPanel(border));
      
    return panel;
  }
  
  public static void main(String[] args) {
    JFrame frame=new JFrame("Exemple de Bordures");
    frame.setContentPane(createMainPanel());
    frame.setSize(600,400);
    frame.show();
  }
}
