Controls and layout managers
Components
Borders
A Swing border is defined in the Border interface. Every instance of JComponent can set a border through the border property defined in JComponent. If a border is present, it replaces the inset.
The AbstractBorder class implements an empty border with no size. This provides a convenient base class from which other border classes can be easily derived.
Radio buttons with an etched and titled border
How to work with borders
- To place controls in a border, you must create a panel, create a border and apply it the panel, and add the controls to the panel.
- Because a border only groups controls visually, you must still use a ButtonGroup object to group radio buttons logically.
- To set borders, you must import the javax.swing.border package.
Static methods of the BorderFactory class
| Method | Description |
|---|---|
| createEmptyBorder() | Creates an empty border that takes up no space. |
| createLineBorder() | Creates a line border. |
| createLineBorder(Color color) | Creates a line border with the specified color. |
| createLineBorder(Color color, int thickness) | Creates a line border with the specified color and width. |
| createEtchedBorder() | Creates an etched border. |
| createEtchedBorder(int type) | Creates a border with an "etched" look using the component's current background color for highlighting and shading. |
| createEtchedBorder(Color highlight, Color shadow) | Creates a border with an "etched" look using the specified highlighting and shading colors. |
| createLoweredBevelBorder() | Creates a lowered bevel border. |
| createRaisedBevelBorder() | Creates a raised bevel border. |
| createMatteBorder(int top, int left, int bottom, int right, Color color) | Creates a matte-look border using a solid color. |
| createMatteBorder(int top, int left, int bottom, int right, Icon tileIcon) | Creates a matte-look border that consists of multiple tiles of a specified icon. |
| createCompoundBorder() | Creates a compound border with a null inside edge and a null outside edge. |
| createCompoundBorder(Border outsideBorder, Border insideBorder) | Creates a compound border specifying the border objects to use for the outside and inside edges. |
| createTitledBorder(String) | Creates a line border with the specified title. |
| createTitledBorder(Border,String) | Adds the specified title to the specified border. |
Method of the JComponent class used to set borders
| Method | Description |
|---|---|
| setBorder(Border) | Sets the border style for a component. |
Code that creates bordered radio buttons
uspsRadioButton = new JRadioButton("USPS", true);
upsRadioButton = new JRadioButton("UPS");
fedexRadioButton = new JRadioButton("Fedex");
ButtonGroup shipViaGroup = new ButtonGroup();
shipViaGroup.add(uspsRadioButton);
shipViaGroup.add(upsRadioButton);
shipViaGroup.add(fedexRadioButton);
JPanel shipViaPanel = new JPanel();
Border shipViaBorder = BorderFactory.createEtchedBorder();
shipViaBorder = BorderFactory.createTitledBorder(shipViaBorder, "Carrier");
shipViaPanel.setBorder(shipViaBorder);
shipViaPanel.add(uspsRadioButton);
shipViaPanel.add(upsRadioButton);
shipViaPanel.add(fedexRadioButton);
add(shipViaPanel);
BorderDemo will appear below in a Java enabled browser.