# javax.swing.border

***

**1. Basic Border:**

```java
import javax.swing.border.Border;
import javax.swing.border.LineBorder;

Border border = new LineBorder(Color.RED);
```

**2. Title Border:**

```java
import javax.swing.border.TitledBorder;

TitledBorder border = new TitledBorder("My Title");
```

**3. Compound Border:**

```java
import javax.swing.border.Border;
import javax.swing.border.CompoundBorder;
import javax.swing.border.LineBorder;

Border outerBorder = new LineBorder(Color.RED, 5);
Border innerBorder = new LineBorder(Color.BLUE, 2);
Border compoundBorder = new CompoundBorder(outerBorder, innerBorder);
```

**4. Empty Border:**

```java
import javax.swing.border.EmptyBorder;

Border border = new EmptyBorder(5, 10, 15, 20); // Top, left, bottom, right margins
```

**5. Bevel Border:**

```java
import javax.swing.border.BevelBorder;

Border border = new BevelBorder(BevelBorder.RAISED);
```

**6. Matte Border:**

```java
import javax.swing.border.MatteBorder;

Border border = new MatteBorder(5, 10, 15, 20, Color.RED); // Top, left, bottom, right margins and color
```

**7. Etched Border:**

```java
import javax.swing.border.EtchedBorder;

Border border = new EtchedBorder(EtchedBorder.RAISED);
```

**8. Line Border:**

```java
import javax.swing.border.LineBorder;

Border border = new LineBorder(Color.BLUE, 3, true); // Thickness, rounded corners
```

**9. Dashed Line Border:**

```java
import javax.swing.border.LineBorder;

Border border = new LineBorder(Color.GREEN, 2, true, 5, 5); // Thickness, rounded corners, dash length, gap length
```

**10. Soft Bevel Border:**

```java
import javax.swing.border.SoftBevelBorder;

Border border = new SoftBevelBorder(SoftBevelBorder.RAISED);
```

**11. Titled Line Border:**

```java
import javax.swing.border.TitledBorder;
import javax.swing.border.LineBorder;

Border border = new TitledBorder(new LineBorder(Color.BLACK), "My Title");
```

**12. Compound Border with Title:**

```java
import javax.swing.border.CompoundBorder;
import javax.swing.border.TitledBorder;
import javax.swing.border.LineBorder;

Border outerBorder = new LineBorder(Color.RED, 5);
Border innerBorder = new TitledBorder(new LineBorder(Color.BLUE, 2), "My Title");
Border compoundBorder = new CompoundBorder(outerBorder, innerBorder);
```

**13. Gradient Border:**

```java
import com.alee.laf.border.WebBorderFactory;
import com.alee.laf.skin.WebLookAndFeel;

WebLookAndFeel.install(); // Install Alee look and feel
Border border = WebBorderFactory.createLineBorder(new Color(255, 255, 255), 2); // Color and thickness
```

**14. Round Rect Border:**

```java
import javax.swing.border.RoundRectBorder;

Border border = new RoundRectBorder(10, 10, 10, 10); // Arc width and height
```

**15. Matte Border with Rounded Corners:**

```java
import javax.swing.border.MatteBorder;
import java.awt.Insets;

Border border = new MatteBorder(new Insets(5, 10, 15, 20), Color.RED, 10, 10); // Margins, color, arc width and height
```

**16. Compound Border with Gradient and Title:**

```java
import com.alee.laf.border.WebBorderFactory;
import javax.swing.border.TitledBorder;
import com.alee.laf.skin.WebLookAndFeel;

WebLookAndFeel.install(); // Install Alee look and feel
Border outerBorder = WebBorderFactory.createLineBorder(new Color(255, 255, 255), 2);
Border innerBorder = new TitledBorder(outerBorder, "My Title");
Border compoundBorder = new CompoundBorder(outerBorder, innerBorder);
```

**17. Scalable Border:**

```java
import java.awt.Insets;
import java.awt.Dimension;
import javax.swing.border.AbstractBorder;

class ScalableBorder extends AbstractBorder {

    private int top, left, bottom, right;

    public ScalableBorder(int top, int left, int bottom, int right) {
        this.top = top;
        this.left = left;
        this.bottom = bottom;
        this.right = right;
    }

    @Override
    public Insets getBorderInsets(Component c) {
        Dimension size = c.getSize();
        return new Insets(
            (int) (top * size.height),
            (int) (left * size.width),
            (int) (bottom * size.height),
            (int) (right * size.width));
    }
}
```

**18. Dotted Line Border:**

```java
import javax.swing.border.LineBorder;
import java.awt.BasicStroke;

Border border = new LineBorder(Color.GREEN, 2, true, 5, 5, new BasicStroke(1.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0.0f, new float[] { 5.0f, 5.0f }, 0.0f));
```

**19. Compound Border with Rounded Corner:**

```java
import javax.swing.border.CompoundBorder;
import javax.swing.border.LineBorder;
import javax.swing.border.RoundRectBorder;

Border innerBorder = new LineBorder(Color.BLUE, 2);
Border outerBorder = new RoundRectBorder(10, 10);
Border compoundBorder = new CompoundBorder(innerBorder, outerBorder);
```

**20. Compound Border with Matte Border and Title:**

```java
import javax.swing.border.CompoundBorder;
import javax.swing.border.MatteBorder;
import javax.swing.border.TitledBorder;

Border innerBorder = new MatteBorder(5, 10, 15, 20, Color.RED);
Border middleBorder = new TitledBorder(new LineBorder(Color.BLUE, 2), "My Title");
Border outerBorder = new CompoundBorder(innerBorder, middleBorder);
```

**21. Compound Border with Gradient, Title, and Dashed Line:**

```java
import com.alee.laf.border.WebBorderFactory;
import javax.swing.border.CompoundBorder;
import javax.swing.border.TitledBorder;
import javax.swing.border.LineBorder;
import com.alee.laf.skin.WebLookAndFeel;

WebLookAndFeel.install(); // Install Alee look and feel
Border innerBorder = WebBorderFactory.createLineBorder(new Color(255, 255, 255), 2);
Border middleBorder = new TitledBorder(new LineBorder(Color.BLUE, 2, true, 5, 5), "My Title");
Border outerBorder = new CompoundBorder(innerBorder, middleBorder);
```

**22. Compound Border with Matte Border and Soft Bevel Border:**

```java
import javax.swing.border.CompoundBorder;
import javax.swing.border.MatteBorder;
import javax.swing.border.SoftBevelBorder;

Border innerBorder = new MatteBorder(5, 10, 15, 20, Color.RED);
Border outerBorder = new SoftBevelBorder(SoftBevelBorder.RAISED);
Border compoundBorder = new CompoundBorder(innerBorder, outerBorder);
```

**23. Compound Border with Title, Line Border, and Etched Border:**

```java
import javax.swing.border.CompoundBorder;
import javax.swing.border.TitledBorder;
import javax.swing.border.LineBorder;
import javax.swing.border.EtchedBorder;

Border innerBorder = new TitledBorder(new LineBorder(Color.BLUE, 2), "My Title");
Border outerBorder = new EtchedBorder(EtchedBorder.RAISED);
Border compoundBorder = new CompoundBorder(innerBorder, outerBorder);
```

**24. Compound Border with Gradient, Title, and Rounded Corner:**

```java
import com.alee.laf.border.WebBorderFactory;
import javax.swing.border.CompoundBorder;
import javax.swing.border.TitledBorder;
import javax.swing.border.RoundRectBorder;
import com.alee.laf.skin.WebLookAndFeel;

WebLookAndFeel.install(); // Install Alee look and feel
Border innerBorder = WebBorderFactory.createLineBorder(new Color(255, 255, 255), 2);
Border middleBorder = new TitledBorder(new RoundRectBorder(10, 10), "My Title");
Border outerBorder = new CompoundBorder(innerBorder, middleBorder);
```

**25. Compound Border with Matte Border, Line Border, and Title:**

```java
import javax.swing.border.CompoundBorder;
import javax.swing.border.MatteBorder;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;

Border innerBorder = new MatteBorder(5, 10, 15, 20, Color.RED);
Border middleBorder = new LineBorder(Color.BLUE, 2);
Border outerBorder = new TitledBorder(middleBorder, "My Title");
Border compoundBorder = new CompoundBorder(innerBorder, outerBorder);
```

**26. Compound Border with Gradient, Title, Line Border, and Dashed Line:**

```java
import com.alee.laf.border.WebBorderFactory;
import javax.swing.border.CompoundBorder;
import javax.swing.border.TitledBorder;
import javax.swing.border.LineBorder;
import com.alee.laf.skin.WebLookAndFeel;

WebLookAndFeel.install(); // Install Alee look and feel
Border innerBorder = WebBorderFactory.createLineBorder(new Color(255, 255, 255), 2);
Border middleBorder = new TitledBorder(new LineBorder(Color.BLUE, 2, true, 5, 5), "My Title");
Border outerBorder = new CompoundBorder(innerBorder, middleBorder);
```

**27. Compound Border with Matte Border, Soft Bevel Border, and Title:**

```java
import javax.swing.border.CompoundBorder;
import javax.swing.border.MatteBorder;
import javax.swing.border.SoftBevelBorder;
import javax.swing.border.TitledBorder;

Border innerBorder = new MatteBorder(5, 10, 15, 20, Color.RED);
Border middleBorder = new SoftBevelBorder(SoftBevelBorder.RAISED);
Border outerBorder = new TitledBorder(middleBorder, "My Title");
Border compoundBorder = new CompoundBorder(innerBorder, outerBorder);
```

**28. Compound Border with Title, Line Border, Etched Border, and Dashed Line:**

```java
import javax.swing.border.CompoundBorder

```
