public class BorderDemoWithIcon 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.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: }