java GUI编程之布局控制器(Layout)实例分析
本文实例讲述了javaGUI编程之布局控制器(Layout)。分享给大家供大家参考,具体如下:
布局控制器,是用来系统自动分配各个component在window内部是怎么排布的;默认为FlowLayout,即挨个排序。FlowLayout是Panel的
instance1:FlowLayout
importjava.awt.*; publicclassTestLayout{ publicstaticvoidmain(String[]args){ Framef=newFrame(); Buttonb1=newButton("ok"); Buttonb2=newButton("open"); Buttonb3=newButton("change"); f.setBackground(Color.BLUE); f.setBounds(100,100,300,300); f.setLayout(newFlowLayout()); f.setResizable(true); f.add(b1); f.add(b2); f.add(b3); f.setVisible(true); } }
instance2:BorderLayout
importjava.awt.*; publicclassTestBorderLayout{ publicstaticvoidmain(String[]args){ Framef=newFrame("BorderLayout"); Buttonbn=newButton("Bn"); Buttonbs=newButton("Bs"); Buttonbe=newButton("Be"); Buttonbw=newButton("Bw"); Buttonbc=newButton("Bc"); //f.add(bw,"West"); //f.add(be,"East"); //f.add(bn,"North"); //f.add(bs,"South"); //f.add(bc,"Center"); //f.setLayout(newBordorLayout()); f.add(bn,BorderLayout.NORTH); f.add(bs,BorderLayout.SOUTH); f.add(bw,BorderLayout.WEST); f.add(be,BorderLayout.EAST); f.add(bc,BorderLayout.CENTER); f.setSize(200,200); f.setVisible(true); } }
BorderLayout把整个界面划分为东西南北中五个区域块;其中BorderLayout.NORTH等是int类型的数据,为一个常量。
instance3:GridLayout
importjava.awt.*; publicclassTestGridLayout{ publicstaticvoidmain(String[]args){ Framef=newFrame(); Buttonb1=newButton("b1"); Buttonb2=newButton("b2"); Buttonb3=newButton("b3"); Buttonb4=newButton("b4"); Buttonb5=newButton("b5"); Buttonb6=newButton("b6"); f.setLayout(newGridLayout(3,2)); f.add(b1); f.add(b2); f.add(b3); f.add(b4); f.add(b5); f.add(b6); f.pack(); f.setSize(200,200); f.setVisible(true); } }
注:当调用Layout后,其内部的component的大小和位置由系统(布局管理器自主分配),而无法认为的设计。而pack()方法是用来显示各个组件的。
instance4:综合实例
importjava.awt.*; publicclassTestedLayout{ publicstaticvoidmain(String[]args){ Framef=newFrame("GUI"); f.setLayout(newGridLayout(2,1)); Panelp1=newPanel(newBorderLayout()); Panelp2=newPanel(newBorderLayout()); Panelp11=newPanel(newGridLayout(2,1)); Panelp22=newPanel(newGridLayout(2,2)); Buttonb1=newButton("button"); Buttonb2=newButton("button"); Buttonb3=newButton("button"); Buttonb4=newButton("button"); Buttonb5=newButton("button"); Buttonb6=newButton("button"); Buttonb7=newButton("button"); Buttonb8=newButton("button"); Buttonb9=newButton("button"); Buttonb10=newButton("button"); p1.add(b1,BorderLayout.WEST); p1.add(b2,BorderLayout.EAST); p2.add(b3,BorderLayout.WEST); p2.add(b4,BorderLayout.EAST); p11.add(b5); p11.add(b6); p22.add(b7); p22.add(b8); p22.add(b9); p22.add(b10); p1.add(p11,BorderLayout.CENTER); p2.add(p22,BorderLayout.CENTER); f.add(p1); f.add(p2); f.setBounds(100,100,400,400); f.setVisible(true); } }
注:一个new等于创建了一个button对象,分配了一个内存空间。即使是完全相同的button即同样的大小名称等,其终究还是哪一个,当其被反复添加时,仅仅是相当于给其换了位置。其和变量不同,并不是单纯的复制,而是内存和对象的指向问题。
更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。