概述
这两天在研究SpringLayout的弹簧的效果,搞了我好久。本来打算放弃的,好在最后还是静下心来重新慢慢研究,以下是我的研究结果,转载的请注明出处。
编译环境:Netbeans 6.1
注:最好结合各语句画一下图,重点关注弹簧的锚定方向,仔细观察,看看在哪些情况下有得到想要的效果,哪些情况下没有,并且看看把多条语句结合起来的显示效果如何。多给点耐心,就能看出些端倪。
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package showspringlayout1;
/*
* Main.java
*
* Created on 2009年8月2日, 上午12:31
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
import javax.swing.*;
import java.awt.*;
/**
*
* @author Administrator
*/
public class Main extends JApplet{
/** Creates a new instance of Main */
public Main() {
SpringLayout springLayout = new SpringLayout();
JPanel jPanel = new JPanel(springLayout);
JButton jbt = new JButton("ok");
JButton jbt1 = new JButton("ok1");
JButton jbt2 = new JButton("ok2");
JButton jbt3 = new JButton("ok3");
JButton jbt4 = new JButton("ok4");
JButton jbt5 = new JButton("ok5");
JButton jbt6 = new JButton("can");
JButton jbt7 = new JButton("try1");
JButton jbt8 = new JButton("try2");
JButton jbt9 = new JButton("try 3");
//jbt.setSize(400, 200);
//jPanel.setSize(200,300);
// jPanel.add(jbt);
//jPanel.add(jbt6);
/*
jPanel.add(jbt7);
jPanel.add(jbt8);
jPanel.add(jbt9);
*/
/** jPanel.add(jbt1);
jPanel.add(jbt2);
jPanel.add(jbt3);
jPanel.add(jbt4);
jPanel.add(jbt5);
//@@
*/
Spring spring = Spring.constant(0,20,40);//(20,90,900);
//使用下述语句时,注意画图观察各组件边线之间的弹簧的锚定方向。
//有些语句结合起来不会产生新效果。
//任意两条边之间只能放置一个弹簧,如果放置多个,只取最后放置者,但是一条边可以连接多个不同的弹簧。
//springLayout.putConstraint(SpringLayout.WEST,jbt,spring,SpringLayout.WEST,jPanel);//1、单独用时,从左向右移动了一点。。。
//springLayout.putConstraint(SpringLayout.EAST,jbt,spring,SpringLayout.EAST,jPanel);//2、单独用时,去到右边了。。。部分消失了。。。
//springLayout.putConstraint(SpringLayout.WEST,jPanel,spring,SpringLayout.WEST,jbt);//3、单独用时,无作用。。。
//springLayout.putConstraint(SpringLayout.EAST,jPanel,spring,SpringLayout.EAST,jbt);//4、单独用时,无作用。。。
//只使用ok按钮时,1、4一起用时,ok按钮居中。
//而2、3一起用时,或3、4一起用时,或2、4一起用时,或1、2一起用时,或1、3一起用时,无此效果。
/**
//可以与1、4一起用,两个按钮会重叠。
springLayout.putConstraint(SpringLayout.WEST,jbt6,spring,SpringLayout.WEST,jPanel);//单独用时,从左向右移动了一点。。。
springLayout.putConstraint(SpringLayout.EAST,jPanel,spring,SpringLayout.EAST,jbt6);//单独用时,无作用。。。
*/
/*
//证明一条边可以连接多个弹簧,但是任意两条边之间只能放置一个弹簧(放置多个则取最后放置者来产生显示效果)。
springLayout.putConstraint(SpringLayout.WEST,jbt7,spring,SpringLayout.WEST,jPanel);//
springLayout.putConstraint(SpringLayout.WEST,jbt8,spring,SpringLayout.WEST,jbt7);//
springLayout.putConstraint(SpringLayout.WEST,jbt9,spring,SpringLayout.WEST,jbt7);//
springLayout.putConstraint(SpringLayout.EAST,jPanel,spring,SpringLayout.WEST,jbt8);//
springLayout.putConstraint(SpringLayout.EAST,jPanel,spring,SpringLayout.WEST,jbt9);//
*/
// springLayout.putConstraint(SpringLayout.SOUTH,jPanel,spring,SpringLayout.SOUTH,jbt);//5、单独用时,无作用。。。
// springLayout.putConstraint(SpringLayout.NORTH,jPanel,spring,SpringLayout.NORTH,jbt);//6、单独用时,无作用。。。
// springLayout.putConstraint(SpringLayout.SOUTH,jbt,spring,SpringLayout.SOUTH,jPanel);//7、单独用时,去到下面了。。。部分消失了。。。
//springLayout.putConstraint(SpringLayout.NORTH,jbt,spring,SpringLayout.NORTH,jPanel);// 8、单独用时,从上向下移动了一点。。。
//只使用ok按钮时,5、8一起用时,ok按钮居中。
//而6、7一起用时,或7、8一起用时,或6、8一起用时,或5、6一起用时,或5、7一起用时,无此效果。
/**
//下列二句一起用时,右边的弹簧力量比左边的强一倍。
springLayout.putConstraint(SpringLayout.WEST,jbt,spring,SpringLayout.WEST,jPanel);//单独用时,从左向右移动了一点。。。
springLayout.putConstraint(SpringLayout.EAST,jPanel,Spring.sum(spring, spring),SpringLayout.EAST,jbt);//单独用时,无作用。。。
*/
/**
//&&
springLayout.putConstraint(SpringLayout.WEST,jbt,spring,SpringLayout.WEST,jPanel);//
springLayout.putConstraint(SpringLayout.WEST,jbt1,spring,SpringLayout.EAST,jbt);//
springLayout.putConstraint(SpringLayout.WEST,jbt2,spring,SpringLayout.EAST,jbt1);//
springLayout.putConstraint(SpringLayout.WEST,jbt3,spring,SpringLayout.EAST,jbt2);//
springLayout.putConstraint(SpringLayout.WEST,jbt4,spring,SpringLayout.EAST,jbt3);//
springLayout.putConstraint(SpringLayout.WEST,jbt5,spring,SpringLayout.EAST,jbt4);//
springLayout.putConstraint(SpringLayout.EAST,jPanel,spring,SpringLayout.EAST,jbt5);//
//注释掉&&之前的语句,而与@@一起用时,看见各按钮整齐排列成行 。。。
*/
JFrame jFrame = new JFrame();
jFrame.add(jPanel,BorderLayout.CENTER);
jFrame.setSize(300,500);
// jFrame.pack();
jFrame.setVisible(true);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Main main = new Main();
//JFrame jFrame = new JFrame();
// jFrame
}
}
最后
以上就是年轻季节为你收集整理的SpringLayout弹簧锚定显示效果,putconstraint()的全部内容,希望文章能够帮你解决SpringLayout弹簧锚定显示效果,putconstraint()所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复