欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    GUI编程(容器组件与布局).ppt

    • 资源ID:6506808       资源大小:500KB        全文页数:43页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    GUI编程(容器组件与布局).ppt

    1,GUI编程 容器组件与布局,2,大纲,JTabbedPane容器组件,设置图形界面的7个步骤,JFrame容器组件,JPane容器组件,布局管理器,3,设置图形界面的7个步骤,加载包创建窗口,并设置窗口属性,(大小,位置,关闭窗口时退出程序)创建JPanel面板创建其他组件,(如按钮,文本,标签)将组件添加到JPanel上将JPanel添加到窗口上显示窗口,4,顶级容器JFrame,是Window类的子类,是顶级窗口,不包含在任何的对象中,它直接出现在桌面。public class JFrame extends Frame implements WindowConstants,Accessible,RootPaneContainer构造方法:new JFrame():创建一个不含标题的初始不可见窗口new JFrame(String title):创建一个含标题的初始不可见窗口,这个标题由参数title指定的,5,JFrame的常用方法,add(组件):添加组件setSize(300,200):设置大小setVisible(true):设置是否显示setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE):退出应用程序后的默认窗口关闭操作 setBackground(Color.颜色):设置背景颜色setForeground(Color.颜色):设置前景颜色pack():设置框架窗口初始大小为刚好只显示出所有的组件注意:前面set代表“设置”,get代表“获取”,6,示例,JFrame frame=new JFrame(“Java GUI应用程序”);/创建带标题“Java GUI应用程序”的框架对象frameframe.setSize(200,150);/设置框架窗口初始大小为200150点frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/在选择框架的关闭按钮时能退出程序frame.pack();/设置框架窗口初始大小为刚好只显示出所有的组件。frame.setVisible(true);/显示框架对象代表的框架窗口,7,JPanel面板,面板是一个不含标题栏,菜单栏以及边框的窗口JPanel是一种添加到其他容器使用的容器组件,可将组件添加到JPanel,然后再将JPanel添加到某个容器。JPanel也提供一个绘画区域,可代替AWT的画布Canvas(没有JCanvas)。与窗口对比,面板不是一个独立的窗口,它只是包含在窗口中的一个区域。,8,JPanel面板,构造方法:public JPanel()创建具有缺省FlowLayout布局的JPanel对象。public JPanel(LayoutManager layout)创建具有指定布局管理器的JPanel对象。,9,JPanel的常用方法,add(组件):添加组件setSize(300,200):设置大小setBounds(0,0,800,800);设置坐标,大小,10,可以直接使用JFrame添加组件,但是他们是不同层面,比如JFrame包含container,container包含JPanel,,当你要创造一个复杂的界面的时候,就会用到很多这样的结构。,为什么要用面板JPanel加上组件,不直接用框架JFrame?,11,示例,import java.awt.*;import javax.swing.*;class JPanelDemo extends JPanel JButton b1=new JButton(JPanel);JButton b2=new JButton(Demo);public JPanelDemo()setBackground(Color.white);add(b1);add(b2);,12,public static void main(String args)JPanel jp=new JPanelDemo();jp.setBorder(BorderFactory.createTitledBorder(Hello,Border);JFrame frame=new JFrame(JPanelDemo);frame.setSize(200,150);frame.setContentPane(jp);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);,13,JTabbedPane容器组件,类继承于,它的对象反映为一组带标签的面板,每个面板都可以存放组件,因此JTabbedPane是一容器组件。,14,JTabbedPane容器组件,JTabbedPane类的构造方法有:JTabbedPane()创建空对象,该对象具有缺省的标签位置JTabbedPane.TOP和缺省的布局策略JTabbedPane.WRAP_TAB_LAYOUT。JTabbedPane(int tabPlacement)创建空对象,该对象具有指定的标签位置:1JTabbedPane.TOP、2JTabbedPane.BOTTOM、3JTabbedPane.LEFT、4JTabbedPane.RIGHT以及缺省的布局策略JTabbedPane.WRAP_TAB_LAYOUTJTabbedPane(int tabPlacement,int tabLayoutPolicy)创建空对象,该对象具有指定的标签位置和布局策略。,15,import java.awt.*;import javax.swing.*;class JTabbedPaneDemo1public static void main(String args)JFrame jf=new JFrame(JTabbedPane示例);JTabbedPane jt=new JTabbedPane(1);for(int i=0;i5;i+)jt.addTab(页标签+i,null);jf.add(jt,BorderLayout.CENTER);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jf.setSize(400,200);jf.setVisible(true);,16,JTabbedPane jt=new JTabbedPane(n);,17,示例,JTabbedPaneDemo.java,18,布局管理器,在容器中所有组件的布局(位置和大小)由布局管理器来控制。在Java语言中提供了FlowLayout、BorderLayout、GridLayout、CardLayout和GridBagLayout等多种布局管理器。每种容器都有自己缺省的布局管理器。缺省地,JPanel使用FlowLayout,而内容窗格 ContentPane(JApplet、JDialog和JFrame对象的主容器)使用BorderLayout。如果不希望使用缺省的布局管理器,则可使用所有容器的父类Container的setLayout()方法来改变缺省的布局管理器。,19,FlowLayout流式布局,FlowLayout布局是一种最基本的布局。这种布局指的是把组件一个接一个从左至右、从上至下地依次放在容器上,每一行中的组件缺省为居中对齐。当容器的尺寸改变后,组件的大小不变,但布局将会随之变化。其默认方式为居中对齐方式,也可以手工设置左对齐或右对齐。,20,FlowLayout构造方法,构造方法如下:FlowLayout()创建每行组件对齐方式为居中对齐、组件间距为5个像素单位的对象FlowLayout(int align)创建指定每行组件对齐方式、组件间距为5个像素单位的对象,align可取三个静态常量LEFT、CENTER和RIGHT之一(分别表示左、中、右对齐方式)。FlowLayout(int align,int hgap,int vgap)创建指定每行组件对齐方式的对象,该对象也使用参数vgap和hgap指定了组件间的以像素为单位的纵横间距。,21,创建默认的FlowLayout布局管理器:FlowLayout()以指定的对齐方式创建:FlowLayout(int)以指定的对齐方式及间距创建FlowLayout布局管理器:FlowLayout(int,int,int),FlowLayout.LEFT 0 FlowLayout.RIGHT 2 FlowLayout.CENTER 1,对齐方式,组件行间距,组件列间距,对齐方式为居中对齐、组件间距为5个像素单位,22,FlowLayout添加组件,向使用FlowLayout布局的容器添加组件可简单地使用下面的语句:add(组件名);,23,示例,JPanel jp=new JPanel();/创建每行组件对齐方式为居中对齐、组件间距为5个像素单位的对象 jp.setLayout(new FlowLayout(FlowLayout.LEFT,10,10);/指定jp的布局管理器,对齐方式为左对齐、组件行间距与列间距均为10个像素,24,import java.awt.*;import javax.swing.*;class FlowLayoutDemopublic static void main(String args)JPanel jp=new JPanel();jp.setLayout(new FlowLayout(0,10,10);JButton jb=new JButton10;for(int i=0;i10;i+)jbi=new JButton(Button+i);jp.add(jbi);JFrame jf=new JFrame(my Frame);jf.setLocation(300,300);jf.setSize(300,400);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jf.setContentPane(jp);jf.setVisible(true);,改变窗口大小时,25,BorderLayout边界布局,BorderLayout 是内容窗格的缺省布局管理器。内容窗格是框架JFrame,小程序JApplet和对话框JDialog的主容器。BorderLayout将容器的布局分为五个区:北区、南区、东区、西区和中区。这几个区的分布规律是“上北下南,左西右东”。当容器的大小改变时,容器中的各个组件相对位置不变,其中间部分组件的尺寸会发生变化,四周组件宽度固定不变。,26,BorderLayout,BorderLayout类的构造方法如下:BorderLayout()创建组件间无间距的BorderLayout对象。BorderLayout(int hgap,int vgap)创建有指定组件间距的对象。,27,BorderLayout添加组件,向BorderLayout布局的容器添加组件时,每添加一个组件都应指明该组件加在哪个区域中。add(组件名,区域)方法的第二个参数指明加入的区域,区域东南西北中可用五个静态常量表示:BorderLayout.EASTBorderLayout.SOUTHBorderLayout.WESTBorderLayout.NORTHBorderLayout.CENTER,28,实例,将五个按钮加入BorderLayout的五个区。,29,import java.awt.*;import javax.swing.*;public class BorderLayoutDemo extends JFrame public static void main(String args)Container c=getContentPane();c.add(new Button(北North),BorderLayout.NORTH);c.add(new Button(南South),BorderLayout.SOUTH);c.add(new Button(东East),BorderLayout.EAST);c.add(new Button(西West),BorderLayout.WEST);c.add(new Button(中Center),BorderLayout.CENTER);,30,GridLayout网格布局,GridLayout布局是将容器的空间分成若干行和列的一个个网格,可以给出网格的行数和列数,组件添加到这些网格中。当改变容器的大小后,其中的组件相对位置不变,但大小改变。容器中各个组件同高度、同宽度。各个组件缺省的排列方式为:从上到下,从左到右。,31,GridLayout网格布局,GridLayout类的构造方法如下:public GridLayout()创建单行每个组件一列的GridLayout对象。public GridLayout(int rows,int cols)创建指定行列数的GridLayout对象。public GridLayout(int rows,int cols,int hgap,int vgap)创建指定行列数以及间距的GridLayout对象。,32,注意事项,因为没有容器缺省使用GridLayout,因此在使用GridLayout前,要用setLayout()方法将容器的布局管理器设置为GridLayout。在向GridLayout添加组件时,组件加入容器要按序进行,每个网格中都必须加入组件,若希望某个网格为空,可以为该网格加入一个空的标签:add(new JLabel()。,33,示例,import java.awt.*;import javax.swing.*;public class GridLayoutDemo public static void main(String args)JFrame jf=new JFrame(aa);Container c=jf.getContentPane();c.setLayout(new GridLayout(3,2);c.add(new Button(1);c.add(new Button(2);c.add(new Button(3);c.add(new Button(4);c.add(new Button(5);c.add(new Button(6);jf.pack();jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jf.setVisible(true);,34,CardLayout卡片布局,CardLayout布局管理器能够使得多个组件共享同一显示空间,这些组件之间的关系像一叠重叠的扑克牌,只有最上面的组件是可见的。注意:在一个显示空间(卡片)中只能显示一个组件,因此,可使用容器嵌套的方法来显示多个组件。,35,CardLayout,CardLayout类的构造方法如下:CardLayout()创建间距为零的对象。CardLayout(int hgap,int vgap)创建带有水平hgap和垂直vgap间距的对象。,36,注意事项,为了使用叠在下面的组件,可以为每个组件取一名字,名字在用add()方法向容器添加组件时指定,需要某个组件时通过show()方法指定该组件的名字来选取它。也可以顺序使用这些组件,或直接指明选取第一个组件(用first()方法)或最后一个组件(用last()方法)。,37,示例,JFrame jf=new JFrame(aa);CardLayout cl=new CardLayout(20,40);/组件在卡片中有边界Container c=jf.getContentPane();c.setLayout(cl);JButton b1=new JButton(卡片一);JButton b2=new JButton(卡片二);JButton b3=new JButton(卡片三);c.add(card1,b1);c.add(card2,b2);c.add(card3,b3);jf.pack();jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jf.setVisible(true);,38,GridBagLayout,GridBagLayout是最复杂也最灵活的布局管理器。这个布局管理器将组件放入单元格中,但允许一些组件跨越单元格。可用GridBagLayout类的构造方法GridBagLayout()来创建一个GridBagLayout布局管理器。因GridBagLayout布局设置比较复杂,这里就不介绍了,请参看API说明或其他资料。,39,自定义布局,null 布局管理器将主动权交给用户,由用户使用坐标系统来放置每个组件,即调用组件的setBounds()方法来设置位置和大小。如:this.setLayout(null);Label L1=new Label(“test”);L1.setBounds(108,2,98,37);Add(L1);注意,采用这种方式的布局,组件的位置和大小将不随窗口大小的变化而变化。,40,import java.awt.*;import javax.swing.*;public class F1 extends JFrameF1()super(建设自己的布局管理器);Container c=getContentPane();c.setLayout(null);JButton jb1=new JButton(按钮1);JButton jb2=new JButton(按钮2);c.add(jb1);c.add(jb2);jb1.setBounds(10,10,100,30);jb2.setBounds(10,50,100,30);public static void main(String args)F1 jf=new F1();jf.setSize(200,150);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jf.setVisible(true);,41,小结,2,JTabbedPane容器组件,布局管理器,4,JFrame容器组件,JPanel容器组件,42,作业,上机练习课件中的实例,43,下课休息,

    注意事项

    本文(GUI编程(容器组件与布局).ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开