Java Tutorial/Swing/CompoundBorder
14. CompoundBorder: to combine borders before associating them with a component.
A compound border is composed of two border objects. You can nest an inside border within the insets of an outside border.
<source lang="java">
public CompoundBorder() public static CompoundBorder createCompoundBorder()
public CompoundBorder(Border outside, Border inside) Border compoundBorder = new CompoundBorder(lineBorder, matteBorder);
public static CompoundBorder createCompoundBorder(Border outside, Border inside) Border compoundBorder = BorderFactory.createCompoundBorder(lineBorder, matteBorder);</source>
14. CompoundBorder with double line borders and Lowered Bevel Border
<source lang="java">
import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.BorderFactory; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.border.Border; import javax.swing.border.rupoundBorder; import javax.swing.border.LineBorder; public class CompoundBorderLabel extends JFrame {
JLabel label = new JLabel("A label with some borders"); public CompoundBorderLabel() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Border border1 = new CompoundBorder(LineBorder.createBlackLineBorder(), BorderFactory.createLineBorder(Color.red, 20)); Border border2 = new CompoundBorder(border1, BorderFactory .createLoweredBevelBorder()); label.setBorder(border2); getContentPane().add(label, BorderLayout.CENTER); pack(); } public static void main(String arg[]) { CompoundBorderLabel m = new CompoundBorderLabel(); m.setVisible(true); }
}</source>
14. Creating CompoundBorder with LineBorder
<source lang="java">
import java.awt.Color; import java.awt.Container; import java.awt.GridLayout; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.border.Border; import javax.swing.border.rupoundBorder; import javax.swing.border.LineBorder; public class ACompoundBorder {
public static void main(String args[]) { JFrame frame = new JFrame("Compound Borders"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Border lineBorder = LineBorder.createBlackLineBorder(); Border bevelBorder = BorderFactory.createRaisedBevelBorder(); Border bevelLineBorder = new CompoundBorder(bevelBorder, lineBorder); JButton bevelLineButton = new JButton("Bevel Line"); bevelLineButton.setBorder(bevelLineBorder); Border redBorder = BorderFactory.createLineBorder(Color.MAGENTA, 2); Border orangeBorder = BorderFactory.createLineBorder(Color.BLUE, 2); Border yellowBorder = BorderFactory.createLineBorder(Color.YELLOW, 5); Border greenBorder = BorderFactory.createLineBorder(Color.GREEN, 2); Border blueBorder = BorderFactory.createLineBorder(Color.ORANGE, 4); Border magentaBorder = BorderFactory.createLineBorder(Color.RED, 3); Border twoColorBorder = new CompoundBorder(magentaBorder, blueBorder); Border threeColorBorder = new CompoundBorder(twoColorBorder, greenBorder); Border fourColorBorder = new CompoundBorder(threeColorBorder, yellowBorder); Border fiveColorBorder = new CompoundBorder(fourColorBorder, orangeBorder); Border sixColorBorder = new CompoundBorder(fiveColorBorder, redBorder); JButton rainbowButton = new JButton("Rainbow"); rainbowButton.setBorder(sixColorBorder); Container contentPane = frame.getContentPane(); contentPane.setLayout(new GridLayout(1, 2)); contentPane.add(bevelLineButton); contentPane.add(rainbowButton); frame.setSize(300, 100); frame.setVisible(true); }
}</source>