JAVA学习日记每天进步一点点之Swing 布局管理及面板

参考 zyj0813 的布局管理的文章

布局管理的代码思路

布局管理主要有边界布局,流布局还有网格布局,编程的思路大体相似:

  1. 继承JFrame类,所有的组件布局都是在JFrame窗体的基础上进行的
  2. 定义组件:可以在类里面,也可以在构造方法内
  3. 添加组件:将组件添加到JFrame容器中去,利用This函数this.add()
  4. 布局管理操作:可能和添加组件同时进行,或者单独设置如this.setLayout(new FlowLayout())
  5. 窗体设置:标题、大小、坐标、开关、可视化
    具体代码如下所示:
    边界布局管理
public MyBorderLayout() {
			JButton jb1=new JButton("按钮1");
			JButton jb2=new JButton("按钮2");
			JButton jb3=new JButton("按钮3");
			this.add(jb1, BorderLayout.CENTER);
			this.add(jb2, BorderLayout.EAST);
			this.add(jb3, BorderLayout.SOUTH);
			// 窗体设置的部分
			this.setTitle("边界布局管理");
			this.setBounds(0, 0, 200, 200);
			this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			this.setVisible(true);
		}		

流布局管理

public MyFlowLayout() {
			for(int i=1;i<10;i++) {
				this.add(new JButton("jb"+i));
			}
			this.setLayout(new FlowLayout(FlowLayout.LEFT));//
			this.setTitle("流布局管理");
			this.setSize(500, 500);
			this.setLocation(0,0);
			this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			this.setVisible(true);
		}

网格布局管理:

int size = 9;
		JButton jb[] = new JButton[size];//定义按钮的数组
		for(int i=0;i<9;i++) {
			jb[i]=new JButton("按钮"+i);//初始化按钮操作
		}
		for(int i=0;i<9;i++) {
			this.add(jb[i]);
		}
		this.setLayout(new GridLayout(3, 3, 20, 20));
		this.setTitle("网格布局管理");
		this.setSize(500, 500);
		this.setLocation(0,0);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);

面板的代码思路

首先,面板也是一种容器,可以装一些组件来布局,但是它必须要被添加到其他的容器中去。相当于在原有的布局管理操作之后,对原来的布局用面板来细分,被用于复杂的布局管理。我们对上面的布局管理的思路做修改:

  1. 继承JFrame类,所有的组件布局都是在JFrame窗体的基础上进行的
  2. 定义组件、定义面板
  3. 添加组件:将组件添加到面板里,JButton
  4. 添加面板:将面板添加到JFrame容器中去,JPanel,相当于将面板中的组件打包成一个整体,在面板里面默认为流布局,如果改用其它的布局方式在初始化面板的时候需要加出来,如JPnel a=new JPnel(new GridLayout()),意思为面板a内部采用的是网格布局
  5. 布局管理操作:这里的操作是把面板当作组件来布局。
  6. 窗体设置:标题、大小、坐标、开关、可视化
    在之前的网格布局管理里面添加面板组件,代码如下:
        int size = 9;
		JButton jb[] = new JButton[size];//定义大小为size的按钮数组
		for(int i=0;i<9;i++) {
			jb[i]=new JButton("按钮"+i);//初始化按钮操作
		}
		JPanel jp1=new JPanel();//初始化面板,默认流布局
		JPanel jp2=new JPanel();
		JPanel jp3=new JPanel();
		for(int i=0;i<3;i++) {
			jp1.add(jb[i]);    //将按钮0-3添加到面板中
		}
		for(int i=3;i<6;i++) {
			jp2.add(jb[i]);
		}
		for(int i=6;i<9;i++) {
			jp3.add(jb[i]);
		}
		this.add(jp1);
		this.add(jp2);
		this.add(jp3);
		this.setLayout(new GridLayout(1, 3, 20, 20));//对面板做网格布局管理

猜你喜欢

转载自blog.csdn.net/weixin_42625189/article/details/89176123
今日推荐