// Purpose. Swing Borders demo import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; public class BorderDemo { private static String[] blist = { "LineBorder", "EtchedBorder", "BevelBorder", "CompoundEmptyOut", "CompoundEmptyIn", "CompoundDouble" }; private static String[] clist = { "red", "green", "blue", "cyan", "magenta", "yellow", "pink", "orange", "black", "white", "gray", "lightGray", "darkGray" }; private static Color[] cobjs = { Color.red, Color.green, Color.blue, Color.cyan, Color.magenta, Color.yellow, Color.pink, Color.orange, Color.black, Color.white, Color.gray, Color.lightGray, Color.darkGray }; private static String[] bevlist = { "RAISED", "LOWERED" }; private static String[] jlist = { "LEFT", "CENTER", "RIGHT" }; private static String[] plist = { "ABOVE_TOP", "TOP", "BELOW_TOP", "ABOVE_BOTTOM", "BOTTOM", "BELOW_BOTTOM" }; private static JLabel label = new JLabel(new ImageIcon("dukelabel.gif")); private static JComboBox borders = new JComboBox( blist ); private static JComboBox colors = new JComboBox( clist ); private static JTextField thick = new JTextField( "1", 2 ); private static JComboBox bevels = new JComboBox( bevlist ); private static JTextField inset = new JTextField( "10", 2 ); private static JTextField title = new JTextField(); private static JComboBox justs = new JComboBox( jlist ); private static JComboBox posits = new JComboBox( plist ); private static JButton go = new JButton( "set new border" ); static class BL implements ActionListener { public void actionPerformed( ActionEvent e ) { Border border = null; String str = title.getText(); int margin = Integer.parseInt( inset.getText() ); int thickness = Integer.parseInt( thick.getText() ); if (borders.getSelectedIndex() == 0) border = BorderFactory.createLineBorder( cobjs[colors.getSelectedIndex()], thickness ); else if (borders.getSelectedIndex() == 1) border = BorderFactory.createEtchedBorder(); else if (borders.getSelectedIndex() == 2) border = BorderFactory.createBevelBorder(bevels.getSelectedIndex()); else if (borders.getSelectedIndex() == 3) border = BorderFactory.createCompoundBorder( BorderFactory.createEmptyBorder( margin, margin, margin, margin), BorderFactory.createLineBorder( cobjs[colors.getSelectedIndex()], thickness ) ); else if (borders.getSelectedIndex() == 4) border = BorderFactory.createCompoundBorder( BorderFactory.createLineBorder( cobjs[colors.getSelectedIndex()], thickness ), BorderFactory.createEmptyBorder( margin,margin,margin,margin) ); else if (borders.getSelectedIndex() == 5) border = BorderFactory.createCompoundBorder( BorderFactory.createLineBorder( cobjs[colors.getSelectedIndex()], thickness ), BorderFactory.createCompoundBorder( BorderFactory.createEmptyBorder( margin,margin,margin,margin), BorderFactory.createLineBorder( cobjs[colors.getSelectedIndex()], thickness ) ) ); if (str == null) label.setBorder( border ); else label.setBorder( BorderFactory.createTitledBorder( border, str, justs.getSelectedIndex() + 1, posits.getSelectedIndex() + 1 )); label.repaint(); } } public static void main( String[] args ) { JFrame f = new JFrame( "Swing Borders demo" ); f.addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent e ) { System.exit( 0 ); } } ); JPanel lab = new JPanel(); lab.add( label ); f.getContentPane().add( lab, BorderLayout.CENTER ); JPanel panel = new JPanel(); f.getContentPane().add( panel, BorderLayout.SOUTH ); panel.setLayout( new GridLayout(9,1) ); panel.add( borders ); panel.add( colors ); JPanel thickPan = new JPanel(); thickPan.add( new JLabel( "Thickness " ) ); thickPan.add( thick ); panel.add( thickPan ); panel.add( bevels ); JPanel marginPan = new JPanel(); marginPan.add( new JLabel( "Margin " ) ); marginPan.add( inset ); panel.add( marginPan ); panel.add( title ); panel.add( justs ); panel.add( posits); panel.add( go ); go.addActionListener( new BL() ); f.pack(); f.setVisible( true ); } }