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