Swing的常用布局(一) 绝对布局


java的swing布局(一)绝对布局

date: 2019-10-29 21:47:10

这几天学Java的swing编程,对关于swing的几个较为常用的布局进行讨论
先是第一个绝对布局,在看代码之前先要知道setbounds(x,y,width,height)的定义。在四个参数中:x,y是部件开始位置,width,height是部件的宽和高,再看代码:

import java.awt.*;

import javax.swing.*;

public class Pig extends JFrame{
	public void create(String title) {
		JFrame jf=new JFrame();
		Container  c=jf.getContentPane();
		JPanel p1=new JPanel();       
		p1.setLayout(null);                       //这里必须设置setlayout布局为null,不然会被编译器自动赋为Flowlayout(流布局),而不是绝对布局。
		JLabel jLabel1=new JLabel("员工编号:");   
		jLabel1.setBounds(0,0,60,40);      //横向从0开始,纵向从0开始,设置宽为60,高为40
		
		JTextField jT1=new JTextField();
		jT1.setBounds(60, 0,180,40);		//横向跟着第一个的后面(60),纵向还是从0开始,设置宽为180,高为40
		
		JLabel jLabel2=new JLabel("借用器具:");
		jLabel2.setBounds(260,0,60,40);
		
		JTextField jT2=new JTextField();
		jT2.setBounds(320, 0,180,40);
		
		JLabel jLabel3=new JLabel("借用日期:");     
		jLabel3.setBounds(0,40,60,40);    //横向从0开始,纵向从40开始(第二行,因为第一行高度是40),设置宽为60,高为40
		
		JTextField jT3=new JTextField();
		jT3.setBounds(60, 40,180,40);
		
		JLabel jLabel4=new JLabel("归还日期:");
		jLabel4.setBounds(260,40,60,40);
		
		JTextField jT4=new JTextField();
		jT4.setBounds(320, 40,180,40);

		JLabel jLabel5=new JLabel("借用原因:");
		jLabel5.setBounds(0,80,60,40);

		JTextField jT5=new JTextField();
		jT5.setBounds(60, 80,440,40);

		JButton jb1=new JButton("确定");     
		jb1.setBounds(0,120,250,40);        //横向从0开始,纵向从120开始(第四行,因为每一行高度是40),设置宽为250,高为40
		
		JButton jb2=new JButton("取消"); 
		jb2.setBounds(250,120,250,40);
		
		p1.add(jLabel1);
		p1.add(jT1);
		p1.add(jLabel2);
		p1.add(jT2);
		p1.add(jLabel3);
		p1.add(jT3);
		p1.add(jLabel4);
		p1.add(jT4);
		p1.add(jLabel5);
		p1.add(jT5);  
		p1.add(jb1);
		p1.add(jb2);   
		c.add(p1);
		jf.setTitle(title);
		jf.setBounds(200, 200, 500, 200);
		jf.setVisible(true);
		jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
	public static void main(String[] args) {
			new Pig().create("绝对布局");
	}
}

运行结果如下:
在这里插入图片描述
绝对布局是最简单的,只要知道部件的setbounds(x,y,width,height),一切就显得很简单,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值