SpringLayout类根据一组约束定位其关联容器的子节点。
类声明
以下是javax.swing.SpringLayout类的声明 -
public class SpringLayout
extends Object
implements LayoutManager2
字段
以下是javax.swing.SpringLayout类的字段 -
static String BASELINE - 指定组件的基线。
static String EAST - 指定组件边界矩形的右边缘。
static String HEIGHT - 指定组件边界矩形的高度。
static String HORIZONTAL_CENTER - 指定组件边界矩形的水平中心。
static String NORTH - 指定组件边界矩形的上边缘。
static String SOUTH - 指定组件边界矩形的下边缘。
static String VERTICAL_CENTER - 指定组件边界矩形的垂直中心。
static String WEST - 指定组件边界矩形的左边缘。
static String WIDTH - 指定组件边界矩形的宽度。
类构造函数编号
构造函数
描述
1
SpringLayout()
创建一个新的SpringLayout对象。
类方法编号
类方法
描述
1
void addLayoutComponent(Component component, Object constraints)
如果constraints是SpringLayout.Constraints的实例,则将约束与指定的组件相关联。
2
void addLayoutComponent(String name, Component c)
没有效果,因为此布局管理器不使用每个组件的字符串。
3
Spring getConstraint(String edgeName, Component c)
返回控制组件指定边缘与其父级顶部或左侧边缘之间距离的Spring。
4
SpringLayout.Constraints getConstraints(Component c)
返回指定组件的约束。
5
float getLayoutAlignmentX(Container p)
返回0.5f(居中)。
6
float getLayoutAlignmentY(Container p)
返回0.5f(居中)。
7
void invalidateLayout(Container p)
使布局无效,表明如果布局管理器缓存了信息,则应将其丢弃。
8
void layoutContainer(Container parent)
布置指定的容器。
9
Dimension maximumLayoutSize(Container parent)
在给定包含的组件的情况下,计算指定容器的最大大小尺寸。
10
Dimension minimumLayoutSize(Container parent)
在给定容器所包含的组件的情况下,计算指定容器的最小尺寸。
11
Dimension preferredLayoutSize(Container parent)
在给定包含的组件的情况下,计算指定容器的首选大小尺寸。
12
void putConstraint(String e1, Component c1, int pad, String e2, Component c2)
将组件c1的边缘e1链接到组件c2的边缘e2,边缘之间具有固定的距离。
13
void putConstraint(String e1, Component c1, Spring s, String e2, Component c2)
将组件c1的边缘e1链接到组件c2的边缘e2。
14
void removeLayoutComponent(Component c)
删除与指定组件关联的约束。
方法继承
该类继承以下类中的方法 -
java.lang.Object
SpringLayout示例
使用编辑器创建以下Java程序:SpringLayoutDemo.java
package com.yiibai.layout;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SpringLayoutDemo {
private JFrame mainFrame;
private JLabel headerLabel;
private JLabel statusLabel;
private JPanel controlPanel;
public SpringLayoutDemo() {
prepareGUI();
}
public static void main(String[] args) {
SpringLayoutDemo swingLayoutDemo = new SpringLayoutDemo();
swingLayoutDemo.showSpringLayoutDemo();
}
private void prepareGUI() {
mainFrame = new JFrame("Java SWING SpringLayoutDemo(yiibai.com)");
mainFrame.setSize(400, 400);
mainFrame.setLayout(new GridLayout(3, 1));
headerLabel = new JLabel("", JLabel.CENTER);
statusLabel = new JLabel("", JLabel.CENTER);
statusLabel.setSize(350, 100);
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent) {
System.exit(0);
}
});
controlPanel = new JPanel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
private void showSpringLayoutDemo() {
headerLabel.setText("Layout in action: SpringLayout");
SpringLayout layout = new SpringLayout();
JPanel panel = new JPanel();
panel.setLayout(layout);
JLabel label = new JLabel("输入姓名: ");
JTextField textField = new JTextField("", 15);
panel.add(label);
panel.add(textField);
layout.putConstraint(SpringLayout.WEST, label, 5, SpringLayout.WEST, controlPanel);
layout.putConstraint(SpringLayout.NORTH, label, 5, SpringLayout.NORTH, controlPanel);
layout.putConstraint(SpringLayout.WEST, textField, 5, SpringLayout.EAST, label);
layout.putConstraint(SpringLayout.NORTH, textField, 5, SpringLayout.NORTH, controlPanel);
layout.putConstraint(SpringLayout.EAST, panel, 5, SpringLayout.EAST, textField);
layout.putConstraint(SpringLayout.SOUTH, panel, 5, SpringLayout.SOUTH, textField);
controlPanel.add(panel);
mainFrame.setVisible(true);
}
}
执行上面示例代码,得到以下结果:
¥ 我要打赏
纠错/补充
收藏
加QQ群啦,易百教程官方技术学习群
注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。