一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java彈簧布局管理器使用方法詳解

Java彈簧布局管理器使用方法詳解

2020-12-26 14:23mengwei Java教程

這篇文章主要介紹了Java彈簧布局管理器使用方法詳解,需要的朋友可以參考下

        由 SpringLayout 類實現的布局管理器稱為彈簧布局管理器。利用該布局管理器管理組件,當改變窗體的大小時,能夠在不改變組件間相對位置的前提下自動調整組件大小,使組件依舊布滿整個窗體,從而保證了窗體的整體效果。下面,通過一個實例來看看彈簧布局管理器的使用方法和效果。

        彈簧布局管理器以容器和組件的邊緣為操作對象,通過為組件和容器邊緣以及組件和組件邊緣建立約束,實現對組件布局的管理。通過方法 putConstraint(String e1,Conponet c1,int pad,String e2,Componet c2)可以為各邊之間建立約束,該方法的入口參數說明如下:

c1:需要參考的組件對象;

c2:需要參考的組件對象的具體需要參考的邊;

e1:被參考的組件對象;

e2:被參考的組件對象的具體被參考的邊;

 pad:兩條邊之間的距離,即兩個組件之間的間距。

        有點繞,其實很好理解。

        實例1:使用彈簧布局管理器。

        本實例利用彈簧布局管理器實現窗體,在調整窗體的大小后,組件仍會布滿整個窗體,并且組件間的相對位置并不會改變。源碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
import java.awt.Container;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.Spring;
import javax.swing.SpringLayout;
 
 
public class SpringLayout_3 extends JFrame {
 
    private static final long serialVersionUID = -6045918631932051025L;
 
    public SpringLayout_3() {
        // TODO Auto-generated constructor stub
        Container container = getContentPane();
        SpringLayout springLayout = new SpringLayout();
        container.setLayout(springLayout);
        JLabel topicLabel = new JLabel("主題 :");
        JLabel contentLabel = new JLabel("內容 :");
        final JTextField textField = new JTextField(30);
        JTextArea textArea = new JTextArea(3, 30);
        JScrollPane scrollPane = new JScrollPane();
        scrollPane.setViewportView(textArea);
        textArea.setLineWrap(true);
        final JButton confirmButton = new JButton("取消");
        JButton cancelButton = new JButton("確認");
        Spring st = Spring.constant(10);
        Spring st2 = Spring.constant(30);
        container.add(topicLabel);
        springLayout.putConstraint(SpringLayout.NORTH, topicLabel, st,
                SpringLayout.NORTH, container);
        springLayout.putConstraint(SpringLayout.WEST, topicLabel, st,
                SpringLayout.WEST, container);
        container.add(textField);
        springLayout.putConstraint(SpringLayout.WEST, textField, st2,
                SpringLayout.EAST, topicLabel);
        springLayout.putConstraint(SpringLayout.NORTH, textField, 0,
                SpringLayout.NORTH, topicLabel);
        springLayout.putConstraint(SpringLayout.EAST, textField, Spring.minus(st),
                SpringLayout.EAST, container);
        container.add(contentLabel);
        springLayout.putConstraint(SpringLayout.WEST, contentLabel, 0,
                SpringLayout.WEST, topicLabel);
        springLayout.putConstraint(SpringLayout.NORTH, contentLabel, st,
                SpringLayout.SOUTH, topicLabel);
        container.add(scrollPane);
        springLayout.putConstraint(SpringLayout.NORTH, scrollPane, 0,
                SpringLayout.NORTH, contentLabel);
        springLayout.putConstraint(SpringLayout.WEST, scrollPane, 0,
                SpringLayout.WEST, textField);
        springLayout.putConstraint(SpringLayout.EAST, scrollPane, Spring.minus(st),
                SpringLayout.EAST, container);
        container.add(confirmButton);
        springLayout.putConstraint(SpringLayout.SOUTH, scrollPane, Spring.minus(st),
                SpringLayout.NORTH, confirmButton);
        springLayout.putConstraint(SpringLayout.EAST, confirmButton, Spring.minus(st),
                SpringLayout.EAST, container);
        springLayout.putConstraint(SpringLayout.SOUTH, confirmButton, Spring.minus(st),
                SpringLayout.SOUTH, container);
        container.add(cancelButton);
        springLayout.putConstraint(SpringLayout.EAST, cancelButton, Spring.minus(st),
                SpringLayout.WEST, confirmButton);
        springLayout.putConstraint(SpringLayout.NORTH, cancelButton, 0,
                SpringLayout.NORTH, confirmButton);
        
        // make the text field focused every time the window is activated
        addWindowFocusListener(new WindowAdapter() {
 
            @Override
            public void windowGainedFocus(WindowEvent e) {
                // TODO Auto-generated method stub
                textField.requestFocus();
            }
 
        });
    }
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        SpringLayout_3 frame = new SpringLayout_3();
        frame.setTitle("使用彈簧布局管理器");
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setBounds(100, 100, 600, 300);
    }
 
}

總結

以上就是彈簧布局管理器的使用方法及實例,喜歡的同學快去試試效果吧。

感謝大家對服務器之家的支持!

原文鏈接:http://www.xuebuyuan.com/2007237.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 97久久久亚洲综合久久88 | 午夜宅男在线观看 | 欧美三级不卡在线观线看高清 | 久久精品一区 | 出差上的少妇20p | 久久性综合亚洲精品电影网 | 亚洲高清视频在线 | 亚洲sss综合天堂久久久 | 俄罗斯美女尿尿 | 精品久久久久久综合网 | 天天做天天爱天天综合网 | 欧美日韩精品免费一区二区三区 | 2021福利视频 | 国产盗摄女厕美女嘘嘘 | 亚洲日本va中文字幕 | 国产3344视频在线观看免费 | 国产成人高清亚洲一区91 | 日本三级在线观看免费 | 青草视频网 | 久久学生精品国产自在拍 | 波多洁野衣一二区三区 | 精品国产线拍大陆久久尤物 | 日本免费观看的视频在线 | 青青青在线观看国产精品 | 性伴交换多p | 久久国产精品无码视欧美 | 亚洲成A人片在线观看中文L | 成人人免费夜夜视频观看 | 精品国产福利一区二区在线 | 国产成人精品高清不卡在线 | 欧美视频在线一区二区三区 | 97色伦在线观看 | 国产精品青青青高清在线观看 | 香蕉成人999视频 | free极度另类性欧美 | 国产成人看片免费视频观看 | 日本人欧美xx | 国产精品久久久久一区二区三区 | 精品国产福利在线 | 美国一级大黄大色毛片 | 黑人巨|