第9章 高级组件_第1页
第9章 高级组件_第2页
第9章 高级组件_第3页
第9章 高级组件_第4页
第9章 高级组件_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

第9章高级组件 本章的任务 介绍如何创建菜单栏 如何创建工具栏 如何创建树形菜单 如何创建选项卡面板 如何在JApplet中添加组件 如何在已有的对象上添加属性与功能 本章主要内容 1 菜单栏2 工具栏3 树形菜单4 选项卡面板5 JApplet容器6 表格 9 1菜单栏 菜单是图形用户界面的重要组成部分 由菜单条 MenuBar 菜单 Menu 菜单项 MenuItem 和复选菜单项 CheckboxMenuItem 等对象组成 9 1 1菜单 例9 1本例介绍如何通过菜单条 MenuBar 菜单 Menu 菜单项 MenuItem 3个主要对象组成窗口中的菜单栏 创建的菜单栏参见链接 JM importjava awt importjavax swing publicclassJMextendsJFrame JMenuBarmb newJMenuBar 创建菜单条JMenum1 newJMenu 文件 F 创建菜单JMenuItemopen newJMenuItem 打开 O Ctrl O 创建菜单项JMenuItemclose newJMenuItem 保存 S Ctrl S JMenuItemexit newJMenuItem 退出 JMenum2 newJMenu 编辑 E JMenuItemcopy newJMenuItem 复制 C Ctrl C JMenuItemcut newJMenuItem 剪切 T Ctrl X JMenuItempaste newJMenuItem 粘贴 P Ctrl V JMenum3 newJMenu 帮助 H JMenuItemcontent newJMenuItem 目录 JMenuItemindex newJMenuItem 索引 JMenuItemabout newJMenuItem 关于 Containerc JTextAreaeditor newJTextArea Fontt newFont sanserif Font PLAIN 12 JM super 使用菜单栏的窗口 setSize 400 300 try UIManager setLookAndFeel UIManager getSystemLookAndFeelClassName catch Exceptione System err println 不能设置外观的原因 e c getContentPane c add newJScrollPane editor addFileMenu addEditMenu addHelpMenu addJMenuBar setJMenuBar mb 显示菜单栏setVisible true setDefaultCloseOperation JFrame EXIT ON CLOSE privatevoidaddFileMenu 创建文件菜单的方法m1 add open 将菜单项加入到菜单中m1 add close m1 addSeparator 将分隔条加入到菜单中m1 add exit m1 setFont t 设置菜单字体 privatevoidaddEditMenu 创建编辑菜单的方法m2 add copy m2 add cut m2 addSeparator m2 add paste m2 setFont t privatevoidaddHelpMenu 创建帮助菜单的方法m3 add content m3 add index m3 addSeparator m3 add about m3 setFont t privatevoidaddJMenuBar 将菜单加入到菜单条上的方法mb add m1 mb add m2 mb add m3 mb setBackground Color cyan publicstaticvoidmain Stringargs newJM 9 1 2多级菜单 例9 2创建多级菜单 结果 JM2 如图所示 importjava awt importjavax swing publicclassJM2extendsJM JMenum11 newJMenu 新建 JMenuItemi21 newJMenuItem 普通文本文件 JMenuItemi22 newJMenuItem HTML页面文件 JM2 m1 add m11 0 将菜单项m11加入到父类m1 文件 的第一位置上m11 add i21 直接为二级菜单m11加入菜单项m11 addSeparator m11 add i22 直接为二级菜单m11加入菜单项 publicstaticvoidmain Stringarg newJM2 9 1 3快捷菜单 快捷菜单是一种非常方便的菜单工具 它平常依附在某个容器或组件上并不显现出来 当用户点击鼠标右键时它就会弹出来 例9 3快捷菜单应用 结果如图所示 importjava awt importjava awt event importjavax swing publicclassJM3extendsJMimplementsActionListener MouseListener JMf newJM 创建具有菜单栏的窗口对象JPopupMenupm newJPopupMenu 创建快捷菜单对象JMenuItemitem1 newJMenuItem 复制 JMenuItemitem2 newJMenuItem 剪切 JMenuItemitem3 newJMenuItem 粘贴 JM3 f editor add pm 将快捷菜单加入到文本区中pm add item1 创建快捷菜单的选项pm add item2 pm add item3 item1 addActionListener this 注册菜单项的鼠标事件监听器item2 addActionListener this item3 addActionListener this f editor addMouseListener this 注册文本区的鼠标事件监听器 publicvoidactionPerformed ActionEvente f editor append 你选择了 e getActionCommand n publicvoidmouseReleased MouseEvente if e isPopupTrigger 判断是否按下鼠标右键pm show f editor e getX e getY 显示快捷菜单 publicvoidmouseClicked MouseEvente publicvoidmouseEntered MouseEvente publicvoidmouseExited MouseEvente publicvoidmousePressed MouseEvente publicstaticvoidmain Stringarg newJM3 9 1 4文件选择器 JFileChooser类是Java提供的用来打开或保存文件的文件选择器组件 该组件可以显示当前计算机的文件与目录 可以让用户打开或保存文件 例9 4本例用来说明文件选择器与菜单的结合应用方式 importjava io importjava awt importjavax swing importjava awt event publicclassJM4extendsJM2 publicJM4 open addActionListener newActionListener publicvoidactionPerformed ActionEvente loadFile close addActionListener newActionListener publicvoidactionPerformed ActionEvente saveFile exit addActionListener newActionListener publicvoidactionPerformed ActionEvente System exit 0 voidloadFile 打开文件方法JFileChooserfc newJFileChooser intr fc showOpenDialog this if r JFileChooser APPROVE OPTION Filefile fc getSelectedFile try editor read newFileReader file null catch IOExceptione voidsaveFile 保存文件方法JFileChooserfc newJFileChooser intr fc showSaveDialog this if r JFileChooser APPROVE OPTION Filefile fc getSelectedFile try editor write newFileWriter file catch IOExceptione publicstaticvoidmain String args JM4d newJM4 运行本程序后 在 文件 下拉菜单中选择 打开 菜单选项 将出现 打开 对话框 如图1所示 可从中选择要打开的文件 文本文件格式 可在窗口的文本区看到打开的文件内容 如图2所示 本程序还实现了 保存 文件的方法 可以将文本区中的内容保存为文本文件 通过本程序可以看到窗口中一个逐步完善功能的菜单栏 本程序是JM2类的子类 说明 图1 打开 对话框 运行结果显示 图2 文本区 中显示的文件 9 2工具栏 Swing中的工具栏是一个很有用的组件 它可以显示文字或图像按钮 把一些常用的操作命令集中在工具栏上供用户使用 本节的内容主要介绍如何使用JToolBar类创建包含图像按钮的工具栏 例9 5本例用来说明如何在原来创建的具有菜单栏的窗口上添加一个包含图片按钮的工具栏 结果如图所示 importjavax swing importjava awt importjava awt event publicclassJM5extendsJM4implementsActionListener JToolBartoolBar JButtonb1 b2 b3 JLabell newJLabel publicJM5 b1 newJButton newImageIcon 3 gif b2 newJButton newImageIcon 4 gif b3 newJButton newImageIcon 5 gif b1 addActionListener this b2 addActionListener this b3 addActionListener this toolBar newJToolBar 创建工具栏对象toolBar add b1 向工具栏添加图片按钮toolBar add b2 toolBar add b3 c add toolBar BorderLayout NORTH c add l BorderLayout SOUTH publicvoidactionPerformed ActionEvente Strings if e getSource b1 s 单击了剪切按钮 n elseif e getSource b2 s 单击了复制按钮 n elseif e getSource b3 s 单击了粘帖按钮 n l setText s publicstaticvoidmain String args newJM5 说明 例9 5中的应用程序创建的类JM5是JM4的子类 因此具有JM4的功能 但又在其中添加了多个Swing组件 JButton JToolBar JLabel等 可以看出 Java子类与父类的关系 actionPerformed方法是对工具栏命令按钮单击事件的响应 单击一个按钮后 对应的字符串将显示在文本区中 工具栏与菜单栏在窗口中安放的位置不同 菜单栏是直接设置在窗口框架上 工具栏是安放在内容容器上的 9 3树形菜单 树形菜单是通过javax swing tree包中的JTree类来实现的 它可以用树状结构分层显示菜单信息 并且可以折叠使用 非常主观又清晰 例9 6本例用来说明如何在窗口中创建一个树形结构菜单 结果参见链接 Tree 详见课本P188 说明 创建树形菜单结构与创建菜单栏类似 是按层次与模型创建的 先通过DefaultMutableTreeNode类创建根节点 子节点和孙节点对象 再通过DefaultTreeModel类利用根节点创建树模型对象 然后通过treeModel insertNodeInto方法将节点对象插入树模型中 9 4选项卡面板 选项卡面板是通过javax swing包中的JTabbedPane类来实现的 它可以将多个组件放置在不同的面板上 本节的内容主要介绍选项卡面板的创建与使用方式 例9 7本例用来说明如何在窗口中创建一个选项卡面板 结果参见链接 Jxxk 9 5JApplet容器 如同Swing其他组件一样 对应Applet对象也有一个JApplet 与JFrame相同 它也属于顶层容器 可在其中添加各种Swing组件 但与Applet不同的是 Applet可以直接使用add方法添加各种awt组件 而JApplet则不能直接使用add方法 例9 8本例介绍如何在JApplet中添加图像按钮与图像标签组件 结果参见链接 JAp importjavax swing importjava awt importjava awt Color publicclassJApextendsJApplet Containerc JPanelp1 p2 JButtonbutton1 button2 button3 JLabellabel publicvoidinit c getContentPane p1 newJPanel newFlowLayout p2 newJPanel newFlowLayout ImageIconicon newImageIcon Previous gif button1 newJButton icon button2 newJButton newImageIcon go GIF button3 newJButton newImageIcon Next gif label newJLabel 图像标签 newImageIcon 2 gif SwingConstants CENTER c setBackground newColor 255 255 204 p1 setBackground newColor 255 255 204 p2 setBackground newColor 255 255 204 button1 setToolTipText 向上翻页按钮 button2 setToolTipText 跳转按钮 button3 setToolTipText 向下翻页按钮 c add p1 BorderLayout NORTH c add p2 BorderLayout SOUTH p1 add button1 p1 add button2 p1 add button3 p2 add label 9 6表格 表格组件是通过javax swing包中的JTable类来实现的 它用来显示一个二维的表格对象 在表格中可以显示不同的数字 本节的内容主要介绍表格对象的创建与使用方式 例9 9本例用来说明如何在窗口中创建一个表格对象 结果参见链接 JTb1 importjava awt importjavax swing publicclassJTb1extendsJFrame JTabletable publicJTb1 super 带有表格组件的窗口 setSize 400 300 try UIManager setLookAndFeel UIManager getSystemLookAndFeelClassName catch Exceptione Containerc getContentPane 创建表值Object data 082520 张平 03A01 80 90 95 80 90 95 082521 李红 03A02 88 90 90 88 90 90 String 列名 学号 姓名 班级 数学 体育 英语 总分 table newJTable data 列名 创建表格对象c add newJScrollPane table setVisible true setDefaultCloseOperation JFrame EXIT ON CLOSE publicstaticvoidmain Stringargs JTb1d newJTb1 通过本程序可知 要创建表格对象 先要创建一个字符串一维数组变量 列名 用来确定表格的列名 然后要定义一个二维对象数组data 用来确定表格

温馨提示

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

评论

0/150

提交评论