java springlayout,Swing SpringLayout类

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);

}

}

执行上面示例代码,得到以下结果:

72ad78aa5e58cd16b305cbad2c473594.png

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值