B11图形用户界面设计教学课件.pptx
《B11图形用户界面设计教学课件.pptx》由会员分享,可在线阅读,更多相关《B11图形用户界面设计教学课件.pptx(104页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第11章章 图形用户界面设计图形用户界面设计11.1 java AWT和Swing基础11.2 常用容器11.2 布局管理器11.3 事件处理11.4 常用组件11.1 java AWT和和Swing基础基础11.1.1 java的AWT和Swing概述 11411.1.2 java的AWT组件和Swing组件11411.1.3 利用AWT组件和Swing组件进行程序设计的基本步骤11611.1.1 java的的AWT和和Swing概述概述AWT Abstract Window ToolKitAbstract Window ToolKit的缩写,是抽象窗口组件工的缩写,是抽象窗口组件工具包,
2、是具包,是 JavaJava语言中最早的用于编写图形界面应用程语言中最早的用于编写图形界面应用程序的工具包。该工具包提供了一套与本地图形界面进序的工具包。该工具包提供了一套与本地图形界面进行交互的接口。行交互的接口。AWTAWT组件集遵循最大公约数原则,即组件集遵循最大公约数原则,即AWTAWT只拥有所有平只拥有所有平台上都存在的组件的公有集合台上都存在的组件的公有集合重量级组件重量级组件11.1.1 java的的AWT和和Swing概述概述Swing 为了解决为了解决 AWT AWT 存在的问题而新开发的包。存在的问题而新开发的包。Swing Swing 是在是在AWTAWT的基础上构建的一
3、套新的图形界面系统,它提供了的基础上构建的一套新的图形界面系统,它提供了AWT AWT 所能够提供的所有功能,并且用纯粹的所能够提供的所有功能,并且用纯粹的JavaJava代码代码对对AWT AWT 的功能进行了大幅度的扩充。的功能进行了大幅度的扩充。轻量级组件轻量级组件11.1.2 java的的AWT组件和组件和Swing组件组件1基本概念组件(组件(ComponentComponent)是构成是构成GUIGUI的基本元素,如按钮、的基本元素,如按钮、标签、画布、复选框等。标签、画布、复选框等。容器(容器(ContainerContainer)组件)组件,简称容器,是一个可以包含,简称容器,
4、是一个可以包含组件和其他容器的组件组件和其他容器的组件. .如,如,JPanelJPanel, ,JTabbedPaneJTabbedPane、JScrollPaneJScrollPane等。等。非容器组件(原子组件)非容器组件(原子组件)则是不可以包含组件和其他则是不可以包含组件和其他容器的组件,如容器的组件,如J JButtonButton、JLabelJLabel、JTextFieldJTextField等。等。11.1.2 java的的AWT组件和组件和Swing组件组件1基本概念向容器组件中添加组件向容器组件中添加组件 panel.add(button) panel.add(butt
5、on); 顶层容器是一个能够提供图形绘制的容器,是进行图形编程的基顶层容器是一个能够提供图形绘制的容器,是进行图形编程的基础,一切图形化的东西,都必然包括在顶层容器中。础,一切图形化的东西,都必然包括在顶层容器中。JFrameJFrame:用来设计类似于:用来设计类似于WindowsWindows系统中的窗口形式的应用程序。系统中的窗口形式的应用程序。 JDialogJDialog:和:和JFrameJFrame类似,只不过类似,只不过JDialogJDialog是用来设计对话框。是用来设计对话框。 JAppletJApplet:用来设计可以在嵌入在网页中的:用来设计可以在嵌入在网页中的Jav
6、aJava小程序。小程序。每一个窗口应用程序中有且只能有一个顶层容器组件。每一个窗口应用程序中有且只能有一个顶层容器组件。11.1.2 java的的AWT组件和组件和Swing组件组件1基本概念中间容器属于容器型组件,可包含组件和其他容器的中间容器属于容器型组件,可包含组件和其他容器的组件,但自身又必须包含在其他容器(如顶层容器)组件,但自身又必须包含在其他容器(如顶层容器)中,如中,如JPanel,JScrollPaneJPanel,JScrollPane等。等。特殊容器:特殊容器:在在GUIGUI上起特殊作用的中间层,如上起特殊作用的中间层,如,JRootPane,JRootPane。不可
7、编辑信息的显示组件:例如不可编辑信息的显示组件:例如JLabel, JLabel, JProgressBarJProgressBar等等可编辑信息的显示组件:如可编辑信息的显示组件:如, Jtable, JtextArea, Jtable, JtextArea等等11.1.2 java的的AWT组件和组件和Swing组件组件2组件的继承关系AWTAWT组件包含在组件包含在java.awtjava.awt包里,如包里,如ButtonButton、CheckboxCheckbox、ScrollbarScrollbar等,都是等,都是ComponentComponent类的子类。类的子类。Swing
8、Swing中大多数组件其名称都是在原来中大多数组件其名称都是在原来AWTAWT组件名称前组件名称前加上加上J J,例如,例如JButtonJButton、JCheckBoxJCheckBox、JScrollbarJScrollbar等,都等,都是是JComponentJComponent类的子类。类的子类。java.awt.Component-java.awt.Container-java.awt.Window-java.awt.Frame-javax.swing.JFrame-javax.Dialog-javax.swing.JDialog-javax.swing.JWindow-java.
9、awt.Applet-javax.swing.JApplet-javax.swing.Box-javax.swing.Jcomponet11.1.3 利用利用AWT组件和组件和Swing组件进行程组件进行程序设计的基本步骤序设计的基本步骤1 引入包2 选择“外观和感觉”3 设置顶层容器4 设置布局管理5 向容器中添加组件6 对组件进行事件处理11.1.3 利用利用AWT组件和组件和Swing组件进行程组件进行程序设计的基本步骤序设计的基本步骤1 引入包import javax.swing.import javax.swing.* *; ;import java.awt.import java.
10、awt.* *; ;import java.awt.event.import java.awt.event.* *; ;import javax.swing.tree.import javax.swing.tree.* *; ;import javax.swing.event.import javax.swing.event.* *; ;import javax.swing.border.import javax.swing.border.* *; ;import javax.swing.table.import javax.swing.table.* *; ;11.1.3 利用利用AWT组件
11、和组件和Swing组件进行程组件进行程序设计的基本步骤序设计的基本步骤2 选择“外观和感觉”在产生任何可视组件以前需设置好它们的外观和感觉。设置某种在产生任何可视组件以前需设置好它们的外观和感觉。设置某种外观和感觉,需要使用外观和感觉,需要使用UIManagerUIManager类所提供的类所提供的setLookAndFeel()setLookAndFeel()静态方法。通常我们只会做两种选择:静态方法。通常我们只会做两种选择: javajava提供的跨平台的外观和感觉。可以利用提供的跨平台的外观和感觉。可以利用UIManagerUIManager类提供的类提供的getCrossPlatfor
12、mLookAndFeelClassName()getCrossPlatformLookAndFeelClassName()静态方法获得类名。静态方法获得类名。 程序所处系统的外观和感觉。可以利用程序所处系统的外观和感觉。可以利用UIManagerUIManager类提供的类提供的getSystemLookAndFeel()getSystemLookAndFeel()静态方法获得目前操作平台的静态方法获得目前操作平台的Look and Look and FeelFeel类名称字符串。类名称字符串。11.1.3 利用利用AWT组件和组件和Swing组件进行程组件进行程序设计的基本步骤序设计的基本步
13、骤3 设置顶层容器ApplicationApplication程序一般选择程序一般选择JFrame(JFrame(或或Frame)Frame)作为顶层容器(主窗作为顶层容器(主窗口),口),AppletApplet程序一般选择程序一般选择JApplet(JApplet(或或Applet)Applet)作为顶层容器作为顶层容器(主窗口)。(主窗口)。4 设置布局管理布局管理就是创建这种类型的一个对象,并采用此对象来安排其布局管理就是创建这种类型的一个对象,并采用此对象来安排其它容器和基本组件。常用的四种布局管理器:它容器和基本组件。常用的四种布局管理器:FlowLayoutFlowLayout、
14、BorderLayoutBorderLayout、CardLayoutCardLayout、GridLayoutGridLayout。5 向容器中添加组件利用方法利用方法add()add()向有关容器添加组件,容器可以嵌套。向有关容器添加组件,容器可以嵌套。6 对组件进行事件处理设置监视器监视事件方法,并进行相应处理。设置监视器监视事件方法,并进行相应处理。11.2 常用容器常用容器11.2.1 框架11.2.2 面板11.2.3 滚动窗口11.2.4 菜单设计11.2.5 对话框11.2.1 框架框架框架是一种顶层容器,是用来设计类似于Windows系统中的窗口形式的应用程序。AWTAWT中
15、的中的FrameFrame类和类和SwingSwing的的JFrameJFrame类是用于建立框架的。类是用于建立框架的。JFrameJFrame类是类是FrameFrame的子类。的子类。与与AWTAWT组件不同,组件不同,SwingSwing组件不能直接添加到顶层容器中,它必须组件不能直接添加到顶层容器中,它必须添加到一个与添加到一个与SwingSwing顶层容器相关联的内容面板(顶层容器相关联的内容面板(content panecontent pane)上。内容面板是顶层容器包含的一个普通容器,它是一个轻量级上。内容面板是顶层容器包含的一个普通容器,它是一个轻量级组件。基本规则如下:组件
16、。基本规则如下: (1 1)把)把SwingSwing组件放入一个顶层组件放入一个顶层SwingSwing容器的内容面板上。容器的内容面板上。 (2 2)避免使用非)避免使用非SwingSwing的重量级组件。的重量级组件。11.2.1 框架框架对JFrame添加组件有两种方式:1) 1) 用用getContentPane( )getContentPane( )方法获得方法获得JFrameJFrame的内容面板,再对其加的内容面板,再对其加入组件:入组件:frame.getContentPane().add(childComponent)frame.getContentPane().add(c
17、hildComponent)2) 2) 建立一个建立一个JpanelJpanel或或 JDesktopPaneJDesktopPane之类的中间容器,把组件添之类的中间容器,把组件添加到容器中,用加到容器中,用setContentPane()setContentPane()方法把该容器置为方法把该容器置为JFrameJFrame的内的内容面板:容面板: Jpanel contentPane=new Jpanel( );Jpanel contentPane=new Jpanel( ); /把其它组件添加到把其它组件添加到JpanelJpanel中中; ; frame.setContentPane
18、(contentPane); frame.setContentPane(contentPane); /把把contentPanecontentPane对象设置成为对象设置成为frameframe的内容面板的内容面板11.2.1 框架框架使用JFrame容器进行图形界面程序开发基本步骤:(1 1)创建的)创建的JFrameJFrame窗口是不可见的,要使得可见,需窗口是不可见的,要使得可见,需要使用要使用show()show()方法或方法或setVisible(Boolean b)setVisible(Boolean b)方法,其方法,其中中setVisiblesetVisible中的参数中的参
19、数b=trueb=true。(2 2)使用)使用setSizesetSize方法设置窗口大小。方法设置窗口大小。(3 3)向)向JFrameJFrame中添加组件时,必须先取得中添加组件时,必须先取得ContentPaneContentPane,然后再使用,然后再使用add()add()方法把组件加入到方法把组件加入到ContentPaneContentPane中,这与中,这与AWTAWT包中的包中的FrameFrame直接使用直接使用add()add()方法添加组件不同。方法添加组件不同。【实例11-3】1.1. import java.awt.import java.awt.* *;2.2
20、. import javax.swing.import javax.swing.* *;3.3. public class JFrameExamplepublic class JFrameExample4.4.public static void main(String args )public static void main(String args )5.5.JFrameExample obj=new JFrameExample ( )JFrameExample obj=new JFrameExample ( );6.6.obj.myJFrame( )obj.myJFrame( );7.7
21、. 8.8.public void myJFrame( )public void myJFrame( )9.9.JFrame jframe=new JFrame(JFrame jframe=new JFrame(一个框架应用一个框架应用);10.10.Container panel=jframe.getContentPane( )Container panel=jframe.getContentPane( );11.11.panel.setLayout(new FlowLayout( )panel.setLayout(new FlowLayout( );12.12.panel.add(new
22、JButton( panel.add(new JButton( 欢迎使用欢迎使用JFrameJFrame!);13.13.jframe.setSize(300,150)jframe.setSize(300,150);14.14.jframe.show( )jframe.show( );15.15. 16.16. 11.2.2 面板面板Java中的JPanel组件属于容器型组件可以在JPanel中放置按钮、文本框等非容器组件,甚至还可以在JPanel中再放置若干个JPanel组件Swing采用JPanel定义面板,面板必须包含在另一个容器(如JFrame)中。【实例11-4】1.1. impor
23、t java.awt.import java.awt.* *; ;2.2. import javax.swing.import javax.swing.* *; ;3.3. public class JpanelExamplepublic class JpanelExample4.4. private void fillJPanel(Container c) private void fillJPanel(Container c) 5.5.Button button1,button2,button3; Button button1,button2,button3; 6.6.button1=ne
24、w Button(button1=new Button(确定确定););7.7.button2=new Button(button2=new Button(取消取消););8.8.button3=new Button(button3=new Button(保存保存); ); 9.9.c.add(button1);c.add(button2);c.add(button3);c.add(button1);c.add(button2);c.add(button3);10.10. 11.11. public static void main(String args)public static void
25、 main(String args)12.12.JpanelExample obj=new JpanelExample();JpanelExample obj=new JpanelExample();13.13.obj.myJPanel();obj.myJPanel();14.14. 【实例11-4】15.15. public void myJPanel()public void myJPanel()16.16.JFrame jframe=new JFrame(JFrame jframe=new JFrame(一个面板应用一个面板应用););17.17.Container contentPan
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- B11 图形 用户界面 设计 教学 课件
限制150内