为了演示 SpringLayout 的用法,清单 4 给出了 SpringFormTest 程序,该程序将前面解释过的使用 putConstraint() 的代码片断拼接起来。
清单 4. 完整的 SpringLayout 实例
1 import java.awt.*;
2 import javax.swing.*;
3 public class SpringFormTest {
4 public static void main(String args[]) {
5 JFrame frame = new JFrame("Spring Form");
6 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
7 Container contentPane = frame.getContentPane();
8 SpringLayout layout = new SpringLayout();
9 contentPane.setLayout(layout);
10 Component left = new JLabel("Left");
11 Component right = new JTextField(15);
12 contentPane.add(left);
13 contentPane.add(right);
14 layout.putConstraint(SpringLayout.WEST, left, 10,
15 SpringLayout.WEST, contentPane);
16 layout.putConstraint(SpringLayout.NORTH, left, 25,
17 SpringLayout.NORTH, contentPane);
18 layout.putConstraint(SpringLayout.NORTH, right, 25,
19 SpringLayout.NORTH, contentPane);
20 layout.putConstraint(SpringLayout.WEST, right, 20,
21 SpringLayout.EAST, left);
22 frame.setSize(300, 100);
23 frame.show();
24 }
25 }
26
2 import javax.swing.*;
3 public class SpringFormTest {
4 public static void main(String args[]) {
5 JFrame frame = new JFrame("Spring Form");
6 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
7 Container contentPane = frame.getContentPane();
8 SpringLayout layout = new SpringLayout();
9 contentPane.setLayout(layout);
10 Component left = new JLabel("Left");
11 Component right = new JTextField(15);
12 contentPane.add(left);
13 contentPane.add(right);
14 layout.putConstraint(SpringLayout.WEST, left, 10,
15 SpringLayout.WEST, contentPane);
16 layout.putConstraint(SpringLayout.NORTH, left, 25,
17 SpringLayout.NORTH, contentPane);
18 layout.putConstraint(SpringLayout.NORTH, right, 25,
19 SpringLayout.NORTH, contentPane);
20 layout.putConstraint(SpringLayout.WEST, right, 20,
21 SpringLayout.EAST, left);
22 frame.setSize(300, 100);
23 frame.show();
24 }
25 }
26
图 3 显示了结果:
图 3. SpringFormTest 实例屏幕
