弹簧布局SpringLayout
package Test;
import javax.swing.*;
import java.awt.*;
public class SpringLayoutTest extends JFrame {
SpringLayout springLayout=new SpringLayout();
JPanel jPanel=new JPanel(springLayout);
JLabel titleLable=new JLabel("文章标题:");
JTextField titleTxt=new JTextField();
JLabel authorLable =new JLabel("作者:");
JTextField authorTxt=new JTextField();
JLabel contLable=new JLabel("请输入内容:");
JTextArea contArea= new JTextArea(4,10);
public SpringLayoutTest(){
super("弹簧布局springLayout");
Container contentPane =getContentPane();
titleTxt.setPreferredSize(new Dimension(200,30));
jPanel.add(titleLable);
jPanel.add(titleTxt);
jPanel.add(authorLable);
authorTxt.setPreferredSize(new Dimension(200,30));
jPanel.add(authorTxt);
jPanel.add(contLable);
jPanel.add(contArea);
jPanel.setBackground(Color.yellow);
Spring titleLableWidth=Spring.width(titleLable);
Spring titleTxtWidt=Spring.width(titleTxt);
Spring spaceWidth=Spring.constant(20);
Spring childWidth = Spring.sum(Spring.sum(titleLableWidth,titleTxtWidt),spaceWidth);
int offsetX=childWidth.getValue()/2;
SpringLayout.Constraints titleLableC = springLayout.getConstraints(titleLable);
springLayout.putConstraint(SpringLayout.WEST,titleLable,-offsetX,SpringLayout.HORIZONTAL_CENTER,jPanel);
titleLableC.setY(Spring.constant(50));
SpringLayout.Constraints titleTxtC = springLayout.getConstraints(titleTxt);
Spring titleLableEastSpring= titleLableC.getConstraint(SpringLayout.EAST);
titleTxtC.setConstraint(SpringLayout.WEST,Spring.sum(titleLableEastSpring,Spring.constant(20)));
titleTxtC.setConstraint(SpringLayout.NORTH,titleLableC.getConstraint(SpringLayout.NORTH));
//设置作者Lable authorLable:东边和titleLable对齐,北边距离titleLable南边20px
springLayout.putConstraint(SpringLayout.EAST,authorLable,0,SpringLayout.EAST,titleLable);
springLayout.putConstraint(SpringLayout.NORTH,authorLable,40,SpringLayout.NORTH,titleLable);
springLayout.putConstraint(SpringLayout.WEST,authorTxt,20,SpringLayout.EAST,authorLable);
springLayout.putConstraint(SpringLayout.NORTH,authorTxt,0,SpringLayout.NORTH,authorLable);
springLayout.putConstraint(SpringLayout.EAST,contLable,0,SpringLayout.EAST,authorLable);
springLayout.putConstraint(SpringLayout.NORTH,contLable,40,SpringLayout.NORTH,authorLable);
springLayout.putConstraint(SpringLayout.WEST,contArea,20,SpringLayout.EAST,contLable);
springLayout.putConstraint(SpringLayout.NORTH,contArea,0,SpringLayout.NORTH,contLable);
springLayout.putConstraint(SpringLayout.SOUTH,contArea,-20,SpringLayout.SOUTH,jPanel);
springLayout.putConstraint(SpringLayout.EAST,contArea,-20,SpringLayout.EAST,jPanel);
contentPane.add(jPanel);
setSize(600,400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new SpringLayoutTest();
}
}