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)

返回控制组件指定边缘与其父级顶部或左侧边缘之间距离的弹簧。

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 程序,例如在D:/ > SWING > com > tutorialspoint > gui >

SwingLayoutDemo.java

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class SwingSpringLayout {
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;

   public SwingSpringLayout(){
      prepareGUI();
   }
   public static void main(String[] args){
      SwingSpringLayout swingLayoutDemo = new SwingSpringLayout();  
      swingLayoutDemo.showSpringLayoutDemo();       
   }
   private void prepareGUI(){
      mainFrame = new JFrame("Java SWING Examples");
      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("Enter Name: ");
      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);  
   } 
}

使用命令提示符编译程序。转到D:/ > SWING并键入以下命令。

D:\SWING>javac com\tutorialspoint\gui\SwingLayoutDemo.java

如果未出现错误,则表示编译成功。使用以下命令运行程序。

D:\SWING>java com.tutorialspoint.gui.SwingLayoutDemo

验证以下输出。

SWING SpringLayout
swing_layouts.htm
广告