Java语言程序设计Applet用户界面设计课件

上传人:夏** 文档编号:572416165 上传时间:2024-08-13 格式:PPT 页数:105 大小:1.10MB
返回 下载 相关 举报
Java语言程序设计Applet用户界面设计课件_第1页
第1页 / 共105页
Java语言程序设计Applet用户界面设计课件_第2页
第2页 / 共105页
Java语言程序设计Applet用户界面设计课件_第3页
第3页 / 共105页
Java语言程序设计Applet用户界面设计课件_第4页
第4页 / 共105页
Java语言程序设计Applet用户界面设计课件_第5页
第5页 / 共105页
点击查看更多>>
资源描述

《Java语言程序设计Applet用户界面设计课件》由会员分享,可在线阅读,更多相关《Java语言程序设计Applet用户界面设计课件(105页珍藏版)》请在金锄头文库上搜索。

1、Java语言程序设计马 皓1Java语言程序设计(Applet用户界面设计)第四章 Applet及其应用1.Applet概述2.Applet类3.Applet程序与HTML文件4.Applet的应用2Java语言程序设计(Applet用户界面设计)Applet概述nJava程序的两种基本形式nJava Application(应用程序),可独立运行nJava Applet(小程序),嵌入在浏览器中运行n介绍nApplet的结构特点、实现方法、工作原理n掌握nApplet的编辑、编译和运行方法3Java语言程序设计(Applet用户界面设计)一个Applet小程序的例子import java.a

2、pplet.Applet;import java.awt.Graphics;public class Exam4_1 extends Applet String str;public void init() str = “Here is an Applet”;public void paint(Graphics g) g.drawString(str, 100, 100);4Java语言程序设计(Applet用户界面设计)HTML文件n超文本标记语言(HTML)nWWW浏览器nApplet小程序n嵌入在/写入在HTML文件中n从WWW服务器下载到本地WWW浏览器n由WWW浏览器中的Java解释

3、器来运行5Java语言程序设计(Applet用户界面设计)HTML文件n实现过程nApplet小程序编写,编译,得到字节码文件njavac Exam4_1.javan嵌入到HTML文件中,保存为Exam4_1.htmlnnnnnn6Java语言程序设计(Applet用户界面设计)HTML文件n浏览器打开Exam4_1.html文件7Java语言程序设计(Applet用户界面设计)Applet的特点n通常作为Applet类的子类,格式如下:public class 类名 extends Applet n嵌入在HTML文件中,利用WWW浏览器或Appletviewer来运行n利用了WWW浏览器或A

4、ppletviewer所提供的图形用户界面功能8Java语言程序设计(Applet用户界面设计)Applet的工作原理Applet源程序字节码文件嵌入到HTML文件WWW浏览器打开 该HTML文件9Java语言程序设计(Applet用户界面设计)第四章 Applet及其应用1.Applet概述2.Applet类3.Applet程序与HTML文件4.Applet的应用10Java语言程序设计(Applet用户界面设计)Applet类的继承关系java.lang.Objectjava.awt.Componentjava.awt.Containerjava.awt.Paneljava.applet.

5、Applet默认情况下,Applet类使用FlowLayout布局管理器11Java语言程序设计(Applet用户界面设计)Applet类的主要方法1.init()方法n完成初始化操作n在Applet程序第一次加载时调用,仅执行一次2.start()方法n启动Applet主线程运行n重启时也被调用(reload或返回)3.paint()方法n将结果输出/绘制到界面上n被自动调用(启动后/窗口改变/repaint()调用)12Java语言程序设计(Applet用户界面设计)Applet类的主要方法4.stop()方法n暂停Applet程序执行5.destroy()方法n终止Applet程序执行,

6、释放所占用的资源13Java语言程序设计(Applet用户界面设计)Applet类的主要方法import java.applet.Applet;import java.awt.*;public class Exam extends Applet public void init( ) /初始化Applet程序public void start( ) /启动Applet线程public void paint(Graphics g) /绘制输出显示信息public void stop( ) /暂停线程public void destroy( ) /释放系统资源,结束线程14Java语言程序设计(A

7、pplet用户界面设计)第四章 Applet及其应用1.Applet概述2.Applet类3.Applet程序与HTML文件4.Applet的应用15Java语言程序设计(Applet用户界面设计)HTML文件n超文本标记语言(HTML)n和nHtml文件开始和结束的标记n和nWWW浏览器窗口标题内容的标记n和nHtml文件在浏览器窗口中显示内容的标记n和n嵌入到Html文件中Applet程序的标记16Java语言程序设计(Applet用户界面设计)Applet程序的标记nnn参数n17Java语言程序设计(Applet用户界面设计)Applet小程序import java.applet.Ap

8、plet;import java.awt.*;public class Exam4_3 extends Applet String str;int x, y, h;Font fnt;public void init() str = getParameter(“string”);h = Integer.parseInt(getParameter(“size”);x = Integer.parseInt(getParameter(“x1”);y = Integer.parseInt(getParameter(“y1”);fnt = new Font(“TimesRoman”, Font.BOLD,

9、 h);public void paint(Graphics g) g.setColor(Color.red);g.setFont(fnt);g.drawString(str, x, y);18Java语言程序设计(Applet用户界面设计)Applet小程序19Java语言程序设计(Applet用户界面设计)第四章 Applet及其应用1.Applet概述2.Applet类3.Applet程序与HTML文件4.Applet的应用20Java语言程序设计(Applet用户界面设计)绘制图形1.设置字体njava.awt.Font类n设置文本的字体(包括字型和字号)n构造方法npublic Fo

10、nt(String name, int style int size)2.设置颜色njava.awt.Color类n控制颜色,Color类已包含13个颜色常量n构造方法npublic Color(int r, int g, int b)npublic Color(float r1, float g1, float b1)21Java语言程序设计(Applet用户界面设计)绘制图形3.绘制文本n绘制字符串npublic void drawString(String s, int x, int y)n绘制字符npublic void drawString(char c, int offset, i

11、nt number int x, int y)n绘制字节npublic void drawString(byte b, int offset, int number int x, int y)22Java语言程序设计(Applet用户界面设计)Applet小程序import java.applet.Applet;import java.awt.*;public class Exam4_4 extends Applet public void paint(Graphics g) Font font1, font2, font3;font1 = new Font(“Serif”, Font.BOL

12、D, 20);font2 = new Font(“Monospaced”, Font.BOLD+Font.ITALIC, 24);font3 = new Font(“SansSerif”, Font.PLAIN, 16);g.setFont(font1);g.drawString(“Serif 20 point BOLD”, 30, 20);g.setFont(font2);g.drawString(“Monospaced 24 point BOLD + ITALIC”, 30, 80);g.setFont(font3);g.drawString(“SansSerif 16 point PLA

13、IN”, 30, 50);int size = font2.getSize();int style = font1.getStyle();String name = font2.getName();String str = name + “ “ + style + “ “ + size;g.drawString(str, 30, 110);23Java语言程序设计(Applet用户界面设计)Applet小程序24Java语言程序设计(Applet用户界面设计)Applet小程序import java.applet.Applet;import java.awt.*;public class Ex

14、am4_6 extends Applet Font font1 = new Font(“TimesRoman”, Font.ITALIC, 25);Font font2 = new Font(“Braggadcoio”, Font.BOLD, 40);public void paint(Graphics g) String str = “I love Beijing!”;Color mycolor = new Color(192, 64, 200);g.setFont(font1);g.setColor(mycolor);g.drawString(str, 30, 40);Color dark

15、er = mycolor.darker();g.setColor(darker);g.drawString(str, 50, 80);Color brighter = mycolor.brighter();g.setColor(brighter);g.drawString(str, 70, 120);g.setFont(font2);g.setColor(Color.red);g.drawString(str, 30, 170);g.setColor(Color.white);g.drawString(str, 32, 169);25Java语言程序设计(Applet用户界面设计)Applet

16、小程序26Java语言程序设计(Applet用户界面设计)绘制图形4.绘制几何图形n画直线nvoid drawLine(int x1, int y1, int x2, int y2)n画矩形nvoid drawRect(int x, int y, int width, int height)nvoid fillRect(int x, int y, int width, int height)nvoid clearRect(int x, int y, int width, int height)nvoid drawRoundRect(int x, int y, int width, int he

17、ight, int arcWidth, int arcHeight)nvoid draw3DRect(int x, int y, int width, int height, boolean b)nvoid fill3DRect(int x, int y, int width, int height, boolean b)27Java语言程序设计(Applet用户界面设计)绘制图形4.绘制几何图形n画圆弧和椭圆nvoid drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)nvoid fillArc

18、(int x, int y, int width, int height, int startAngle, int arcAngle)nvoid drawOval(int x, int y, int width, int height)nvoid fillOval(int x, int y, int width, int height)28Java语言程序设计(Applet用户界面设计)Applet小程序import java.applet.Applet;import java.awt.*;public class Exam4_8 extends Applet public void pain

19、t(Graphics g) int x0 =10, y0=20, X=150, Y=80, L, c;int arc = 0, N=10;double xy=1.0*(X-Y)/N/2;g.setColor(Color.red);g.fillRect(x0, y0, X, X);for(int i=0; i =N; i+) L=(int)(X-2*i*xy); arc=Y*i/N; c=i*240/N; g.setColor(new Color(c, c, c); g.drawRoundRect(int)(x0+i*xy), (int)(y0+i*xy), L, L, arc, arc);g.

20、setColor(Color.blue);g.draw3DRect(200, y0, X, X, true);g.setColor(Color.green);g.fill3DRect(400, y0, Y, Y, false);29Java语言程序设计(Applet用户界面设计)Applet小程序30Java语言程序设计(Applet用户界面设计)绘制图形4.绘制几何图形n画多边形npublic void drawPolygon(int xPoints, int yPoints, int Points)npublic void fillPolygon(int xPoints, int yPoi

21、nts, int Points)npublic void drawPolygon(Polygon p)npublic void fillPolygon(Polygon p)nPolygon类构造方法nPolygon()nPolygon(int xPoints, int yPoints, int numberOfPoints)31Java语言程序设计(Applet用户界面设计)演示图像1.定义图像对象njava.awt.Image类n图像高度和宽度nint getHeight(ImageObserver observer)nint getWidth(ImageObserver observer)

22、2.获取图像信息方法nImage getImage(URL url, String name)3.显示图像的操作ndrawImage(Image img, int x, int y, ImageObserver observer)ndrawImage(Image img, int x, int y, int width, int height, ImageObserver observer)32Java语言程序设计(Applet用户界面设计)Applet小程序import java.applet.Applet;import java.awt.*;public class Exam4_13 ex

23、tends Applet public void paint(Graphics g) Image pic;pic = getImage(getDocumentBase(), “edonkey.jpg”);int x0 = 10, y0 = 30;int w = pic.getWidth(this);int h = pic.getHeight(this);g.drawImage(pic, x0, y0, w/8, h/8, this);g.drawImage(pic, x0+150, y0, w/12, h/12, this);g.drawImage(pic, x0+150, y0+100, w

24、/15, h/15, this);g.drawImage(pic, x0+250, y0+30, (int)(w*0.1), (int)(h*0.2), this);33Java语言程序设计(Applet用户界面设计)Applet小程序34Java语言程序设计(Applet用户界面设计)演示图像4.动画n创建Image类的对象数组ndrawImage()nThread.sleep()方法nrepaint()5.播放声音npublic void play(URL url)npublic AudioClip getAudio(URL url)nplay()方法/loop()方法/stop()方法3

25、5Java语言程序设计(Applet用户界面设计)第四章 结束!36Java语言程序设计(Applet用户界面设计)1.概述2.事件处理3.基本控制组件4.布局设计5.常用容器组件第五章 图形用户界面设计37Java语言程序设计(Applet用户界面设计)概述n用户界面(User Interface)n用户与计算机系统(各种程序)交互的接口38Java语言程序设计(Applet用户界面设计)GraphicalGraphicalUser InterfaceUser InterfaceNatural Natural User InterfaceUser Interface19901990GUIGU

26、IMultiple WindowsMultiple WindowsMenusMenus19951995InternetInternetHyperlinksHyperlinksSearch EnginesSearch EnginesDigital DecadeDigital DecadeXMLXMLWeb ServicesWeb ServicesSmart devicesSmart devicesNatural LanguageNatural LanguageMultimodal (speech, ink)Multimodal (speech, ink)Personal AssistantPer

27、sonal AssistantCommand lineCommand line19851985PCPCUser Interface Evolutionn- Kai Fu Lee in 200339Java语言程序设计(Applet用户界面设计)概述nJava GUI的发展1.AWT (Java 1.0)nAWT (Abstract Window Toolkit): 抽象窗口工具包n概念设计实现 (about 1 month)n字体设计(四种), 界面显示(二流水准)2.Swing (Lightweight Components, Java 1.1)nSwing was the code nam

28、e of the project that developed the new componentsnSwing API (附加包, Add-on package)3.JFC (Java 2)nJFC (Java Foundation Classes): Java基础类nJFC encompass a group of features to help people build graphical user interfaces (GUIs). nJFC 是指包含在 Java 2 平台内的一整套图形和用户界面技术nJFC was first announced at the 1997 Java

29、One developer conference 40Java语言程序设计(Applet用户界面设计)概述nJFC (Java Foundation Classes)1.AWT (Abstract Window Toolkit)n一些用户界面组件 (Component)n事件响应模型 (Event-handling model)n布局管理器 (Layout manager)n绘图和图形操作类, 如Shape、Font、Color类等2.Swing Components (Swing组件, JFC的核心)na set of GUI components with a pluggable look

30、 and feel (包括已有的AWT组件(Button、Scrollbar、Label等)和更高层的组件 (如tree view、list box、tabbed panes等)nThe pluggable look and feel lets you design a single set of GUI components that can automatically have the look and feel of any OS platform (Microsoft Windows, Solaris, Macintosh).n基于Java 1.1 Lightweight UI Fra

31、mework41Java语言程序设计(Applet用户界面设计)概述nJFC (Java Foundation Classes)3.Java 2D (advanced 2D graphics and imaging)nGraphics?nImaging? 4.Print Servicen打印文档、图形、图像n设定打印属性和页面属性n发现打印机 (IPP, Internet Printing Protocol)42Java语言程序设计(Applet用户界面设计)概述nJFC (Java Foundation Classes)5.Input Method Frameworkntext editin

32、g components to communicate with input methods and implement a well-integrated text input user interfacen用Java语言开发输入法6.Accessibility: 辅助功能,帮助伤残人士nscreen readers, speech recognition systems, refreshable braille displays7.Drag & DropnDrag and Drop enables data transfer both across Java programming lan

33、guage and native applications, between Java programming language applications, and within a single Java programming language application. 43Java语言程序设计(Applet用户界面设计)图形用户界面的构成n什么是组件?n构成图形用户界面的元素,拿来即用n用图形表示(能在屏幕上显示,能和用户进行交互)nButton、Checkbox、Scrollbar、Choice、Frame44Java语言程序设计(Applet用户界面设计)图形用户界面的构成n一些特定

34、的Java类njava.awt包njavax.swing包n容器组件(Container): 可包含其他组件n顶层容器: Applet, Dialog, Frame, Windown一般用途容器: Panel, ScrollPanen特定用途容器: InternalFramen非容器组件: 必须要包含在容器中nButton, Checkbox, Scrollbar, Choice, Canvas45Java语言程序设计(Applet用户界面设计)图形用户界面的构成nAWT组件 java.awt包ComponentButton, Canvas, Checkbox, Choice, Label,

35、List, ScrollbarTextComponentTextAreaTextFieldContainerPanelWindowScrollPaneDialogFrameMenuComponentMenuBarMenuItem46Java语言程序设计(Applet用户界面设计)图形用户界面的构成nSwing组件 javax.swing包njava.awt.Component |-java.awt.Container |-java.awt.Window |-java.awt.Frame |-javax.swing.JFramenjava.awt.Component |-java.awt.Con

36、tainer |-javax.swing.JComponent|-JComboBox, J, JInternalFrame JLabel, JList, JMenuBar, JOptionPane, JPanel JPopupMenu, JProgressBar, JScrollBar JScrollPane, JSeparator, JSlider, JSpinner JSplitPane, JTabbedPane, JTable JTextComponent, JToolBar, JTree等47Java语言程序设计(Applet用户界面设计)图形用户界面的实现1.选取组件2.设计布局3.

37、响应事件n应用原则nSwing比AWT提供更全面、更丰富的图形界面设计功能nJava 2平台支持AWT组件,但鼓励用Swing组件n主要讲述AWT和Swing的图形界面设计48Java语言程序设计(Applet用户界面设计)图形用户界面的实现n简单实例import javax.swing.*; import java.awt.event.*; public class HelloWorldSwing public static void main(String args) JFrame f = new JFrame(“Swing1); JLabel label = new JLabel(Hel

38、lo!); f.getContentPane().add(label); f.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); f.setSize(200, 200); f.setVisible(true); import java.awt.*; import java.awt.event.*; public class HelloWorldAWT public static void main(String args) Frame f = new

39、Frame(AWT1); Label label = new Label(Hello!); f.add(label); f.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); f.setSize(200, 200); f.setVisible(true); 49Java语言程序设计(Applet用户界面设计)1.概述2.事件处理3.基本控制组件4.布局设计5.常用容器组件第五章 图形用户界面设计50Java语言程序设计(Applet用户界面设计)事件处

40、理n界面设计 (静态)n界面动起来 !n通过事件触发对象的响应机制n事件? 鼠标移动、鼠标点击、键盘键入等n事件处理机制n事件源n事件对象n事件监听者n如何实现1.实现(implements)事件监听接口(interface)产生一个监听器对象(Listener)2.监听谁? 将该监听器对象注册到组件对象中3.编写事件响应方法51Java语言程序设计(Applet用户界面设计)事件处理import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Beeper extends JApplet impleme

41、nts ActionListener JButton button; public void init() button = new JButton(Click Me); getContentPane().add(button, BorderLayout.CENTER); button.addActionListener(this); public void actionPerformed(ActionEvent e) System.out.println(“Click me once”); java.awt.event.ActionListener (interface)public voi

42、d actionPerformed(ActionEvent e)javax.swing.JButton (class)public void addActionListener(ActionListener l)52Java语言程序设计(Applet用户界面设计)事件处理n事件分类Act that results in the event Listener type User clicks a button, presses Return while typing in a text field, or chooses a menu item ActionListener User close

43、s a frame (main window) WindowListener User presses a mouse button while the cursor is over a component MouseListener User moves the mouse over a component MouseMotionListener Component becomes visible ComponentListener Component gets the keyboard focus FocusListener Table or list selection changes

44、ListSelectionListener 53Java语言程序设计(Applet用户界面设计)事件处理n事件分类1.interface java.awt.event.ActionListenernpublic void actionPerformed(ActionEvent e)2.interface java.awt.event.WindowListenernpublic void windowOpened(WindowEvent e)npublic void windowClosing(WindowEvent e)npublic void windowClosed(WindowEvent

45、 e)npublic void windowIconified(WindowEvent e)npublic void windowDeiconified(WindowEvent e)npublic void windowActivated(WindowEvent e)npublic void windowDeactivated(WindowEvent e)54Java语言程序设计(Applet用户界面设计)事件处理n事件分类3.interface java.awt.event.MouseListenernpublic void mouseClicked(MouseEvent e)npublic

46、 void mousePressed(MouseEvent e)npublic void mouseReleased(MouseEvent e)npublic void mouseEntered(MouseEvent e)npublic void mouseExited(MouseEvent e)4.interface java.awt.event.MouseMotionListenernpublic void mouseDragged(MouseEvent e)nInvoked when a mouse button is pressed on a component and then dr

47、aggednpublic void mouseMoved(MouseEvent e)nInvoked when the mouse cursor has been moved onto a component but no buttons have been pushed55Java语言程序设计(Applet用户界面设计)事件处理n鼠标事件public class MouseEventDemo . implements MouseListener . /Register for mouse events on blankArea(TextArea) and applet blankArea.a

48、ddMouseListener(this); public void mousePressed(MouseEvent e) saySomething(Mouse pressed; # of clicks: “ + e.getClickCount(), e); public void mouseReleased(MouseEvent e) saySomething(Mouse released; # of clicks: + e.getClickCount(), e); public void mouseEntered(MouseEvent e) saySomething(Mouse enter

49、ed, e); public void mouseExited(MouseEvent e) saySomething(Mouse exited, e); public void mouseClicked(MouseEvent e) saySomething(Mouse clicked (# of clicks: “ + e.getClickCount() + ), e); void saySomething(String eventDescription, MouseEvent e) textArea.append(eventDescription + detected on “ + e.ge

50、tComponent().getClass().getName() + . + newline); 56Java语言程序设计(Applet用户界面设计)事件处理n多个监听器(Listener)多个组件public class MultiListener . implements ActionListener . button1.addActionListener(this); button2.addActionListener(this); button2.addActionListener(new Eavesdropper(bottomTextArea); public void actio

51、nPerformed(ActionEvent e) topTextArea.append(e.getActionCommand() + newline); class Eavesdropper implements ActionListener . public void actionPerformed(ActionEvent e) myTextArea.append(e.getActionCommand() + newline); 57Java语言程序设计(Applet用户界面设计)第五章 图形用户界面设计1.概述2.事件处理3.基本控制组件4.布局设计5.常用容器组件58Java语言程序设

52、计(Applet用户界面设计)AWT组件 (java.awt.*)Component Button Canvas ChoiceCheckBoxLabelListTextComponentScrollbarTextFieldTextArea ContainerScrollPaneFramePanelWindowDialogApplet59Java语言程序设计(Applet用户界面设计)基本控制组件n使用步骤:n创建基本控制组件类的对象,指定对象属性;n将组件对象加入到制定容器的适当位置(布局设计);n创建事件对象的监听者。nSwing组件(javax.swing.*)60Java语言程序设计(A

53、pplet用户界面设计)按钮和标签n按钮(Button)n创建按钮npublic Button()npublic Button(String label)n常用方法npublic String getLabel()npublic void setLabel(String label)npublic void setActionCommand(String s)npublic String getActionCommand(String s)n事件响应njava.awt.event.ActionListener(接口)nvoid actionPerformed(ActionEvent e)61J

54、ava语言程序设计(Applet用户界面设计)按钮和标签n标签(Label)n创建标签npublic Label()npublic Label(String s)npublic Label(String s, int alignment)n常用方法npublic String getText()npublic void setText(String s)npublic void setAlignment(int alignment)n事件响应n不引发事件62Java语言程序设计(Applet用户界面设计)使用标签的例子import java.awt.*;import java.applet.*

55、;public class Exam5_3 extends Applet Label lab1, lab2;TextField text1, text2;public void init() lab1 = new Label(“输入姓名”);lab2 = new Label(“输入年龄”);lab1.setBackground(Color.red);lab2.setBackground(Color.green);text1 = new TextField(10);text2 = new TextField(10);add(lab1); add(text1);add(lab2);add(text

56、2);63Java语言程序设计(Applet用户界面设计)使用标签的例子64Java语言程序设计(Applet用户界面设计)文本框和文本区n文本框(TextField)nTextComponent类的子类n创建文本框npublic TextField()npublic TextField(int size)npublic TextField(String s)npublic TextField(String s, int size)n常用方法npublic void setText(String s)npublic String getText()npublic void setEchocha

57、r(char c)npublic void setEditable(boolean b)n事件响应njava.awt.event.TextListener(接口)njava.awt.event.ActionListener(接口)65Java语言程序设计(Applet用户界面设计)文本框和文本区n文本区(TextArea)nTextComponent类的子类n创建文本区npublic TextArea()npublic TextArea(String s)npublic TextArea(int rows, int columns)npublic TextArea(String s, int

58、rows, int columns)npublic TextArea(String s, int rows, int columns, int scrollbars)nSCROLLBARS_BOTH, SCROLLBARS_NONEnSCROLLBARS_VERTICAL_ONLYnSCROLLBARS_HORIZONTAL_ONLYn常用方法npublic void append(String s)npublic void insert(String s, int index)npubilc void replaceRange(String s, int start, int end)n事件

59、响应njava.awt.event.TextListener(接口)nvoid textValueChanged(TextEvent e)66Java语言程序设计(Applet用户界面设计)使用文本框的例子import java.awt.*;import java.awt.event.*;import java.applet.*;public class Exam5_4 extends Applet implements ActionListenerLabel lab1, lab2, lab3;TextField text1, text2, text3;String str; int i; f

60、loat f;public void init() lab1 = new Label(“输入整形数: ”); add(lab1);text1 = new TextField(“0”, 30);text1.addActionListener(this); add(text1);lab2 = new Label(“输入浮点数: ”); add(lab2);text2 = new TextField(“0.0”, 30);text2.addActionListener(this); add(text2);lab3 = new Label(“输入字符串: ”); add(lab3);text3 = n

61、ew TextField(“0.0”, 30);text3.addActionListener(this); add(text3);67Java语言程序设计(Applet用户界面设计)使用文本框的例子public void actionPerformed(ActionEvent e) i = Integer.parseInt(text1.getText();f = (Float.valueOf(text2.getText().floatValue();str = text3.getText();repaint();public void paint(Graphics g) g.drawStri

62、ng(“整形数=” + i, 20, 120);g.drawString(“浮点数=” + f, 20, 150);g.drawString(“字符串=” + str, 20, 180);68Java语言程序设计(Applet用户界面设计)单复选框和列表n复选框(Checkbox)n创建复选框npublic Checkbox()npublic Checkbox(String s)npublic TextField(String s, boolean state)n常用方法npublic boolean getState()npublic void setState(boolean b)npub

63、lic void setLabel(String s)npublic String getLabel()n事件响应njava.awt.event.ItemListener(接口)nvoid itemStateChanged(ItemEvent e)69Java语言程序设计(Applet用户界面设计)单复选框和列表n单选按钮组(CheckboxGroup)n创建单选按钮组npublic Checkbox(String label, boolean state, CheckboxGroup group)npublic Checkbox(String label, CheckboxGroup gro

64、up, boolean state)n常用方法n与复选框相同n事件响应n与复选框相同70Java语言程序设计(Applet用户界面设计)单复选框和列表n列表(List)n创建列表npublic List()npublic List(int n)npublic List(int n, boolean b)n常用方法npublic void add(String s)npublic void add(String s, int n)npublic void remove(int n)npublic void removeAll()npublic int getSelectedIndex()npub

65、lic String getSelectedItem()n事件响应njava.awt.event.ItemListener(接口)njava.awt.event.ActionListener(接口)71Java语言程序设计(Applet用户界面设计)下拉列表和滚动条n下拉列表(Choice)n创建下拉列表npublic Choice()n常用方法npublic int getSelectedIndex()npublic String getSelectedItem()npublic void select(int index)npublic void select(String item)np

66、ublic void add(String s)npublic void add(String s, int index)npublic void remove(int index)npublic void remove(String item)npublic void removeAll()n事件响应njava.awt.event.ItemListener(接口)72Java语言程序设计(Applet用户界面设计)下拉列表和滚动条n滚动条(Scrollbar)n创建滚动条npublic Scrollbar(int orientation, int value, int visible, in

67、t minimum, int maximum)n常用方法npublic void setUnitIncrement(int n)npublic void setBlockIncrement(int n)npublic int getUnitIncrement()npublic int getBlockIncrement()npublic int getValue()n事件响应njava.awt.event.AdjustmentListener(接口)nvoid adjustmentValueChanged(AdjustmentEvent e)73Java语言程序设计(Applet用户界面设计)

68、使用下列列表的例子import java.awt.*;import java.awt.event.*;import java.applet.*;public class Exam5_8 extends Applet implements ItemListener Choice cho; TextField text;public void init() text = new TextField(10);cho = new Choice();cho.add(“red”);cho.add(“yellow”);cho.add(“green”);cho.add(“blue”);add(cho);add

69、(text);cho.addItemListener(this);public void itemStateChanged(ItemEvent e) if(e.getItemSelectable() = cho) String s = cho.getSelectedItem(); text.setText(s);74Java语言程序设计(Applet用户界面设计)使用下列列表例子75Java语言程序设计(Applet用户界面设计)画布n画布(Canvas)n创建画布npublic Canvas()n常用方法npublic void setSize()npublic void paint(Gra

70、phics g)n事件响应njava.awt.event.MouseMotionListener(接口)njava.awt.event.MouseListener(接口)njava.awt.event.KeyListener(接口)76Java语言程序设计(Applet用户界面设计)1.概述2.事件处理3.基本控制组件4.布局设计5.常用容器组件第五章 图形用户界面设计77Java语言程序设计(Applet用户界面设计)布局管理n决定组件在界面中所处的位置和大小 n六种布局管理器(Layout Manager)n两种简单布局njava.awt.FlowLayout (JDK 1.0)njava

71、.awt.GridLayout (JDK 1.0)n两种特定用途布局njava.awt.BorderLayout (JDK 1.0)njava.awt.CardLayout (JDK 1.0)n两种灵活布局njava.awt.GridBagLayout (JDK 1.0)njavax.swing.BoxLayout78Java语言程序设计(Applet用户界面设计)布局管理nFlowLayout (java.awt.FlowLayout)n所有组件从左往右排成一行n 一行排满后转到下一行从左往右排n居中、左对齐、右对齐import java.awt.*;import javax.swing.*

72、;public class FlowWindow extends JFrame public FlowWindow() Container contentPane = getContentPane(); contentPane.setLayout(new FlowLayout(); contentPane.add(new JButton(Button 1); contentPane.add(new JButton(2); contentPane.add(new JButton(Button 3); contentPane.add(new JButton(Long-Named Button 4)

73、; contentPane.add(new JButton(Button 5); public static void main(String args) FlowWindow win = new FlowWindow(); win.setTitle(FlowLayout); win.pack(); win.setVisible(true); public void pack()Causes this Window to be sized to fit the perferred size and layouts of its subcomponents79Java语言程序设计(Applet用

74、户界面设计)布局管理nGridLayout (java.awt.GridLayout)n将空间划分为由行和列组成的网格单元,每个单元放一个组件,网格单元大小相同(宽度和高度)n指定行数和列数import java.awt.*;import javax.swing.*;public class GridWindow extends JFrame public GridWindow() Container contentPane = getContentPane(); contentPane.setLayout(new GridLayout(0,2); contentPane.add(new JB

75、utton(Button 1); contentPane.add(new JButton(2); contentPane.add(new JButton(Button 3); contentPane.add(new JButton(Long-Named Button 4); contentPane.add(new JButton(Button 5); public static void main(String args) GridWindow win = new GridWindow(); win.setTitle(FlowLayout); win.pack(); win.setVisibl

76、e(true); public GridLayout(int rows, int cols)rows and cols can be zero, which means that any number of objects can be placed in a row or in a column80Java语言程序设计(Applet用户界面设计)布局管理nBorderLayout (java.awt.BorderLayout)nBorderLayout is the default layout manager for every content pane n上北、下南、左西、右东、中Con

77、tainer contentPane = getContentPane();/contentPane.setLayout(new BorderLayout(); contentPane.add(new JButton(Button 1 (NORTH), BorderLayout.NORTH);contentPane.add(new JButton(2 (CENTER), BorderLayout.CENTER);contentPane.add(new JButton(Button 3 (WEST),BorderLayout.WEST);contentPane.add(new JButton(L

78、ong-Named Button 4 (SOUTH),BorderLayout.SOUTH);contentPane.add(new JButton(Button 5 (EAST), BorderLayout.EAST);81Java语言程序设计(Applet用户界面设计)布局管理nCardLayout (java.awt.CardLayout)n两个或多个组件共享相同的显示空间,在不同的时间显示不同的组件82Java语言程序设计(Applet用户界面设计)布局管理nGridBagLayout (java.awt.GridBagLayout)n最精细、最灵活的布局管理n将空间划分为由行和列组成

79、的网格单元,每个单元放一个组件,网格单元大小可以不同(宽度和高度)83Java语言程序设计(Applet用户界面设计)布局管理nBoxLayout (javax.swing.BoxLayout)n将组件放在一行或一列JPanel jpv = new JPanel();jpv.setLayout(new BoxLayout(jpv, BoxLayout.Y_AXIS);for(int i = 0; i 5; i+)jpv.add(new JButton( + i);JPanel jph = new JPanel();jph.setLayout(new BoxLayout(jph, BoxLayo

80、ut.X_AXIS);for(int i = 0; i 5; i+) jph.add(new JButton( + i);Container cp = getContentPane();cp.add(BorderLayout.EAST, jpv);cp.add(BorderLayout.SOUTH, jph);容器的嵌套(面板的嵌套,相互包含)84Java语言程序设计(Applet用户界面设计)第五章 图形用户界面设计1.概述2.事件处理3.基本控制组件4.布局设计5.常用容器组件85Java语言程序设计(Applet用户界面设计)概述n容器n可包含其他组件和容器nContainer类的子类n

81、无边框容器: Panel, Appletn有边框容器: Window, Frame, Dialog, FieldDialogn可自动处理滚动操作的容器: Scrollpane ContainerScrollPaneFramePanelWindowDialogApplet86Java语言程序设计(Applet用户界面设计)容器n常用方法n添加组件: add()n获取制定的组件ngetComponent(int x, int y)ngetComponent(int index)n从容器中移出组件nremove(Component c)nremove(int index)nremoveAll()n设

82、置容器布局: setLayout()87Java语言程序设计(Applet用户界面设计)容器n面板(Panel)n无边框容器n顺序布局(FlowLayout)nApplet子类88Java语言程序设计(Applet用户界面设计)窗口和菜单njava.awt.Window: 最顶层容器nWindow(Frame f)nshow()nBorderLayout布局njava.awt.Frame: 有边框容器n构造方法nFrame()nFrame(String title)nBorderLayout布局n常用方法ngetTitle()nsetTitle(String s)nsetVisible(boo

83、lean b)nsetBounds(int a, int b, int width, int height)nsetBackground(Color c)npack()nsetSize(int width, int height)ndispose()nadd()nremove()89Java语言程序设计(Applet用户界面设计)使用Frame容器的例子import java.awt.*;import java.awt.event.*;public class Exam5_18 public static void main(String args) MyFrame mf = new MyFr

84、ame();class MyFrame extends Frame implements ActionListener, MouseListener, WindowListener Button but;String str;String mouseClickCnt = “单击单击”;Dimension currentPos = new Dimension();int clickCnt = 0;MyFrame() super(“我制作的窗口我制作的窗口”);but = new Button(“按钮按钮”);setLayout(new FlowLayout();add(but);but.addA

85、ctionListener(this);addMouseListener(this);addWindowListener(this);pack();show();90Java语言程序设计(Applet用户界面设计)使用Frame容器的例子public void paint(Graphics g) str = “单击了单击了” + clickCnt + “次按钮次按钮”;g.drawString(str, 10 ,40);g.drawString(“鼠标鼠标” + mouseClickCnt + “位置位置:(” + currentPos.width + “,” + currentPos.hei

86、ght + “)”, 10, 70);public void actionPerformed(ActionEvent e) if(e.getSource() = but) clickCnt +; repaint();public void mouseClicked(MouseEvent e) currentPos.width = e.getX();currentPos.height = e.getY();if(e.getClickCount() = 1) mouseClickCnt = “单击单击”;else mouseClickCnt = “双击双击”;repaint();91Java语言程

87、序设计(Applet用户界面设计)使用Frame容器的例子public void mousePressed(MouseEvent e) ; public void mouseReleased(MouseEvent e) ; public void mouseEntered(MouseEvent e) ; public void mouseExited(MouseEvent e) ; public void windowClosing(WindowEvent e) dispose(); System.exit(0);public void windowOpened(WindowEvent e)

88、; public void windowClosed(WindowEvent e) ; public void windowIconified(WindowEvent e) ; public void windowDeiconified(WindowEvent e) ; public void windowActivated(WindowEvent e) ; public void windowDeactivated(WindowEvent e) ; 92Java语言程序设计(Applet用户界面设计)菜单组件njava.awt.MenuBar类nMenuBar()nsetMenuBar(菜单

89、对象)njava.awt.Menu类njava.awt.MenuItem类njava.awt.CheckboxMenuItem类njava.awt.PopupMenu类MenuComponentMenuBarCheckboxMenuItemPopupMenuMenuItem Menu93Java语言程序设计(Applet用户界面设计)使用菜单组件的例子import java.awt.*;import java.awt.event.*;public class Exam5_19 extends Frame implements ActionListener, ItemListener TextF

90、ield text;public Exam5_19() super(“我的菜单窗口我的菜单窗口”);setSize(300, 200);public void init() MenuBar myB = new MenuBar();setMenuBar(myB);Menu m1 = new Menu(“文件文件”);m1.add(new MenuItem(“打开打开”);MenuItem m11 = new MenuItem(“保存保存”);m11.setEnabled(false);m1.add(m11);m1.addSeparator();m1.add(“退出退出”);m1.addActio

91、nListener(this);myB.add(m1);94Java语言程序设计(Applet用户界面设计)使用菜单组件的例子Menu m2 = new Menu(“编辑编辑”);m2.add(“复制复制”);Menu m21 = new Menu(“颜色颜色”);m21.add(“前景色前景色”);m21.add(“背景色背景色”);m21.addActionListener(this);m2.add(m21);m2.addSeparator();CheckboxMenuItem mycmi = new CheckboxMenuItem(“全选全选”);mycmi.addItemListen

92、er(this);m2.add(mycmi);m2.addActionListener(this);myB.add(m2);Menu m3 = new Menu(“帮助帮助”);m3.add(“关于关于”);m3.addActionListener(this);myB.setHelpMenu(m3);text = new TextField();add(“South”, text);95Java语言程序设计(Applet用户界面设计)使用菜单组件的例子public static void main(String args) Exam5_19 myMenu = new Exam5_19();my

93、Menu.init();myMenu.setVisible(true);public void itemStateChanged(ItemEvent e) text.setText(“状态改变状态改变”);public void actionPerformed(ActionEvent e) text.setText(e.getActionCommand();if (e.getActionCommand() = “退出退出”) System.exit(0);96Java语言程序设计(Applet用户界面设计)对话框njava.awt.Dialog类n有边框和标题,可对立使用的容器nDialog(

94、Frame f)nDialog(Frame f, boolean b)nDialog(Frame f, String s)nDialog(Frame f, String s, boolean b)nsetTitle()/getTitle()nsetModal()/setSize()/setVisible()n操作步骤n创建一个窗口类n创建一个对话框类n设置对话框大小n创建主类,启动和初始化窗口和对话框类97Java语言程序设计(Applet用户界面设计)对话框njava.awt.类nDialog类的子类n构造方法n(Frame f)n(Frame f, String s)n(Frame f,

95、String s, int m)n常用方法ngetDirectory()nsetDirectory()nsetFile()98Java语言程序设计(Applet用户界面设计)关于Swing的设计99Java语言程序设计(Applet用户界面设计)界面设计n设计流程1.顶层容器nJFrame对象主窗口nJDialog对象二级窗口nJApplet对象applet程序在浏览器窗口中的显示区域2.内容面板nJFrame f = new JFrame(“Swing1);JLabel label = new JLabel(Hello!);f.getContentPane().add(label);n面板的

96、嵌套 (面板包含面板)n设计布局3.在内容面板中添加组件100Java语言程序设计(Applet用户界面设计)界面设计Frame内容面板内容面板内容面板TextFieldSliderComboxTextFieldSliderCombox101Java语言程序设计(Applet用户界面设计)界面设计102Java语言程序设计(Applet用户界面设计)应用实例n应用实例菜单的构造JMenuBar menuBar;JMenu menu, submenu;JMenuItem menuItem;JCheckBoxMenuItem cbMenuItem;JRadioButtonMenuItem rbMe

97、nuItem;menuBar = new JMenuBar();menu = new JMenu(A Menu);menuBar.add(menu);menuItem = new JMenuItem( A text-only menu item);menu.add(menuItem);menuItem = new JMenuItem(Both text and icon, new ImageIcon(images/middle.gif);menu.add(menuItem);menuItem = new JMenuItem(new ImageIcon(images/middle.gif);me

98、nu.add(menuItem);menu.addSeparator();ButtonGroup group = new ButtonGroup();rbMenuItem = new JRadioButtonMenuItem( A radio button menu item);rbMenuItem.setSelected(true);group.add(rbMenuItem);menu.add(rbMenuItem);rbMenuItem = new JRadioButtonMenuItem(Another one);group.add(rbMenuItem);menu.add(rbMenu

99、Item);menu.addSeparator();cbMenuItem = new JCheckBoxMenuItem(A check box menu item);menu.add(cbMenuItem);cbMenuItem = new JCheckBoxMenuItem(Another one);menu.add(cbMenuItem);menu.addSeparator();submenu = new JMenu(A submenu);menuItem = new JMenuItem( An item in the submenu);submenu.add(menuItem);men

100、uItem = new JMenuItem(Another item);submenu.add(menuItem);menu.add(submenu);menu = new JMenu(Another Menu);menuBar.add(menu);103Java语言程序设计(Applet用户界面设计)应用实例n应用实例绘图(java.awt.Graphics类)import java.awt.*;import java.applet.Applet;public class DrawGraph extends Applet public void paint (Graphics g) g.dr

101、awLine(30, 5, 40, 5);g.drawRect(40, 10, 50, 20);g.fillRect(60, 30, 70, 40);g.drawRoundRect(110, 10, 130, 50, 30,30);g.drawOval(150, 120, 70, 40);g.fillOval(190, 160, 70, 40);g.drawString(Hello, 100, 200);int x = 30, 50, 65, 119, 127;int y = 100, 140, 127, 169, 201;g.drawPolygon(x, y, 5);104Java语言程序设计(Applet用户界面设计)第五章 结束 !105Java语言程序设计(Applet用户界面设计)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号