简单面板管理

来源:互联网 发布:老婆不愿意生孩子知乎 编辑:程序博客网 时间:2024/05/01 06:49
import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.GridLayout;import java.awt.Toolkit;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;import javax.swing.border.EmptyBorder;import javax.swing.text.AbstractDocument.Content;public class PaneTest extends JFrame {public PaneTest(){super();setTitle("简单面板管理");Toolkit tool = Toolkit.getDefaultToolkit();Dimension screen = tool.getScreenSize();setDefaultCloseOperation(EXIT_ON_CLOSE);setSize(800,600);setLocation((screen.width-getWidth())/2,(screen.height-getHeight())/2);setVisible(true);BorderLayout layout = new BorderLayout();layout.setVgap(10);getContentPane().setLayout(layout);JPanel mainPane = new JPanel();getContentPane().add(mainPane);mainPane.setBorder(new EmptyBorder(0,0,0,0));final JLabel lblUsr = new JLabel("用户名");final JLabel lblPwd = new JLabel("密码");JTextField txtUsr = new JTextField(10);JPasswordField txtPwd = new JPasswordField(10);JButton btnLogin = new JButton("登录");JButton btnReset = new JButton("重置");final JPanel centerPane = new JPanel();mainPane.add(centerPane);final GridLayout gridlayout = new GridLayout();centerPane.setLayout(gridlayout);gridlayout.setVgap(10);gridlayout.setHgap(10);centerPane.add(lblUsr);
 final GridLayout gridlayout = new GridLayout(3,2);
centerPane.setLayout(gridlayout);gridlayout.setVgap(10);gridlayout.setHgap(10);centerPane.add(lblUsr);centerPane.add(lblUsr);centerPane.add(txtUsr);centerPane.add(lblPwd);centerPane.add(txtPwd);centerPane.add(btnLogin);centerPane.add(btnReset);}    public static void main(String[] args)     {    new PaneTest();}};
结果在窗口的上方显示“用户名”
后将
mainPane.add(centerPane)改为mainPane.add(centerPane,SwingConstants.Bottom)结果为“用户名”消失了。
于是另改为
centerPane.add(lblUsr)----》centerPane.add(lblUsr,SwingConstants.Bottom)结果“用户名”消失不见。
要怎样才能将其显示在合适位置呢?
setVgap()和setHgap()的作用是什么?
由于我想随意设置这些Label 和 JTextField 的位置,比如的的窗口大小为800*600,但是我想从(800,300)的位置开始摆放JLabel ,试了多次,可以先摆放一个空白面板(JPanel nullPane = new JPanel()),把它的背景和原背景设置为一致并nullPane设置适当大小即可。 发现通过nullPane.setSize(new Dimension(800,250));达不到想要的结果,后改为nullPane.setPreferredSize(new Dimenison(800,250));可得结果;再谈,我起先加载nullPaned的时候是通过mainPane.add(nullPane,SwingConstraints.NORTH);结果不理想,后把SwingConstraints.NORTH去掉,可得理想结果。 如果想的话,还可以在nullPane上添加图片等等。
虽然暂时没发现所谓的布局有什么不同,可以总结有BordLayout布局,有GridLayout布局,
还有所谓的边框setBorder(),有和灭有没发现什么不同。
改变final GridLayout gridlayout = new GridLayout()为final GridLayout gridlayout = new GridLayout(2,2)发现结果有变化。仿佛是按照网格排列了。后改为final GridLayout gridlayout = new GridLayout(1,1);结果和final GridLayout gridlayout = new GridLayout();是一样的。 (1,1)(2,2)即所谓几行几列。
grid.setVgap(10)和setHgap(10) 把参数改为5,没发现变化,后改为1,只有一点点变化,再然后改为100,结果变化很大,事实证明,setVgap()是设置组件上下之间的距离,setHgap()是设置组件左右之间距离。
eclipse快捷键:alt+/ 自动补全 ctrl+/注释一行 ctrl+d 删除一行 ctrl+1 自动加载包

	
				
		
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 cf我是新手不知道怎么报点怎么办 挑战人物已经有了又刷到怎么办 小米手机账户验证码隐藏了怎么办? 苹果手机绑定的邮箱密码忘了怎么办 魔域手机版不要的装备怎么办 魔域永恒多了的幻兽装备怎么办 魔域怀旧版70星以后宝宝怎么办 天猫确认收货后不寄发票怎么办 足球运动员踢了一半想撒尿了怎么办 17个月宝宝0型腿怎么办 走的路多了腿疼怎么办 如果新兵老被老兵打怎么办求求个位 做古董拍卖诈骗被警察抓了怎么办 武汉个人社保怎么办停转到海南来 狗狗车祸前脚软组织受伤了怎么办 6岁儿童夜里盗汗惊战发抖怎么办 一个月大的小狗尾巴掉毛怎么办 口袋妖怪用修改器被ban了怎么办 联币金融提现不到账怎么办 秘密花园的手抄报怎么办?五年级 雷蛇鼠标不亮了怎么办呢 汽车后备箱的垫子好臭怎么办 摩托尾箱内衬味道太重怎么办 买房子把办贷款的单据丢了怎么办 鞋盒破损卖家拒绝退货怎么办 顺丰快递退回发件人签收失败怎么办 客户收到衣服后说衣服破损怎么办 纱窗被老鼠咬了个洞怎么办 双色印刷机开槽刀调不动怎么办 水管软管两端的螺帽下包生锈怎么办 棉花被子盖时间长了被芯变小怎么办 垫的被子发霉了啊没有地方晒怎么办 小孩拉尿在丝棉被棉怎么办 把兔子养大了竟然会咬人怎么办 小兔子生下来母兔子不喂奶怎么办 11个月的宝宝肚子有小白虫怎么办 电焊把脸烤了痒的不行怎么办? 还没满月的宝宝吐奶怎么办 周岁宝宝发烧腹泻吃药老吐怎么办 生完宝宝后肚皮很黑怎么办 两个月宝宝抵抗力差总生病怎么办