java 使用Swing组件一_第1页
java 使用Swing组件一_第2页
java 使用Swing组件一_第3页
java 使用Swing组件一_第4页
java 使用Swing组件一_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

Java语言与JBuilder应用初步第十三章使用Swing组件一 本章要点 顶级容器组件通用容器组件专用容器组件基本控件不可编辑组件交互的格式组件文本组件 顶级容器组件 框架框架是一个图形界面程序的主窗口在Java中 每个具有图形界面的程序至少要有一个框架 小程序有时也会使用框架框架是由边框 标题栏 最大化 最小化 还原 移动 关闭按钮 系统菜单 以及内容窗格组成内容窗格是框架的核心区域 主要的图形界面组件 菜单栏 工具栏都在内容窗格中 顶级容器组件 框架框架是一个程序的主窗口 每个具有图形界面的程序都至少要有一个框架如果程序中还有其它窗口 并且这些窗口依赖于框架的 则应使用对话框 JDialog 如果要使其它窗口显示在框架的内部 则应该使用内部框架 JInternalFrame 内部框架虽然和框架很象 但它不是顶级容器组件 而是专用的容器组件 顶级容器组件 框架框架是JFrame类的对象 创建并显示一个框架的步骤如下 创建一个JFrame对象 此时框架尚未显示在添加了组件之后 调用pack函数排列组件调用它的setVisible函数以显示框架FrameDemoFrameframe newFrameDemoFrame frame setTitle FrameDemo 框架功能演示 frame pack frame setVisible true 顶级容器组件 框架标题用来描述程序 它显示在框架的标题栏上 以及系统的任务栏上有两种设定框架标题的方法利用setTitle函数设定标题在构造函数中设定标题调用框架的setTitle函数 如下所示 frame setTitle FrameDemo 框架功能演示 顶级容器组件 框架利用setIconImage函数为程序设置图标StringimgURL myicon gif ImageIconicon newImageIcon imgURL frame setIconImage icon getImage 顶级容器组件 框架关闭程序的方法1 将关闭窗口操作设为退出程序 frame setTitle FrameDemo 框架功能演示 frame setDefaultCloseOperation JFrame EXIT ON CLOSE frame pack 顶级容器组件 框架参数代表关闭时的操作 可以有如下值 WindowConstants DO NOTHING ON CLOSE 不做任何事 用窗口监听器进行关闭工作WindowConstants HIDE ON CLOSE 隐藏界面 这是框架和对话框对象的默认操作WindowConstants DISPOSE ON CLOSE 隐藏窗口 并且释放它使用的资源 这是内部框架对象的默认操作JFrame EXIT ON CLOSE 退出应用程序 这种退出方式只能用于应用程序的主框架中 顶级容器组件 框架方法2 编写窗口监听器类 在窗口关闭事件中关闭程序 如下面的代码所示 frame setDefaultCloseOperation WindowConstants DO NOTHING ON CLOSE frame addWindowListener newFrameDemoFrame WindowListener Closing frame 顶级容器组件 框架例题 在退出程序时 要求用户确认 publicvoidwindowClosing WindowEvente intreturnValue returnValue JOptionPane showConfirmDialog null 确实要退出程序吗 退出程序 JOptionPane YES NO OPTION if returnValue JOptionPane YES OPTION System exit 0 调用此函数时会自动弹出一个对话框 要求用户确定是否退出程序 顶级容器组件 框架在框架中加入组件的方法 用getContentPane函数获得内容窗格在内容窗格中用add函数加入各种组件JPanelcontentPane contentPane frame getContentPane JPanelpanel1 newJPanel contentPane add panel1 panel1 add newJLabel 请点击下面的按钮 panel1 add newJButton 关闭 顶级容器组件 框架主程序框架一般还有菜单栏 主程序中的菜单栏通过setJMenuBar函数来设定 JMenuBarmenuBar newJMenuBar frame setJMenuBar menuBar JMenuBar是菜单对象 实际中还需要在其中加入菜单项和菜单子项关于菜单 后面还会有详细介绍 顶级容器组件 框架可以通过setBounds函数来实现setSize setLocation这两个函数的功能 publicvoidsetBounds intx inty intwidth intheight Rectangler newRectangle intx inty intwidth intheight publicvoidsetBounds Rectangler 顶级容器组件 框架setLocationRelativeTo函数 它的作用是将框架放到屏幕上一个现有的组件旁边 publicvoidsetLocationRelativeTo Componentc 其中c是一个已经在屏幕上显示的组件此函数将框架放到组件c的旁边 放置原则是让放置的框架尽量靠近屏幕中间如果函数参数为null 那么就将框架居中放置 这是常用的一种将窗口居中放置的方法 顶级容器组件 对话框对话框是另一类常用的顶级容器对话框与框架非常相似 复杂的对话框也能够实现框架的几乎所有功能实际中 常用的是界面简单 功能高度特化的对话框消息框 显示一条消息选择框 让用户进行选择文件选择框 选择文件进行打开 保存等操作颜色选择框 从调色板中选择颜色 顶级容器组件 对话框每个对话框都必须依附于框架框架关闭以后 所有依附它的对话框也会关闭当框架最小化成一个图标的时候 所有依附它的对话框也会自动隐藏当框架还原的时候 对话框又会自动显示这些操作由Swing自动实现本小节主要介绍通用的对话框 JDialog 和消息框 JOptionPane 顶级容器组件 对话框例 在主框架程序中添加一个通用对话框 里面有一个文字标签和一个按钮 publicvoidshowDialog2 JDialogdialog newJDialog this 对话框 JPanelpanel1 newJPanel dialog getContentPane add panel1 panel1 add newJLabel 这是一个对话框 panel1 add newJButton 点击这里 dialog pack dialog setVisible true 顶级容器组件 对话框对话框分为有模式的和无模式的两种类型有模式的对话框在显示时 将屏蔽用户向对话框所属的主框架键入的所有内容 用户不能对主框架进行任何操作无模式对话框在显示时 用户仍然可以用鼠标点击主框架 在主框架里输入内容 或移动主框架缺省的JDialog对话框都是无模式对话框 顶级容器组件 对话框如果要创建有模式对话框 可以在构造函数里增加一项如下 JDialogdialog newJDialog this 对话框 true 也可以用setModal函数来设置对话框是有模式的还是无模式的 dialog setModal true 将对话框设置成有模式的dialog setModal false 将对话框设置成无模式的 顶级容器组件 对话框消息框 JOptionPane 是一种非常简洁 专用的对话框 例 弹出一个提示消息框 JOptionPane showMessageDialog frame 修改已经保存到文件中 弹出的消息框如下图所示 顶级容器组件 对话框消息框中的图标 预设的图标有4种 错误图标 消息图标 警告图标和提问图标可以显示自己定制的图标不同界面风格下的图标风格 Windows风格 顶级容器组件 对话框不同界面风格下的图标风格 续 Java风格CDE Motif风格GTK 风格 顶级容器组件 对话框常用消息框的调用 消息框 利用静态函数showMessageDialog显示确认框 利用静态函数showConfirmDialog显示选择框 利用静态函数showOptionDialog显示输入框 利用静态函数showInputDialog显示 顶级容器组件 对话框showMessageDialog 显示消息框 消息框是最简单的一种对话框 它的作用只是显示一条消息 它只有一个 确认 按钮 用以关闭消息框 通过修改showMessageDialog函数的参数 可以修改消息框显示的消息 图标和消息框的标题 下面列出常用的消息框形式 顶级容器组件 对话框 顶级容器组件 对话框 顶级容器组件 顶级容器组件 对话框showMessageDialog是一个静态成员函数 可以从类直接调用 它有三种形式 staticvoidJOptionPane showMessageDialog ComponentparentComponent Objectmessage staticvoidJOptionPane showMessageDialog ComponentparentComponent Objectmessage Stringtitle intmessageType staticvoidJOptionPane showMessageDialog ComponentparentComponent Objectmessage Stringtitle intmessageType Iconicon 顶级容器组件 对话框intmessageType 消息框类型 有下列值 顶级容器组件 对话框showConfirmDialog 显示确认框 显示一个对话框 让用户选择 是 或 否 用户选择的结果在返回值中给出 intchoice JOptionPane showConfirmDialog frame 你是否真的要删除文件 执行程序 在屏幕上显示的确认框如下 顶级容器组件 对话框点击 是 否 撤销 都会关闭确认框 同时返回一个值 是 对应的返回值是JOptionPane YES OPTION 否 对应的返回值是JOptionPane NO OPTION 撤销 的返回值JOptionPane CANCEL OPTION可以通过用条件语句比较返回值来确认用户点击的是哪个按钮 再进行下一步操作 showConfirmDialog是一个静态成员函数 可直接通过类来调用 顶级容器组件 对话框 顶级容器组件 对话框showOptionDialog 显示选择框 用于显示定制的对话框 它是参数最多 使用最灵活的JOptionPane类对话框可以在对话框上显示多个按钮每个按钮的文字可以自己定制对话框中还包括图标 提示字符串甚至可以在对话框中加入组件 顶级容器组件 对话框例 一个定制的对话框 String options 小说 诗歌 不告诉你 intchoice JOptionPane showOptionDialog frame 如果将你放逐到荒岛 你最希望带本什么书 问卷调查 JOptionPane YES NO CANCEL OPTION JOptionPane QUESTION MESSAGE newImageIcon about png options options 2 顶级容器组件 对话框showInputDialog 显示输入框 该函数弹出一个对话框 提示用户输入一行文字 或者从下拉框中选择一项输入框有很多用法 常用的有 输入一行文字带有缺省值的文本输入从下拉框中选择一项内容 顶级容器组件 对话框例 用于输入文字的对话框 StringrtnStr JOptionPane showInputDialog frame 如果将你放逐到荒岛 你最希望带本什么书 输入文字 然后回车或单击 确认 输入的文字会保存在rtnStr所指向的字符串里如果按了 Esc 键 或单击 撤销 那么键入的文字不会保存 rtnStr的值为空 顶级容器组件 对话框可以在输入框中给出输入文字的默认值 StringrtnStr JOptionPane showInputDialog frame 如果将你放逐到荒岛 你最希望带本什么书 小说 这条语句在屏幕上显示的对话框如下 顶级容器组件 对话框也可以定制对话框的标题和图标类型 StringrtnStr JOptionPane showInputDialog frame 如果将你放逐到荒岛 你最希望带本什么书 问卷调查 JOptionPane WARNING MESSAGE 在屏幕上显示的对话框如下 注意此时不能设定输入的默认字符串 顶级容器组件 对话框可以用下拉框的形式选择内容 String inputOptions 小说 诗歌 不告诉你 ObjectrtnStr JOptionPane showInputDialog this 如果将你放逐到荒岛 你最希望带本什么书 问卷调查 JOptionPane QUESTION MESSAGE null inputOptions 诗歌 对应对话框如下图所示 缺省值是第二项 顶级容器组件 对话框例 带缺省值的定制文本框 ObjectrtnStr JOptionPane showInputDialog this 如果将你放逐到荒岛 你最希望带本什么书 问卷调查 JOptionPane QUESTION MESSAGE null null 诗歌 通用容器组件 面板面板是最常用的容器组件 缺省情况下 面板上除了背景色以外没有任何东西可以用多个面板 配合不同的布局管理器来配置控件在界面上的布局 通用容器组件 滚动条面板滚动条面板可以在屏幕上有限的区域内显示更大范围的内容 例如 通用容器组件 滚动条面板相应的代码如下 JScrollPanescrollPane newJScrollPane textArea1 JScrollPane VERTICAL SCROLLBAR ALWAYS JScrollPane HORIZONTAL SCROLLBAR ALWAYS scrollPane setPreferredSize newDimension 250 250 创建滚动条面板的过程分两步 第一步 创建一个JScrollPane对象 在构造函数中需要给出放在面板里的控件第二步 设置面板的初始大小 通用容器组件 滚动条面板滚动条的状态通过6个常量来表示 通用容器组件 分隔条面板分隔条面板将一个面板分为两部分 两部分之间被一个分隔条隔开 用户可以拖动分隔条来改变左右面板的大小 如下图所示 通用容器组件 分隔条面板分隔条面板由JSplitPane对象实现左右两部分分别是两个子面板 子面板一般是滚动条面板下面的代码用来创建分隔条面板 JSplitPanesplit newJSplitPane JSplitPane HORIZONTAL SPLIT scrolll scroll2 split setDividerSize 8 split setOneTouchExpandable true getContentPane add split BorderLayout CENTER 通用容器组件 标签页面板 通用容器组件 标签页面板创建标签页面板的程序代码如下 JTabbedPanetabbed newJTabbedPane tabbed addTab 第一页 null scrolll 这是第一页内容 tabbed addTab 第二页 null scroll2 这是第二页内容 第一步 创建一个JTabbedPane对象 使用缺省的构造函数即可第二步 调用addTab函数将子面板一个个加到标签页中 通用容器组件 标签页面板 通用容器组件 工具栏工具栏是图形界面程序常用的组件 它将一组按钮排成一行 放在程序的顶端工具栏一般作为菜单栏的补充 为菜单栏中常用的命令提供一种快捷的执行方法 通用容器组件 工具栏工具栏通过JToolBar对象来实现 JToolBartoolBar newJToolBar toolBar add button1 toolBar add button2 frame getContentPane add toolBar BorderLayout PAGE START 专用容器组件 工具栏工具栏中还可以设置分隔条 分隔条将按钮分隔开 以达到分组的目的 分隔条通过addSeparator函数来添加 效果如下图所示 toolBar add button2 toolBar addSeparator toolBar add button3 专用容器组件 工具栏 专用容器组件 内部框架内部框架常用于多文档界面 它的特点是在主框架的内部还有一系列子框架 专用容器组件 内部框架创建内部框架的基本步骤如下 1 创建内部框架对象JInternalFramesubFrame1 newJInternalFrame 文档1 true true true true 内部框架对象的构造函数有5个参数 参数1 显示在

温馨提示

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

评论

0/150

提交评论