public class BorderDemo extends JFrame implements ActionListener
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: