Source of BorderDemoWithIcon.java


  1: import javax.swing.border.BevelBorder;
  2: import javax.swing.border.EmptyBorder;
  3: import javax.swing.border.EtchedBorder;
  4: import javax.swing.border.LineBorder;
  5: import javax.swing.border.MatteBorder;
  6: import javax.swing.ImageIcon;
  7: import javax.swing.JButton;
  8: import javax.swing.JFrame;
  9: import javax.swing.JLabel;
 10: import javax.swing.JPanel;
 11: import javax.swing.JTextField;
 12: import java.awt.Color;
 13: import java.awt.Container;
 14: import java.awt.BorderLayout;
 15: import java.awt.FlowLayout;
 16: import java.awt.GridLayout;
 17: import java.awt.event.ActionEvent;
 18: import java.awt.event.ActionListener;
 19: 
 20: /**
 21:  Class to demonstrate adding icons to a border.
 22: */
 23: public class BorderDemoWithIcon extends JFrame implements ActionListener
 24: {
 25:     public static final int WIDTH = 400;
 26:     public static final int HEIGHT = 300;
 27: 
 28:     private JTextField name;
 29: 
 30:     public BorderDemoWithIcon()
 31:     {
 32:         setTitle("Name Tester with Borders");
 33:         setSize(WIDTH, HEIGHT);
 34:         addWindowListener(new WindowDestroyer());
 35:         Container content = getContentPane();
 36:         content.setLayout(new GridLayout(2, 1));
 37: 
 38:         JPanel namePanel = new JPanel();
 39:         namePanel.setLayout(new BorderLayout());
 40:         namePanel.setBackground(Color.WHITE);
 41: 
 42:         name = new JTextField(20);
 43:         //The following border is not as dramatic as others,
 44:         //but look closely and you will see it.
 45:         name.setBorder(new EtchedBorder(Color.GREEN, Color.BLUE));
 46:         namePanel.add(name, BorderLayout.SOUTH);
 47:         JLabel nameLabel = new JLabel("Enter your name here:");
 48:         //The following does insert space around the label.
 49:         //To see the difference, comment out the following line:
 50:         nameLabel.setBorder(new EmptyBorder(20, 10, 0, 0));
 51:         namePanel.add(nameLabel, BorderLayout.CENTER);
 52: 
 53:         namePanel.setBorder(new LineBorder(Color.BLACK, 10));
 54:         content.add(namePanel);
 55: 
 56:         JPanel buttonPanel = new JPanel();
 57:         buttonPanel.setLayout(new FlowLayout());
 58:         JButton testButton = new JButton("Test");
 59:         testButton.addActionListener(this);
 60:         testButton.setBorder(new BevelBorder(BevelBorder.LOWERED));
 61:         buttonPanel.add(testButton);
 62: 
 63:         JButton clearButton = new JButton("Clear");
 64:         clearButton.addActionListener(this);
 65:         clearButton.setBorder(new BevelBorder(BevelBorder.RAISED));
 66:         buttonPanel.add(clearButton);
 67: 
 68: 
 69:         ImageIcon smileyIcon = new ImageIcon("smiley.gif");
 70:         buttonPanel.setBorder(
 71:                  new MatteBorder(60, 40, 30, 20, smileyIcon));
 72:         content.add(buttonPanel);
 73:     }
 74: 
 75:     public void actionPerformed(ActionEvent e)
 76:     {
 77:         if (e.getActionCommand().equals("Test"))
 78:             name.setText("A very good name!");
 79:         else if (e.getActionCommand().equals("Clear"))
 80:             name.setText("");
 81:         else
 82:             name.setText("Error in window interface.");
 83:     }
 84: 
 85:     public static void main(String[] args)
 86:     {
 87:         BorderDemoWithIcon w = new BorderDemoWithIcon();
 88:         w.setVisible(true);
 89:     }
 90: }