简单面板管理

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 自动加载包





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值