JAVA学习日记每天进步一点点之Swing 布局管理及面板
2019-04-10 10:35
405 查看
参考 zyj0813 的布局管理的文章
布局管理的代码思路
布局管理主要有边界布局,流布局还有网格布局,编程的思路大体相似:
- 继承JFrame类,所有的组件布局都是在JFrame窗体的基础上进行的
- 定义组件:可以在类里面,也可以在构造方法内
- 添加组件:将组件添加到JFrame容器中去,利用This函数this.add()
- 布局管理操作:可能和添加组件同时进行,或者单独设置如this.setLayout(new FlowLayout())
- 窗体设置:标题、大小、坐标、开关、可视化
具体代码如下所示:
边界布局管理
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);
面板的代码思路
首先,面板也是一种容器,可以装一些组件来布局,但是它必须要被添加到其他的容器中去。相当于在原有的布局管理操作之后,对原来的布局用面板来细分,被用于复杂的布局管理。我们对上面的布局管理的思路做修改:
- 继承JFrame类,所有的组件布局都是在JFrame窗体的基础上进行的
- 定义组件、定义面板
- 添加组件:将组件添加到面板里,JButton
- 添加面板:将面板添加到JFrame容器中去,JPanel,相当于将面板中的组件打包成一个整体,在面板里面默认为流布局,如果改用其它的布局方式在初始化面板的时候需要加出来,如JPnel a=new JPnel(new GridLayout()),意思为面板a内部采用的是网格布局
- 布局管理操作:这里的操作是把面板当作组件来布局。
- 窗体设置:标题、大小、坐标、开关、可视化
在之前的网格布局管理里面添加面板组件,代码如下:
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));//对面板做网格布局管理
相关文章推荐
- JAVA学习日记每天进步一点点之集合类
- JAVA学习日记每天进步一点点之登陆界面操作、判断账户名和添加下拉框内容代码
- JAVA学习日记每天进步一点点之java数据结构
- JAVA学习日记每天进步一点点之I/O
- Java学习之面板与布局管理器
- JAVA 学习日志 测试抽象类的程序,每天进步/退步一点点,变化很大哦,努力!
- Swing学习----------java的布局管理学习总结(一)
- 每天进步一点点:(11)进程优先级学习 nice
- Java Swing 绝对布局管理方法,null布局【图】
- Java学习日记之09——JAVA集合与学生管理系统
- 黑马程序员_java学习日记_交通灯管理系统
- atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform
- [每天进步一点点] - Java/JSP连接MySQL数据库篇[2012.12.17]
- atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform
- 每天进步一点点--java连接mysql
- JAVA学习Swing章节JPanel和JScrollPane面板的简单学习
- Java每天学习一点点 09.10.13
- memcached在Java中的应用以及magent的配置-每天进步一点点
- 每天进步一点点-----学习JS的第一个小游戏
- java编程之路每天进步一点点之2014年6月24日