Java面向对象程序设计第10章_Swing图形用户界面.ppt_第1页
Java面向对象程序设计第10章_Swing图形用户界面.ppt_第2页
Java面向对象程序设计第10章_Swing图形用户界面.ppt_第3页
Java面向对象程序设计第10章_Swing图形用户界面.ppt_第4页
Java面向对象程序设计第10章_Swing图形用户界面.ppt_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

1、第10章 Java Swing图形用户界面,主讲:赵建邦 办公室:信息学院202 E-mail:,本章主要内容,10.1 java.swing概述 10.2 窗口 10.3 文本组件 10.4 按钮与标签 10.5 选择性组件 10.6 布局管理器 10.7 中间容器 10.8 事件处理 10.9 界面开发 难点:事件处理,10.1 Java Swing概述,JFC(Java Foundation Classes)Java基础类库是一个图形框架,由以下三部分组成: AWT(Abstract Window Toolkit) Java抽象窗口工具包 Swing Java 2D API(图形、图像、

2、颜色、文本等) 发展历史 Java1.0的出现带来了抽象窗口工具箱(AWT) 网景通讯公司Netscape开发了Internet Foundation Classes,简称:IFC,并联合Javasoft,在Java1.2推出了Swing 早期称java包为核心库,称javax包为扩展库,后来某些javax包也发展成了核心库,如javax.swing,10.1 Java Swing概述,组件(Component)和容器(Container) 在Java中,顶层窗口称为框架。在AWT库中,对应于框架的类是Frame,在Swing库中,相应的类是JFrame。JFrame类扩展了Frame类。大部

3、分AWT组件在Swing中都有等价的组件,它们在表示形式上差一个“J” 框架(JFrame)是一个容器,我们可以向容器中添加组件 图10.1:组件类继承关系 通常把AWT控件称为重量级控件,把Swing控件称为轻量级控件,10.1 Java Swing概述,容器(Container) 容 器 是 一 种 比 较 特 殊 的 组 件 , 它 可 以 包 含 其 他 的 组 件 。我 们 可 以 把 组件 放 在 组 件 容 器 中 。 反 之 , 如 果 一 个 组 件不 是 组 件 容 器 , 则 其 中 不 能 包 含 其 他 的 组 件 组件(Component) 组件是有具体图形表示并能

4、在屏幕上显示以和用户进行交互的一类对象。 JFrame、JPanel这类轻量级容器也是组件,10.1 Java Swing概述,javax.swing包中的组件包括两种: 底层容器组件 JFrame JDialog JWindow JApplet 轻量级组件 JComponent的子类:JButton、JTree、JMenubar、JTextField等,Swing组件 继承关系,10.2 窗口,底层容器的作用: 底层容器用于直接显示到系统平台上,其它组件被添加到底层容器上 JFrame(窗口)是一个底层容器 不允许将一个窗口添加到另一个容器中 JFrame构造方法 JFrame() 创建一个

5、无标题的窗口 JFrame(String title) 创建标题为title的窗口,10.2.1 JFrame常用方法,例10.1 框架外观的设置 设置具有以下特征的框架: 它的高度和宽度为整个屏幕的1/3; 自定义窗口的标题和图标; 窗口的大小不可变。 程序代码见FrameSizeSet.java。运行结果如下:,10.2.1 JFrame常用方法,JFrame类直接从Frame继承而来。对于框架外观的操作比较重要的方法如下: setIconImage窗口最小化(在Java中称为图标化)时,把一个Image对象用作图标。 setTitle设置窗口中标题栏的文字。 setResizable设置

6、用户是否可以改变框架大小。 dispose方法关闭窗口,并回收该窗口的所有资源。 setLocation设置组件的位置。 setBounds重新设置组件的大小和位置,10.2.1 JFrame常用方法,JFrame包含了四个窗格:RootPane、LayeredPane、GlassPane和ContentPane。如果需要将一些图形用户界面元素加入到框架中,我们需要在面板组件(JPanel)中进行绘制,然后将该面板组件加入到框架的内容窗格(ContentPane)中。相应的代码如下: /得到JFrame的内容窗格对象 Container contentPane = getContentPane

7、(); Component c = new Component(); / Component代表各种控件类 /将组件加入到内容窗格中 contentPane.add(c); 面板JPanel类本身是容器,它可以容纳其他图形用户界面元素,如按钮、菜单等。,11,10.2.2 菜单条、菜单、菜单项,典型的菜单:,10.2.2 创建菜单的步骤,创建菜单栏、菜单、子菜单、菜单项 将菜单项加入到子菜单或菜单中 将子菜单加入到菜单中 将菜单加入到菜单栏中,/(a)创建菜单栏,并将菜单栏加入到框架中。 JMenuBar menuBar = new JMenuBar(); setJMenuBar(menuBa

8、r); /(b)创建“File”菜单、“Edit”菜单和“View”菜单。 JMenu fileMenu = new JMenu(File); JMenu editMenu = new JMenu(Edit); JMenu viewMenu = new JMenu(View); /(b)创建子菜单。 JMenu optionMenu = new JMenu(Option);,10.2.2 创建菜单的步骤,/(c)通过指定菜单项对象新建“Paste”菜单 JMenuItem pasteItem = new JMenuItem(Paste, P); /(d)将菜单项加入到子菜单或菜单中,将子菜单加

9、入到菜单中,将菜单加入到菜单栏中。 editMenu.add(pasteItem); viewMenu.add(optionMenu); menuBar.add(fileMenu); menuBar.add(editMenu); menuBar.add(viewMenu); 例ExampleMenu.java,MenuExample.java,10.3 文本组件,Java提供的文本组件:用于单行文本输入的文本框(JTextField)和用于多行输入的文本区(JTextArea) 1、文本框组件 JTextField JTextField() 创建文本框,文本框的长度为一个机器字符长 JText

10、Field(int x) 创建文本框,文本框的长度为x个机器字符长 TextField(String s ) 创建文本框,文本框的初始字符串为s public void setText(String s) 设置文本框中的文本为参数s指定的文本 public String getText() 获取文本框中的文本 public void setEditable(boolean b) 指定文本框的可编辑性。文本框默认为可编辑的,10.3 文本组件,2、文本区组件 JTextArea JTextArea(String s) 文本区初始化字符串为s JTextArea(int x,int y) 设置文本

11、区的课件行列数,默认有水平和垂直滚动条 void setText(String s) 将文本区设置为参数指定的文本 void append(String s) 将s写入文本区末尾 void copy() 复制到剪贴板 void cut() 剪切到剪贴板 void paste() 将剪贴板的内容粘贴到文本区,10.3 文本组件,3、密码框 JPasswordField 特殊的文本域,在密码域中输入时,用户的输入并不会真正显示出来,而是显示回显符,如“*”,以防止被他人看见用户输入的密码,10.4 按钮与标签,1、按钮(JButton) 使用JButton可以生成包含文字或图形(或两者)的按钮,J

12、Button继承自AbstractButoon,常用的构造方法: (1)JButton():生成一个JButton对象。 (2)JButton(Icon icon):生成一个以图形表示的JButton对象。 (3)JButton(String text):生成一个使用指定文本的JButton对象。 (4)JButton(String text, Icon icon):生成一个包含文字和图形的JButton对象。,10.4 按钮与标签,2、标签(JLabel) JLabel创建的对象称做标签。 public JLabel () 创建没有名字的标签。 public JLabel (String s

13、) 创建名字是s的标签,s在标签中靠左对齐。 public JLabel (String s, int aligment ) 参数aligment 决定标签中的文字在标签中的水平对齐方式。 public JLabel (Icon icon) 创建具有图标icon的标签,icon在标签中靠左对齐。 String getText() 获取标签的名字。 void setText(String s) 设置标签的名字是s。 Icon getIcon() 获取标签的图标。 void setIcon(Icon icon) 设置标签的图标是icon。 例Login.java,10.5 选择性组件,1JChec

14、kBox类常用方法 public JCheckBox() 创建没有名字的选择框。 public JCheckBox(String name) 创建名字是name的选择框。 public JCheckBox(Icon icon) 创建带有默认图标icon,但没有名字的选择框。 public JCheckBox(String name, Icon icon) 创建一个带有默认图标和名字name的选择框。 public void setIcon(Icon defaultIcon) 设置选择框上的默认图标。 public void setSelectedIcon(Icon selectedIcon)

15、设置选择框选中状态下的图标。 public boolean isSelected() 如果选择框处于选中状态该方法返回true,否则返回false。 public String getText() 选择框调用该方法可以获取选择框的名称。 public void setText(String name) 选择框调用该方法可以设置选择框的名称。,复选框组件示例 选择字体风格。 程序代码见CheckBoxExample.java。运行结果如下:,10.5 选择性组件,10.5 选择性组件,2. 单选按钮 (JRadioButton) 在同一组单选按钮中只能选择一个 创建方式: 1、应用ButtonG

16、roup创建一个对象(例如bg) 2、生成JRadioButton的若干对象 3、应用bg.add(JRadioButton)将单选按钮归组,10.5 选择性组件,3JComponent的子类JComboBox()创建的对象称做下拉列表 。 下拉列表常用方法 public JComboBox() 创建一个没有选项的下拉列表。 public void addItem(Object anObject) 下拉列表调用该方法增加选项。 public int getSelectedIndex() 返回当前下拉列表中被选中的选项的索引。 public Object getSelectedItem() 返回

17、当前下拉列表中被选中的选项。. public void removeItemAt(int anIndex) 从下拉列表的选项中删除索引值是anIndex 选项。 public void removeAllItems() 可以删除全部选项。 public void addItemListener(ItemListener) 下向下拉列表注册ItemEvent事件的监视器。,10.6 布局管理器,在Java中,提供了布局工具以支持用户界面元素的自动定位。容器中的所有组件都由一个布局管理器进行动态管理,10.6 布局管理器,java.awt中的布局: FlowLayout(流布局管理器) Borde

18、rLayout(边界布局管理器) GridLayout(网格布局管理器) CardLayout(卡片布局管理器) javax.swing.border包中的布局: BoxLayout 设置布局的方法: setLayout(XXLayout xxl);,10.6.1 FlowLayout,在一行上水平排列组件,直到该行没有足够的空间为止,然后另起一行继续排列。当用户缩放容器时,布局管理器将进行自动控制,重新排列。我们可以指定流布局管理器的组件排列方式,如居中(默认)、左对齐、右对齐等。如: setLayout(new FlowLayout(FlowLayout.LEFT); /左对齐 setLayou

温馨提示

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

最新文档

评论

0/150

提交评论