GUI布局

GUI的三种基本布局

流式布局

Stream Layout

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
       
		Frame windows=new Frame();
		
		windows.setLayout(new FlowLayout());//new FlowLayout() 可以控制 按钮左右
		
		Button button1=new Button("按钮一");
		Button button2=new Button("按钮2");
		Button button3=new Button("按钮3");
		
		windows.add(button1);
		windows.add(button2);
		windows.add(button3);
		
		//windows.setSize(200,200);手动 窗口大小
		
         windows.pack();//最优窗口大小
		
		windows.setVisible(true);
		
	}

东西南北中

Aroud Layuot

public class AroudLayout {
	
	public static void main(String[] args) {
		
		Frame  windows=new Frame("东西南北布局" );
		
		Button East=new Button("East 东");
		Button West=new Button("West  西");
		Button north=new Button("north  北");
		Button south=new Button("south  南");
		Button center=new Button("center 中");
		
		windows.add(East,BorderLayout.EAST);
		windows.add(West,BorderLayout.WEST);
		windows.add(north,BorderLayout.NORTH);
		windows.add(south,BorderLayout.SOUTH);
		windows.add(center,BorderLayout.CENTER);
		
		
		windows.pack();
		
		windows.setVisible(true);

	}

}

表格 布局

From Layout


public class FromLayout {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		
		Frame  windows=new Frame("表格布局");
		
		Button button1=new Button("表格布局");
		Button button2=new Button("");
		Button button3=new Button("");
		Button button4=new Button("");
		Button button5=new Button("");
		Button button6=new Button("");
		
		windows.setLayout(new GridLayout(2,3));
		
		windows.add(button1);
		windows.add(button2);
		windows.add(button3);
		windows.add(button4);
		windows.add(button5);
		windows.add(button6);
		
		windows.pack();
		
		windows.setVisible(true);
     
	}

}

练习

package guiLayout;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JPanel;

public class LayoutWork {

	public static void main(String[] args) {
		Frame  windows=new Frame("GUI 布局作业" );
		windows.setLayout(new GridLayout(2,1));
		windows.setSize(300,300);
		windows.setLocation(100,100);
		windows.setBackground(Color.BLUE);
		windows.setVisible(true);
		//把windows 界面分2个面板
		//再继续细分
		Panel jp1=new Panel(new BorderLayout());
		Panel jp2=new Panel(new GridLayout(1,2));
		Panel jp3=new Panel(new BorderLayout());
		Panel jp4=new Panel(new GridLayout(2,2));
		//面板一
		jp1.add(new Button("上面板1"),BorderLayout.WEST);
		jp1.add(new Button("上面板2"),BorderLayout.EAST);
		jp2.add(new Button("上面板3"));
		jp2.add(new Button("上面板4"));
		jp1.add(jp2,BorderLayout.CENTER);
		//面板二
		jp3.add(new Button("下面板1"),BorderLayout.WEST);
		jp3.add(new Button("下面板2"),BorderLayout.EAST);
		for(int i=2;i<6;i++){
			
			jp4.add(new Button("下面板"+i));	
			
		}
		
		jp3.add(jp4,BorderLayout.CENTER);
		
		windows.add(jp1);
		windows.add(jp3);

		//监听器 
       windows.addWindowListener(new WindowAdapter() {
    	   
    	   public void windowClosing(WindowEvent e) {
    		   System.exit(0);
    		   
    	   }   
	});
	}

}

总结

  1. Frame是一个大窗口
  2. panel不能单独存在必须添加到一个容器中
                   jp1.add(new Button("上面板1"),BorderLayout.WEST);
		   jp1.add(new Button("上面板2"),BorderLayout.EAST);
  1. 布局样式

​ 流式(FlowLayout)、东西南北中(BorderLayout) 、表格(GridLayout)

  1. 背景 (setBackground)、大小 (setSize)、初始位子(setLocation)、界面可见性(setVisible)、

    监听(addWindowListener);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值