(55)-14.2 Swing容器面向对象程序设计_第1页
(55)-14.2 Swing容器面向对象程序设计_第2页
(55)-14.2 Swing容器面向对象程序设计_第3页
(55)-14.2 Swing容器面向对象程序设计_第4页
(55)-14.2 Swing容器面向对象程序设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

112.2Swing容器容器java.awt.Container是Component的子类,一个容器可以容纳多个组件,并使它们成为一个整体。Swing常用的顶层容器有JFrame:用来创建application,最常用的JApplet:用来创建appletJDialog:用来创建对话框,常用JWindow:不常用

Java程序界面的构成一个顶层容器(即主窗口)顶层容器包含若干个中间容器每个中间容器包含若干个基本组件按照合理的布局方式将它们组织在一起基本组件可响应发生在其上的事件212.2Swing容器中间容器JPanel,JScrollPane,JSplitPane,JTabbedPane、JInternalFrame:这些容器提供将有关组件按照某种布局组合在一起,然后放入中间容器或顶层容器的功能JPanel:提供一个面板JScrollPane:是具有滚动条的窗格JSplitPane:是具有拆分功能的窗格JTabbedPane:是带有若干标签的分类窗格JInternalFrame:用于创建内嵌于JFrame中的内部框架Box:提供创建横向/纵向盒子容器的功能312.2.1JFrame框架类JFrame是java.awt.Frame的子类JFrame上只能有一个唯一的组件JRootPane,调用JFrame.getContentPane()方法可获得JFrame中内置的JRootPane对象java.lang.Object|+--java.awt.Component|+--java.awt.Container|+--java.awt.Window|+--java.awt.Frame|+--javax.swing.JFrame412.2.1JFrame框架512.2.1JFrame框架构造方法:JFrame():创建无标题窗口。JFrame(Strings):创建标题名字是字符串s的窗口。例如:JFramef=newJFrame(“Hello”);setDefaultCloseOperation方法:设置单击窗口上的关闭按钮时的事件处理方式。JFrame.DO_NOTHING_ON_CLOSEJFrame.HIDE_ON_CLOSEJFrame.DISPOSE_ON_CLOSEJFrame.EXIT_ON_CLOSE6表9-5组件类Component的常用方法方法功能说明publicvoidsetBounds(intx,inty,intw,inth)以(x,y)为对象的左上角,以w为宽,以h为高设置对象的显示区域publicvoidsetBackground(Colorc)设置对象的背景色为cpublicvoidsetSize(intwidth,intheight)设置对象的大小publicvoidsetFont(Fontfont)设置对象的字体样式为fontpublicvoidsetForeground(Colorcolor)设置对象的前景色为colorpublicvoidsetVisible(Booleanb)设置组件是否显示publicvoidsetLocation(intx,inty)设置组件显示位置的左上角坐标为(x,y)publicStringgetName()返回对象的名称演示程序:【例9-1】使用JFrame创建的框架窗口。12.2.1JFrame框架相关类图标类:javax.swing.ImageIcon图像类:java.awt.Image创建图标和图像对象ImageIconii=newImageIcon(“x.gif”);Imageimage=ii.getImage();设置

setIconImage(image);812.2.2JPanel面板面板(JPanel)轻量级容器组件没有标题的中间容器,实现容器的嵌套。默认布局管理器是FlowLayout这类容器不能独立存在,必须通过add()方法添加到一个顶层容器或存在于顶层容器的一个中间容器。面板(JPanel)的大小由它所包含的组件决定当组件个数增加,面板(JPanel)也会随之而增大9示例:importjava.awt.*;importjavax.swing.*;publicclassJPanelDemoextendsJFrame{ publicJPanelgetGUI(){ JPanelp=newJPanel(); p.add(newJButton("Pressme")); returnp; }publicstaticvoidmain(Stringargs[]){ JPanelDemojp=newJPanelDemo(); jp.setTitle("JPanelDemo"); jp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jp.setContentPane(jp.getGUI()); jp.setSize(200,200); jp.setVisible(true); }}演示程序:【例9-2】在框架窗口中加入JPanel面板。1012.2.3JDialog对话框JDialog组件(对话窗口)作用:用来显示提示信息或接收用户输入。特点:没有最小化按钮、状态等控制元素。对话框一般都对应于一个顶层窗口,如JFrame窗口。对话框模式分类:有模式:在运行期间不允许用户同应用程序的其他窗口进行交互。通常情况下,程序要在处理完对话框中的数据后才能进行下一步工作,因此,有模式的对话框应用较多。无模式:允许用户同时在该对话框和程序其他窗口中切换操作。11表9-8JDialog类的构造方法构造方法功能说明publicJDialog()

创建一个没有标题并且没有指定Frame

所有者的无模式对话框publicJDialog(Dialogowner)创建无模式对话框,指定其拥有者为另一个对话框ownerpublicJDialog(Dialogowner,Stringtitle)创建一个拥有者为对话框owner,标题为title的对话框publicJDialog(Dialogowner,Stringtitle,booleanmodal)创建一个拥有者为对话框owner,标题为title的对话框,其模式状态由modal来指定publicJDialog(Frameowner)创建无模式对话框,指定其拥有者为窗口ownerpublicJDialog(Frameowner,booleanmodal)创建一个拥有者为窗口owner的对话框,其模式状态由modal来指定publicJDialog(Frameowner,Stringtitle)创建一个标题为title,拥有者为窗口owner的对话框publicJDialog(Frameowner,Stringtitle,booleanmodal)创建一个标题为title,拥有者为一个窗口的对话框,其模式状态由modal来指定12表9-9JDialog类的常用方法方法功能说明public

JMenuBar

getJMenuBar()返回此对话框上设置的菜单栏publicContainergetContentPane()返回此对话框的contentPane对象public

voidsetContentPane(Container

contentPane)设置contentPane属性public

intgetDefaultCloseOperation()返回用户在此对话框上发起"close"时所执行的操作publicvoidsetDefaultCloseOperation(int

operation)设置当用户在此对话框上发起"close"时默认执行的操作publicvoidsetTitle(Stringtitle)将对话框标题设置为titlepublicvoidsetModal(booleanb)设置对话框是否为模式状态publicbooleanisModal()测试对话框是否为模式状态publicvoidsetResizable(booleanresizable)设置对话框是否可改变大小publicbooleanisResizable()测试对话框是否可改变大小publicvoidsetVisible(booleanb)设置对话框是否显示publicvoiddispose()撤销对话框对象1312.2.4Swing其他容器(1)分层面板(JLayeredPane)Swing提供两种分层面板:JLayeredPane和JDesktopPane。JDesktopPane是JLayeredPane的子类,专门为容纳内部框架(JInternalFrame)而设置。向一个分层面板中添加组件,需要说明将其加入哪一层,指明组件在该层中的位置,语法为:add(Componentc,IntegerLayer,intposition)(2)滚动窗口(JScrollPane)主要通过移动JViewport(视口)来实现。滚动条实际就是沿着组件移动视口,同时描绘出它在下面“看到”的内容1412.2.4Swing其他容器1512.2.4Swing其他容器(3)分隔板(JSplitPane)JSplitPane提供可拆分窗口,支持水平拆分(JSplitPane.HORIZONTAL_SPLIT)和垂直(JSplitPane.VERTICAL_SPLIT)拆分并带有滑动条。常用方法有:

JSplitPane(int

newOrientation,Component

newLeftComponent,Component

newRightComponent)

创建一个具有指定方向和指定组件的新JSplitPane。addImpl(Componentcomp,Objectconstraints,intindex)//增加指定的组件

setTopComponent(Componentcomp)//设置顶部的组件

setDividerSize(intnewSize)//设置拆分的大小

setUI(SplitPaneUIui)//设置外观和感觉

1612.2.4Swing其他容器1712.2.4Swing其他容器(4)选项板(JTabbedPane)JTabbedPane提供一组可供用户选择的带有标签或图标的开关键。常用的方法如下:add(Stringtitle,Componentcomponent)//增加一个带特定标签的组件addChangeListener(ChangeListenerl)//选项板注册一个变化监听器(5)工具栏(JToolBar)JToolBar是用于显示常用工具控件的容器。用户可以拖拽出一个独立的可显示工具控件的窗口。常用的方法如下:JToolBar(Stringname)//构造方法getComponentIndex(Componentc)//返回一个组件的序号getComponentAtIndex(inti)//得到一个指定序号的组件12.2.4Swing其他容器(6)内部框架(JInternalFrame)内部框架JInternalFrame就如同一个窗口在另一个窗口内部。JFrameframe=newJFrame("InternalFrameDemo");//实例化窗口JDesktopPanedesktop=newJDesktopPane();//实例化容器JDesktopPaneMyInternalFramemyframe=newMyInternalFrame();//实例化内部窗口desktop.add(myframe);//把内

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论