Java程序设计教学做一体化教程Java-Swing图形用户界面课件.pptx
《Java程序设计教学做一体化教程Java-Swing图形用户界面课件.pptx》由会员分享,可在线阅读,更多相关《Java程序设计教学做一体化教程Java-Swing图形用户界面课件.pptx(75页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、12-1月-23第 1 页注意:开始用功了注意:开始用功了!12-1月-23第 2 页配合例子源代码一起使用例子源代码一起使用Power point 制作:耿祥义 张跃平Java SwingJava Swing图形用户界面图形用户界面 Java程序设计教学做一体化教程程序设计教学做一体化教程 第第9章章12-1月-23第 3 页主要内容主要内容12-1月-23第 4 页9.1 Java Swing概述概述 9.1.1核心知识核心知识 _1 JavaJavaJavaJava提提提提供供供供了了了了强强强强大大大大的的的的用用用用于于于于开开开开发发发发桌桌桌桌面面面面程程程程序序序序的的的的AP
2、IAPIAPIAPI,这这这这些些些些APIAPIAPIAPI在在在在javax.swingjavax.swingjavax.swingjavax.swing包包包包中中中中。Java Java Java Java SwingSwingSwingSwing不不不不仅仅仅仅为为为为桌桌桌桌面面面面程程程程序序序序设设设设计计计计提提提提供供供供了了了了强强强强大大大大的的的的支支支支持持持持,而而而而且且且且Java Java Java Java SwingSwingSwingSwing中中中中的的的的许许许许多多多多设设设设计计计计思思思思想想想想对对对对于于于于掌掌掌掌握握握握面面面面向向向
3、向对对对对象象象象编编编编程是非常有意义的。程是非常有意义的。程是非常有意义的。程是非常有意义的。1GUI 图图形形用用户户界界面面(Graphics User Interface,GUI)程程序序可可以以让让用户和程序之间方便地进行交互。用户和程序之间方便地进行交互。JDK1.2增增加加了了javax.swing包包,该该包包提提供供了了功功能能更更为为强强大大的的用用来设计来设计GUI程序的类,例如,程序的类,例如,JButton、JTextField、JComBox等。等。12-1月-23第 5 页 9.1.1 核心知识核心知识 _22容器和组件容器和组件 学学 习习 GUI编编 程程
4、时时,必必 须须 很很 好好 地地 理理 解解 掌掌 握握 容容 器器 类类(Container)和组件类(和组件类(Component)两个概念两个概念。Java把把Component类类的的子子类类或或间间接接子子类类创创建建的的对对象象称称为为一一个个组件。组件。Java把把Container的子类或间接子类创建的对象称为一个容器。的子类或间接子类创建的对象称为一个容器。可可以以向向容容器器添添加加组组件件。Container类类提提供供了了一一个个public方方法法:add(Component c),一一个个容容器器可可以以调调用用这这个个方方法法将将组组件件c添添加加到到该容器中。
5、该容器中。容容器器调调用用removeAll()方方法法可可以以移移掉掉容容器器中中的的全全部部组组件件;调调用用remove(Component c)方法可以移掉容器中参数方法可以移掉容器中参数c指定的组件。指定的组件。容容器器本本身身也也是是一一个个组组件件,因因此此可可以以把把一一个个容容器器添添加加到到另另一一个个容器中实现容器的嵌套。容器中实现容器的嵌套。每每当当容容器器添添加加新新的的组组件件或或移移掉掉组组件件时时,应应当当让让容容器器调调用用validate()方法,以保证容器中的组件能正确显示出来。方法,以保证容器中的组件能正确显示出来。java.awt和和javax.swi
6、ng包包中中一一部部分分类类的的层层次次关关系系的的UML类类图图如图如图9.1。12-1月-23第 6 页图9.1 Component类的部分子类 12-1月-23第 7 页 9.1.2 能力目标能力目标 掌握组件和容器的关系,能将组件添加到容器中掌握组件和容器的关系,能将组件添加到容器中 。12-1月-23第 8 页 9.1.3 任务驱动 将下列将下列Application9_1.java中的【代码】替换为程序代码。中的【代码】替换为程序代码。程序运行效果如图程序运行效果如图9.29.2。12-1月-23第 9 页 任务小结任务小结 本本章章在在讲讲解解GUI编编程程时时,避避免免罗罗列列
7、大大量量方方法法,所所以以在在学学习习本本章章时时,读读者者要要善善于于查查阅阅Java提提供供的的类类库库帮帮助助文文档档,例例如如下下载载Java类库帮助文档:类库帮助文档:jdk-7-doc.zip。12-1月-23第 10 页9.2 9.2 窗口窗口 9.2.1 核心知识核心知识_1 1底层容器底层容器JFrame JFrame创创建建的的容容器器称称为为窗窗口口(窗窗体体),是是GUI的的应应用用程程序序提提供供的的一一个个能能和和操操作作系系统统直直接接交交互互的的容容器器,该该容容器器可可以以被被直直接接显显示示、绘绘制制在在操操作作系系统统所所控控制制的的平平台台上上(该该平平
8、台台被被习习惯惯称称为为桌桌面面),比比如显示器上。如显示器上。JDialog类类的的实实例例也也是是一一个个底底层层容容器器,通通常常所所称称的的对对话话框框,见见图图9.1的右半部分。的右半部分。其其他他组组件件必必须须被被添添加加到到底底层层容容器器中中,以以便便借借助助底底层层容容器器和和操操作系统进行信息交互。作系统进行信息交互。12-1月-23第 11 页 9.2.1 核心知识核心知识 _22JFrame常用方法常用方法 JFrame()创建一个无标题的窗口。JFrame(String s)创建标题为s的窗口。public void setSize(int width,int he
9、ight)设置窗口的大小。public void setLocation(int x,int y)设置窗口的位置,默认位置是(0,0)。public void setResizable(boolean b)设置窗口是否可调整大小,默认可调整大小。public void setExtendedState(int state)设置窗口的扩展状态,其中参数state取JFrame类中的类常量,见page 188.public void setDefaultCloseOperation(int operation)该方法用来设置单击窗体右上角的关闭图标后,程序会做出怎样的处理。其中的参数operati
10、on取JFrame类中的int型static常量(见page 188),程序根据参数operation取值,做出不同的处理:12-1月-23第 12 页 9.2.2 能力目标能力目标 能用JFrame类或子类创建窗口。12-1月-23第 13 页 9.2.3 任务驱动将将下下列列JFrameButton.java和和Application9_2.java中中的的【代代码码】替换为程序代码。】替换为程序代码。程序运行效果如图程序运行效果如图9.39.3。12-1月-23第 14 页 任务任务 小结小结 在编写JFrame子类时,子类不仅继承了JFrame的方法和成员变量,而且子类根据需要可以增加
11、新的成员变量。需要注意的是,窗口默认地被系统添加到显示器屏幕上,因此不允许将一个窗口添加到另一个容器中。窗口在设置背景颜色的方式和其他组件不同,窗口直接调用setBackground(Color c)无法成功设置窗口的背景颜色,需要让窗口自带的内容面板设置背景颜色。窗口调用getContentPane()返回自带的内容面板的引用。下列代码将窗口window的背景颜色设置成黄色:Container con=window.getContentPane();/窗口返回自带的内容面板 con.setBackground(Color.yellow);/内容面板,即窗口设置背景色为黄色 JFrame有自己
12、独有的方法也有很多从父类继承的方法,建议查询类库帮助文档(jdk-7-doc.zip)了解这些方法。12-1月-23第 15 页9.3 9.3 菜单条、菜单与菜单项菜单条、菜单与菜单项 9.3.1 核心知识核心知识 菜菜单单条条、菜菜单单、菜菜单单项项是是窗窗口口常常用用的的组组件件,菜菜单单放放在在菜菜单单条条里里,菜菜单项放在菜单里。单项放在菜单里。1菜单条菜单条 JComponent类类的的子子类类JMenubar负负责责创创建建菜菜单单条条,即即JMenubar的的一一个个实实例例就就是是一一个个菜菜单单条条。JFrame类类有有一一个个将将菜菜单单条条放放置置到到窗窗口口中中的的方方
13、法法:setJMenuBar(JMenuBar bar);该方法将菜单条添加到窗口的顶端,该方法将菜单条添加到窗口的顶端,2菜单菜单 JComponent类类的的子子类类JMenu负负责责创创建建菜菜单单,即即JMenu的的一一个个实实例例就就是一个菜单。是一个菜单。3菜单项菜单项 JComponent类类的的子子类类JMenuItem负负责责创创建建菜菜单单项项,即即JMenuItem的的一个实例就是一个菜单项。一个实例就是一个菜单项。12-1月-23第 16 页 9.3.2 能力目标能力目标 能创建带菜单的窗口。12-1月-23第 17 页 9.3.3 任务驱动 将下列JFrameMenu
14、.java中的【代码】替换为程序代码。Application9_3.java 程序运行效果如图程序运行效果如图9.49.4。12-1月-23第 18 页 任务任务 小结小结(1)JMenu是JMenuItem的子类,因此菜单本身也是一个菜单项,当把一个菜单看作菜单项添加到某个菜单中时,称这样的菜单为子菜单。(2)为了使菜单项有一个图标,可以用图标类Icon声明一个图标,然后使用其子类ImageIcon类创建一个图标,如:Icon icon=new ImageIcon(a.gif);然后菜单项调用setIcon(Icon icon)方法将图标设置为icon。(3)可以为菜单设置“Alt_键”的键
15、盘操作方式,例如菜单MenuFile设置“Alt_F”的键盘操作方式代码是:menuFile.setMnemonic(F);(4)可以为菜单项设置两种键盘操作方式:使用或不使用Ctrl键。详细设置见详细设置见page 192page 19212-1月-23第 19 页9.4 9.4 常用组件常用组件 9.4.1 核心知识核心知识1 1文文本本框框 JComponent的子类JTextField创建文本框,允许用户在文本框中输入单行文本。2 2文文本本区区 JComponent的子类JTexArea创建文本区,允许用户在文本区中输入多行文本。3 3按钮按钮 JComponent的子类JButto
16、n类用来创建按钮,允许用户单击按钮。4 4标标签签 JComponent的子类JLabel类用来创建标签,标签为用户提供信息提示。5 5选选择择框框 JComponent的子类JCheckBox类用来创建选择框,为用户提供多项选择。选择框的右面有个名字,并提供两种状态,一种是选中,另一种是未选中,用户通过单击该组件切换状态。6 6单单选选按按钮钮 JComponent的子类JRadioButton类用来创建单项选择框,为用户提供单项选择。7 7下下拉拉列列表表 JComponent的子类JComboBox类用来创建下拉列表,为用户提供单项选择。8 8密码框密码框 JComponent的子类JP
17、asswordField创建密码框。12-1月-23第 20 页 9.4.2 能力目标能力目标 在窗口中添加常用组件,掌握这些常用组件的常用构造方法。12-1月-23第 21 页 9.4.3 任务驱动仔细阅读ComponentInWindow.javaComponentInWindow.java,并注意程序的运行效果 Application9_4.javaApplication9_4.java 如图如图9.59.5所示。所示。12-1月-23第 22 页 任务任务 小结小结1)JTextField类的主要方法类的主要方法 更多方法见更多方法见page 195-196page 195-196 J
18、TextField(int x)如果使用这个构造方法创建文本框对象,可以在文本框中输入若干个字符,文本框的可见字符个数由参数 x指定。JTextField(String s)如果使用这个构造方法创建文本框对象,则文本框的初始字符串为s,可以在文本框中输入若干个字符。2)JButton类的主要方法类的主要方法 public JButton(String text)创建名字是text的按钮。public JButton(Icon icon)创建带有图标icon的按钮。3)JCheckBox类的主要方法类的主要方法 public JCheckBox()创建一个没有名字的复选框,初始状态是未选中。pu
19、blic JCheckBox(String text)创建一个名字是text的复选框,初始状态是未选中。4)JComBox类的主要方法类的主要方法 public JComboBox()使用该构造方法创建一个没有选项下拉列表。public void addItem(Object item)下拉列表调用该方法增加选项。5)JTextArea类的主要方法类的主要方法 public void copy()将文本区中选中的内容复制到系统的剪贴板。public void cut()将文本区中选中的内容剪切到系统的剪贴板。12-1月-23第 23 页9.5 9.5 容器与布局容器与布局 9.5.1 核心知识
20、核心知识_11.常用容器常用容器 JComponent专门提供了一些经常用来添加组件的容器。相对于JFrame底层容器,本节提到的容器被习惯地称为中间容器,中间容器必须被添加到底层容器中才能发挥作用。JPanel面板 经常使用JPanel创建一个面板,再向这个面板添加组件,然后把这个面板添加到其它容器中。JPanel面板的默认布局是FlowLayout布局。滚动窗格JScrollPane 滚动窗格只可以添加一个组件,可以把一个组件放到一个滚动窗格中,然后通过滚动条来观看该组件。拆分窗格JSplitPane 拆分窗格就是被分成两部分的容器。拆分窗格有两种类型:水平拆分和垂直拆分。JSplitPa
21、ne的两个常用的构造方法:JSplitPane(int a,Component b,Component c)JSplitPane(int a,boolean b,Component c,Component d)12-1月-23第 24 页 9.5.1 核心知识核心知识 _22.常用布局常用布局 容容器器添添加加组组件件时时,希希望望控控制制组组件件的的位位置置。容容器器使使用用布布局局策策略略安安排排组组件件的的位位置置。容容器器可可以以使使用用方方法法 setLayout(布布局局对对象象);设设置置自己的布局。自己的布局。负负责责创创建建布布局局对对象象的的类类主主要要是是java.awt
22、包包中中的的FlowLayout、BorderLayout、GridLayout等布局类。等布局类。FlowLayout布局布局 FlowLayout类的一个常用构造方法如下:类的一个常用构造方法如下:FlowLayout();该构造方法可以创建一个居中对齐的布局对象。例如:FlowLayout flow=new FlowLayout();如果一个容器con使用flow布局 con.setLayout(flow);con可以使用Container类提供的add方法将组件顺序地添加到容器中 BorderLayout布局布局 BorderLayout 布布局局是是Window型型容容器器的的默默认
23、认布布局局,例例如如JFrame、JDialog的默认布局都是的默认布局都是BorderLayout布局。布局。GridLayout布局布局 GridLayout布局可以将容器划分成由布局可以将容器划分成由m行、行、n列交叉形成的列交叉形成的mn个网格。个网格。12-1月-23第 25 页 9 9.5.2 能力目标能力目标 能使用JPanel容器和常见的布局策略。12-1月-23第 26 页 9 9.5.3 任务驱动将下列WinGid.java中的【代码】替换为程序代码。Application 9_5.java 程序运行效果如图9.6。12-1月-23第 27 页 任务任务 小结小结 Grid
24、Layout布局中每个网格都是相同大小并且强制组件与网格的大小相同,使得容器中的每个组件也都是相同的大小,显得很不自然。为了克服这个缺点,可以使用容器嵌套。一个容器使用GridLayout布局将容器分为3行1列的网格,那么可以把另一个容器添加到某个网格中,而添加的这个容器又可以设置为GridLayout布局、FlowLayout布局或BorderLayout布局等。利用这种嵌套方法,可以设计出符合一定需要的布局。12-1月-23第 28 页9.6 9.6 ActionEvent事件事件 9.6.1 核心知识核心知识_ActionEvent事件源事件源 1ActionEvent事件源事件源 文文
25、本本框框、按按纽纽、菜菜单单项项、密密码码框框和和单单选选按按钮钮都都可可以以触触发发ActionEvent事件,即都可以成为事件,即都可以成为ActionEvent事件的事件源。事件的事件源。对对于于注注册册了了监监视视器器的的文文本本框框,在在文文本本框框获获得得输输入入焦焦点点后后,如如果果用用户户按按回回车车键键,就就会会触触发发ActionEvent事事件件(Java运运行行环环境境会会自自动动用用ActionEvent类类创创建建一一个个对对象象,表表示示发发生生了了ActionEvent事事件)。件)。对对于于注注册册了了监监视视器器的的按按纽纽,如如果果用用户户按按单单击击按按
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计 教学 一体化 教程 Swing 图形 用户界面 课件
限制150内