Mega Code Archive

 
Categories / Java Tutorial / Swing
 

Swing Abstract Border

import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.ButtonGroup; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JRadioButtonMenuItem; import javax.swing.border.AbstractBorder; import javax.swing.border.BevelBorder; import javax.swing.border.CompoundBorder; import javax.swing.border.EmptyBorder; import javax.swing.border.EtchedBorder; import javax.swing.border.LineBorder; import javax.swing.border.MatteBorder; import javax.swing.border.SoftBevelBorder; import javax.swing.border.TitledBorder; public class SwingBorder extends JFrame {   Container frameContainer;   JPanel panel = new JPanel();   JMenuBar menuBar = new JMenuBar();   JMenu fileMenu = new JMenu("File");   JMenuItem fileExit = new JMenuItem("Exit");   JMenu borderMenu = new JMenu("Border");   String[] borderTypes = { "Bevel", "Compound", "Empty", "Etched", "Line", "Matte", "SoftBevel",       "Titled" };   JRadioButtonMenuItem[] borders = new JRadioButtonMenuItem[borderTypes.length];   AbstractBorder[] border = { new BevelBorder(BevelBorder.LOWERED),       new CompoundBorder(new LineBorder(Color.blue, 10), new LineBorder(Color.red, 5)),       new EmptyBorder(10, 10, 10, 10), new EtchedBorder(), new LineBorder(Color.blue, 10),       new MatteBorder(new ImageIcon("phone.gif")), new SoftBevelBorder(BevelBorder.RAISED),       new TitledBorder("TitledBorder") };   ButtonGroup buttonGroup = new ButtonGroup();   public SwingBorder() {     super("");     fileMenu.add(fileExit);     for (int i = 0; i < borderTypes.length; ++i) {       borders[i] = new JRadioButtonMenuItem(borderTypes[i]);       buttonGroup.add(borders[i]);       borderMenu.add(borders[i]);     }     menuBar.add(fileMenu);     menuBar.add(borderMenu);     setJMenuBar(menuBar);     frameContainer = getContentPane();     frameContainer.setLayout(new BorderLayout());     frameContainer.add("Center", panel);     setupEventHandlers();     setSize(450, 450);     setVisible(true);   }   void setupEventHandlers() {     addWindowListener(new WindowHandler());     fileExit.addActionListener(new MenuItemHandler());     for (int i = 0; i < borders.length; ++i)       borders[i].addItemListener(new ItemHandler());   }   public static void main(String[] args) {     SwingBorder app = new SwingBorder();   }   public class WindowHandler extends WindowAdapter {     public void windowClosing(WindowEvent e) {       System.exit(0);     }   }   public class MenuItemHandler implements ActionListener {     public void actionPerformed(ActionEvent e) {       String cmd = e.getActionCommand();       if (cmd.equals("Exit"))         System.exit(0);     }   }   public class ItemHandler implements ItemListener {     public void itemStateChanged(ItemEvent e) {       JRadioButtonMenuItem button = (JRadioButtonMenuItem) e.getItem();       String label = button.getText();       for (int i = 0; i < borderTypes.length; ++i) {         if (label.equals(borderTypes[i])) {           panel.setBorder(border[i]);           repaint();         }       }     }   } }