当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java AWT SpringLayout用法及代码示例


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



相关用法


注:本文由纯净天空筛选整理自Shivi_Aggarwal大神的英文原创作品 Java AWT | SpringLayout Class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。