JAVA学习的二十七天

一、中间容器

浙式Swing的中间容器包含了一些可以被使用在许多不同环境下的中间层容器,主要包括面板容器(JPanel类)、分隔窗格(JSplitPane类)、带滚动条的窗格容器(JScrollPane类)、工具栏(JToolBar类)等。它们都是JComponent的子类,通常放在其他容器类中。

public class DialongDemo01 extends JDialog{
	public DialongDemo01(JFrame jframe) {
		super(jframe,true);
		
		this.setBounds(100, 100, 700, 500);
		
		Container container1= this.getContentPane();
		
		container1.setLayout(null);
		
		//container.add(new Label("大数据五班"));
		
		JButton button1 = new JButton("我是五班");
		button1.setBounds(30, 30, 200, 50);
		
		container1.add(button1 );
	}

	public static void main(String[] args) {
		JFrame j=new JFrame();
		j.setVisible(true);
		j.setBounds(100, 100, 700, 500);
		j.setDefaultCloseOperation(EXIT_ON_CLOSE);
		
		Container container= j.getContentPane();
		container.setLayout(null);
		
		JButton button = new JButton("我要登录");
		button.setBounds(30, 30, 200, 50);
		button.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				DialongDemo01 s=new 
				
			}
			
			
		})
		
		container.add(button);
	}

}

//面板作为容器不等单独存在,必须放在其他容器 JFrame,JDialog
public class JPaneDemo extends JFrame{
	
	public JPaneDemo() {
		
		Container container1= this.getContentPane();
		container1.setLayout(new GridLayout(2,1,10,10));
		
		JPanel panel=new JPanel(new GridLayout(1,3));
		JPanel.add(new JButton("1"));
		JPanel.add(new JButton("2"));
		JPanel.add(new JButton("3"));
		
		container1.add(Panel);
		
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		this.setVisible(true);
		this.setBuonds(100,100,500,500);
		
		
	}
	
	public static void main(String[] args) {
		new JPaneDemo();
		
	}

}
public class JScrollDemo extends JFrame{
	
	public JScrollDemo() {
		
		Container container1= this.getContentPane();
		
		//文本域
		JTextArea textarea=new JTextArea(20,50);
		textarea.setText("大数据五班");
		
		//scroll面板
		JScrollPane srcollpane=new JScrollPane(textarea);
		JPane

		container1.add(srcollpane);
		
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		this.setVisible(true);
		this.setBuonds(100,100,500,500);
		
		
	}
	
	public static void main(String[] args) {
		new JScrollDemo();
		
	}

}

二、布局管理

当容器中包含多个组件时,组件的布局(包括位置和大小)就显得十分重要。Java 布局组件的基本策略是采用布局管理器。每个容器(如顶层容器的内容窗格)都有一个默认的布局管理器,开发者可以通过容器的setLayout()方法改变容器的布局管理器。

1.FlowLayout布局管理器

FlowLayout定义在Java.awt包中,是JPinel容器的默认布局管理器他按照从上到下、从左到右()的规划将添加到容器中的组件一次排序,如果一行放满后就另起一行。
构造方法:
(1)FlowLayout():无参数的构造方法,创建一个对齐方式 为居中、水平和垂直方向间距为5像素的布局管理器对象。
(2)FlowLayout(int align):创建一个对齐 方式为align的布局管理器对象。align 是在FlowLayout类中定义的常量LEFT(居左)、RIGHT(居右)、CENTER(居中)、LEADING(沿容器左侧对齐)和TRAILING(沿容器右侧对齐)中的一个。
(3)FlowLayout(int align,int hgap,int vgap):创建一个对齐方式为 align、水平间距为hgap像素、垂直间距为vgap像素的布局管理器对象。

	public static void main(String[] args) {
		
		JFrame j=new JFrame();
		j.setVisible(true);
		j.setBounds(100, 100, 700, 500);
		j.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		j.setLayout(new FlowLayout());
		
		JButton button1=new JButton("button1");
		JButton button2=new JButton("button2");
		JButton button3=new JButton("button3");
		JButton button4=new JButton("button4");
		JButton button5=new JButton("button5");
		JButton button6=new JButton("button6");
		
		
		this.setLayout(new Flowayout(Flowayout.RIGHT));
	}

}

2. BorderLayout布局管理器

BorderLayout是JFrame和JDialog两种容器的默认布局管理器,它将容器分为5个部分,分别命名为North、South、West、East和Center。在使用这种布管理器管理组件的排列时.需要为组件指明放的具体位置,默认位置为中间位置。
构造方法:
(1)BorderLayout():无参数的构造方法,创建一个组件之间水平和垂直间距均为零的布局管理器对象。
(2)BorderLayout(int hgap,int vgap) :创建个组件之间水 平间距为hgap、垂直间距为vgap的布局管理器对象

public class TestBorderLayout {
	public static void main(String[] args) {
		
		JFrame j=new JFrame();
		j.setVisible(true);
		j.setBounds(100, 100, 700, 500);
		j.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		//j.setLayout(new FlowLayout());不传参数,默认居中
		//j.setLayout(new FlowLayout(FlowLayout.RIGHT));
		
		
		
		JButton button1=new JButton("east");
		JButton button2=new JButton("west");
		JButton button3=new JButton("south");
		JButton button4=new JButton("north");
		JButton button5=new JButton("居中");

		J.add(east,BorderLayout.RIGHT);
		J.add(west,BorderLayout.WEST);
		J.add(south,BorderLayout.SOUTH);
		J.add(north,BorderLayout.NORTH);
		J.add(居中);
		J.add(button6);
		
		
		this.setLayout(new Flowayout(Flowayout.RIGHT));
	}

}

3.GridLayout布局管理器

GridLayout布局管理器将整个容器划分成N行M列的网格,平均占据容器的空间。布局时.按照组件加人的顺序优先考虑按行布局,当一行布 局满之后再布局下行(每行只能布局M个组件)。只有当行列不能满足指定的数值(N* M小组件个数)时,才按行扩展。
构造方法:
(1)GridLayout():无参数的构造方法,创建个一行内放置所有组件的网格布局管理器对象,组件之间没有间隙。
(2)GridI ayout( int rows,int cols):这个构造方法将创建一个 rows行、cols列的网格布局管理器对象,组件之间没有间隙。
(3))GridLayout(int rows,int cols,int hgap,int vgap):创建一个rows行、cols列的网格布局管理器对象,组件之间的水平距离为hgap,垂直间距为vgap。

public class TestGrid {
	public static void main(String[] args) {
		
		JFrame j=new JFrame();
		j.setVisible(true);
		j.setBounds(100, 100, 700, 500);
		j.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

		j.setLayout(new GridLayout(3,2));
		
		
		
		JButton button1=new JButton("button1");
		button1.setSize(50,50);
		JButton button2=new JButton("button2");
		JButton button3=new JButton("button3");
		JButton button4=new JButton("button4");
		JButton button5=new JButton("button5");
		JButton button6=new JButton("button6");
		J.add(button1);
		J.add(button2);
		J.add(button3);
		J.add(button4);
		J.add(button5);
		//J.add(button6);
		
		
		j.pack();
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值