Java GUI编程的几个常见布局管理器本人是大二学生。 由于最近有制作JavaGUI界面的需求,我再次开始熟悉JavaGUI的各种控件和布局。 并以下面的博文为笔记,总结、完善、发表最近学习的技术要点。 请大家支持和指出。
目录Java GUI编程的几种常规布局管理器目录BorderLayout默认布局管理器FlowLayout布局管理器GridLayout布局管理器GridBagLayout布局管理器
接下来,我将介绍一些Java的常规布局管理器。
另一方面,名为BorderLayout默认布局管理器的布局管理器,如果不指定位置,则默认将控件放在Center上,并不断覆盖。 具体效果和代码如下。
publicclasssystemguiextendsjframe { publicsystemgui (stringstitle ) super ) s title; setsize (800,600; Container c=getContentPane (; c.setbackground(color.gray; JPanel pan=new JPanel (; pan.setbackground(color.white ); pan.setsize (800,600 ); add(pan ); } publicstaticvoidmain (string [ ] args ) systemguifrm=newsystemgui (' test ); FRM.add(Borderlayout.North,newJbutton ) ) North ); FRM.add(borderlayout.south,newJbutton ) )、south ); FRM.add(Borderlayout.west,newJbutton ) ' west ); FRM.add(Borderlayout.east,newJbutton ) ) ' east ); FRM.add(borderlayout.center,newJbutton ) ) ' center ); ze (500,100 ); FRM.setvisible(true; }
二、名为FlowLayout布局管理器的布局管理器比默认布局管理器效果好一些。 因为控件不会重叠,而是按照添加的顺序排列在容器中。 但是缺点是坦率的飞机会拉动面板改变大小。 那是
publicclasssystemguiextendsjframe { publicsystemgui (stringstitle ) super ) s title; setsize (800,600; Container c=getContentPane (; c.setbackground(color.gray; JPanel pan=new JPanel (; pan.setbackground(color.white ); pan.setsize (800,600 ); add(pan ); } publicstaticvoidmain (string [ ] args ) systemguifrm=newsystemgui (' test ); FRM.setlayout(newflowlayout ) ); for(intI=1; i=5; I ) FRM.add(newJbutton('Button'I ) ); FRM.setvisible(true; frm.setsize (500,100 ); FRM.setvisible(true; }
三、GridLayout布局管理器的表格布局有助于把空间放在我们的集装箱里。 它也不像FlowLayout那样拉动窗口或更改控件的位置。
publicclasssystemguiextendsjframe { publicsystemgui (stringstitle ) super ) s title; setsize (800,600; Container c=getContentPane (; c.setbackground(color.gray; //c.set layout (空); JPanel pan=new JPanel (; pan.setbackground(color.white ); pan.setsize (800,600 ); 是加码(pan )
; } public static void main(String[] args) { SystemGUI frm = new SystemGUI("Test"); frm.setLayout(new GridLayout(3,2)); //3行2列的表格布局 for(int i = 0; i < 7; i++) frm.add(new JButton("Button " + i)); frm.setVisible(true); frm.setSize(500,300); frm.setVisible(true); }} 四、GridBagLayout布局管理器这个包位于java.awt包中,这是最复杂的布局管理器。在此布局中,组件大小不必相同。要使用该布局管理器还要有一个辅助类GridBagConstraints。其重要属性包括gridx,gridy,gridwidth,gridheight,fill,anchor,weightx,weighty。这些值会相互影响。
gridx,gridy——组件在网格中的相对位置,类似与直角坐标系里面的位置分布;
gridwidth,gridheight——设置组件在表格当中的大小的,占用几行几列,默认值为1.
weightx和weighty参数可以设置直率的飞机的窗口被拉大(或拉小)的时候,组件所按照什么比例进行缩放,数字越大,组件变化的会越大;
anchor ——当组件小于其显示的区域,那么该显示到何处。注意,GridBagconstraints。anchor在GridBagConstraints.fill=GridBagConstraints
.NONE(不打算填充)时才生效。
fill——当组件所处的动态表格里面有空余的位置的时候,组件将按什么方向填充,这个参数在界面中比较关键一点;
这里容我偷一下懒,转载一段代码,原网页连接在参考文献【1】:
参考文献:
1、Java最重要的布局管理器
2、Java程序设计教程【清华大学出版社】