AWT(抽象窗口工具包)中的 SpringLayout 类根据一组布局约束将子级布局到其关联容器。每个约束都由一个 Spring 对象表示,该对象控制两个组件边之间的垂直或水平距离。边可以属于容器的任何子容器,也可以属于容器本身。默认情况下,SpringLayout 创建约束,使其关联组件具有最小值、首选值、最大值和实际值。
构造函数:
- SpringLayout():用于构造新的SpringLayout 类。
常用方法:
- void addLayoutComponent(Component com, Object cons):如果约束是一个实例SpringLayout.Constraints,将约束与指定组件相关联。
- getLayoutAlignmentX(容器c):用于返回 0.5f(居中)。
- getLayoutAlignmentY(容器c):用于返回 0.5f(居中)。
- getConstraint((字符串边名称,组件 c):返回控制组件的指定边与其父级的上边或左边之间距离的弹簧。
- getConstraint(组件c):返回指定组件的约束。
- 布局容器(容器父级):用于布置指定的容器。
以下示例程序旨在说明 SpringLayout 类:
- 程序1:下面的程序将组件排列在一个J框架。我们创建 1J标签名为“的组件标签”并创建一个 1文本字段名为“文本域”并创建 2 个类,一个是JFrame类另一个是SpringLayout 类然后将它们添加到J框架通过方法add()。我们使用设置框架的可见性setvisible()方法。布局是通过使用设置的setLayout()方法。
// Java program to show Example of SpringLayout. // in java. Importing different Package. import java.awt.Container; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.SpringLayout; // construct a class springdemo public class Springdemo { // It is used to create and show GUI private static void createAndShowGUI() { // Creating Object of "JFrame" class JFrame frame = new JFrame("MySpringDemp"); // Function to set default // close operation of JFrame. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // to get content pane Container contentPane = frame.getContentPane(); // Creating Object of "Springlayout" class SpringLayout layout = new SpringLayout(); // to set content pane contentPane.setLayout(layout); // Initialization of object // "label" of JLabel class. JLabel label = new JLabel("Label: "); // Initialization of object // "label" of JLabel class. JTextField textField = new JTextField("Enter the text ", 15); // to add content pane of JLabel contentPane.add(label); // to add content pane of JTextField contentPane.add(textField); // It is used to put the layout // constraint in JFrame using springLayout class layout.putConstraint(SpringLayout.WEST, label, 6, SpringLayout.WEST, contentPane); layout.putConstraint(SpringLayout.NORTH, label, 6, SpringLayout.NORTH, contentPane); layout.putConstraint(SpringLayout.WEST, textField, 6, SpringLayout.EAST, label); layout.putConstraint(SpringLayout.NORTH, textField, 6, SpringLayout.NORTH, contentPane); layout.putConstraint(SpringLayout.EAST, contentPane, 6, SpringLayout.EAST, textField); layout.putConstraint(SpringLayout.SOUTH, contentPane, 6, SpringLayout.SOUTH, textField); // Function to pack the JFrame. frame.pack(); // Function to set visible status of JFrame. frame.setVisible(true); } // Main Method public static void main(String[] args) { javax.swing.SwingUtilities.invokeLater(new Runnable() { // create a class public void run() { // to create and show GUI createAndShowGUI(); } }); } }
输出:
-
程序2:下面的程序将组件排列在一个J框架。我们创建 1 个类,名为“弹簧布局类”并创建一个 4J按钮名为“的组件b1”,“b2”,“b3”,“b4”,“b5”,然后将它们添加到J框架通过方法add()。我们使用以下方法设置框架的可见性setvisible()。布局设置为setLayout()方法。
// Java program to show Example of SpringLayout. // in java. Importing different Package. import java.awt.*; import javax.swing.*; // construct a class Springclassdemo public class Springclassdemo { // Main Method public static void main(String[] arguments) { // main window // Function to set the default look // and feel decorated status of JFrame. JFrame.setDefaultLookAndFeelDecorated(true); // Creating Object of "JFrame" class JFrame frame = new JFrame("SpringLayoutExample Example"); // Function to set the default // close operation status of JFrame frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Function to set the // size status of JFrame frame.setSize(300, 200); // to get the content pane Container content = frame.getContentPane(); // Creating Object of "SpringLayout" class SpringLayout layout = new SpringLayout(); // to set the layout class frame.setLayout(layout); // Initialization of object // "b1" of JButton class. Component b1 = new JButton("GEEKS"); // Initialization of object // "b2" of JButton class. Component b2 = new JButton("GFG"); // Initialization of object // "b3" of JButton class. Component b3 = new JButton("JAVA"); // Initialization of object // "b4" of JButton class. Component b4 = new JButton("Sudo Placement"); // Adding the JButton "b1" on frame frame.add(b1); // Adding the JButton "b2" on frame frame.add(b2); // Adding the JButton "b3" on frame frame.add(b3); // Adding the JButton "b4" on frame frame.add(b4); // It is used to put the layout // constraint in JFrame using // springLayout class on b1 JButton layout.putConstraint(SpringLayout.WEST, b1, 25, SpringLayout.WEST, content); layout.putConstraint(SpringLayout.NORTH, b1, 10, SpringLayout.NORTH, content); // It is used to put the layout // constraint in JFrame using // springLayout class on b2 JButton layout.putConstraint(SpringLayout.WEST, b2, 50, SpringLayout.WEST, content); layout.putConstraint(SpringLayout.NORTH, b2, 10, SpringLayout.SOUTH, b1); // It is used to put the layout // constraint in JFrame using // springLayout class on b3 JButton layout.putConstraint(SpringLayout.WEST, b3, 75, SpringLayout.WEST, content); layout.putConstraint(SpringLayout.NORTH, b3, 10, SpringLayout.SOUTH, b2); // It is used to put the layout // constraint in JFrame using // springLayout class on b4 JButton layout.putConstraint(SpringLayout.WEST, b4, 15, SpringLayout.EAST, b1); layout.putConstraint(SpringLayout.NORTH, b4, 10, SpringLayout.NORTH, content); // Function to set the // visible status of JFrame frame.setVisible(true); } }
输出:
注意:上述程序可能无法在在线 IDE 中运行。请使用离线编译器。
参考: https://docs.oracle.com/javase/7/docs/api/javax/swing/SpringLayout.html
相关用法
- Java AWT Dimension用法及代码示例
- Java AWT Choice用法及代码示例
- Java AWT MenuShortcut用法及代码示例
- Java AWT Desktop用法及代码示例
- Java AWT BoxLayout用法及代码示例
- Java AWT GridBagLayout用法及代码示例
- Java AWT CardLayout用法及代码示例
- Java AWT Canvas用法及代码示例
- Java AWT GridLayout用法及代码示例
- Java AWT BorderLayout用法及代码示例
- Java AWT Color用法及代码示例
- Java ArrayList add()用法及代码示例
- Java ArrayList addAll()用法及代码示例
- Java ArrayList clear()用法及代码示例
- Java ArrayList clone()用法及代码示例
- Java ArrayList contains()用法及代码示例
- Java ArrayList get()用法及代码示例
- Java ArrayList indexOf()用法及代码示例
- Java ArrayList removeAll()用法及代码示例
- Java ArrayList remove()用法及代码示例
- Java ArrayList size()用法及代码示例
- Java ArrayList isEmpty()用法及代码示例
- Java ArrayList subList()用法及代码示例
- Java ArrayList set()用法及代码示例
注:本文由纯净天空筛选整理自Shivi_Aggarwal大神的英文原创作品 Java AWT | SpringLayout Class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。