图形用户界面设计 .ppt

上传人:小飞机 文档编号:5252774 上传时间:2023-06-19 格式:PPT 页数:43 大小:329.49KB
返回 下载 相关 举报
图形用户界面设计 .ppt_第1页
第1页 / 共43页
图形用户界面设计 .ppt_第2页
第2页 / 共43页
图形用户界面设计 .ppt_第3页
第3页 / 共43页
图形用户界面设计 .ppt_第4页
第4页 / 共43页
图形用户界面设计 .ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《图形用户界面设计 .ppt》由会员分享,可在线阅读,更多相关《图形用户界面设计 .ppt(43页珍藏版)》请在三一办公上搜索。

1、1,Java语言程序设计,刘玉江,2,概述事件处理基本控制组件布局设计常用容器组件,第五章 图形用户界面设计,3,概述,图形用户界面(Graphics User Interface)图形用户界面:由菜单、按钮等图形界面组件构成,用户通过键盘和鼠标与程序进行交互。GUI组件:是图形用户界面的基本元素,可实现用户与程序交互。容器:组件放置的地方,我们可以在容器中放入一些GUI组件,如按钮、菜单等,从而组成一个人机界面非常友好的程序。(包括:Applet、Panel、Frame等),4,容器(container),图形用户界面(GUI),5,图形用户界面的构成,什么是组件?构成图形用户界面的元素,拿

2、来即用用图形表示(能在屏幕上显示,能和用户进行交互)Button、Checkbox、Scrollbar、Choice、Frame,6,图形用户界面的构成,一些特定的Java类java.awt包javax.swing包容器组件(Container):可包含其他组件顶层容器:Applet,Dialog,Frame,Window一般用途容器:Panel,ScrollPane特定用途容器:InternalFrame非容器组件:必须要包含在容器中Button,Checkbox,Scrollbar,Choice,Canvas,7,图形用户界面的实现(P192),选取组件设计布局响应事件应用原则Swing比

3、AWT提供更全面、更丰富的图形界面设计功能Java 2平台支持AWT组件,但鼓励用Swing组件主要讲述AWT和Swing的图形界面设计,8,图形用户界面的实现,简单实例,import javax.swing.*;import.*;public class HelloWorldSwing public static void main(String args)JFrame f=new JFrame(“Swing1);JLabel label=new JLabel(Hello!);f.getContentPane().add(label);f.addWindowListener(new Wind

4、owAdapter()public void windowClosing(WindowEvent e)System.exit(0););f.setSize(200,200);f.setVisible(true);,import java.awt.*;import.*;public class HelloWorldAWT public static void main(String args)Frame f=new Frame(AWT1);Label label=new Label(Hello!);f.add(label);f.addWindowListener(new WindowAdapte

5、r()public void windowClosing(WindowEvent e)System.exit(0););f.setSize(200,200);f.setVisible(true);,9,概述事件处理基本控制组件布局设计常用容器组件,第五章 图形用户界面设计,10,事件处理,界面设计(静态)界面动起来!通过事件触发对象的响应机制事件?鼠标移动、鼠标点击、键盘键入等事件处理机制事件源事件对象事件监听者如何实现实现(implements)事件监听接口(interface)产生一个监听器对象(Listener)监听谁?将该监听器对象注册到组件对象中编写事件响应方法,11,3.实现事件处

6、理的步骤,1)定义类实现事件监听器接口 2)将产生事件的组件注册为事件监听器 3)实现处理事件接口的抽象方法,12,要建立处理事件的类,需要说明类实现事件监听器接口,说明格式如下:public class 类名 implements 监听器接口名列表例如,ActionListener是动作事件监听器接口,定义如下:interface ActionListener public abstract void actionPerformed(ActionEvent e);如果名为Myclass的类要处理动作事件,就要定义Myclass类实现ActionListener接口。,1)定义类实现事件监听器

7、接口,13,如果希望组件产生事件时能够得到响应,应将产生事件的组件注册为事件监听器,注册的语句如下:组件名addXXXListener(实现事件监听器接口的类对象);XXX代表事件类型。例如,假设Myclass是实现ActionListener接口的类。将Myclass类对象注册为事件监听器,对应语句如下:组件名addActionListener(new Myclass();也可以使用关键字this。例如,组件名addActionListener(this)。,2)将产生事件的组件注册为事件监听器,14,在实现事件监听器接口的类中为抽象方法编写代码。例如,在Myclass类中为ActionLi

8、stener接口的actionPerformed()方法编写语句。public void actionPerformed(ActionEvent e)填写处理动作事件的语句,3)实现处理事件接口的抽象方法,15,以按钮类为例说明相应的事件处理过程(P197)Button button1=new Button(”提交”);button1.addActionListener(this);/在init()中实现监听器对象this必须实现相应的接口,来响应事件:public class C1 implements ActionListener.public void init().button1.ad

9、dActionListener(this);public void actionPerformed(ActionEvent event)相应的响应操作,16,第五章 图形用户界面设计,概述事件处理基本控制组件布局设计常用容器组件,17,例:import java.applet.Applet;import java.awt.*;import.*;public class Mouse1 extends Applet implements MouseListenerint x,y;TextField t1=new TextField(12);public void init()add(t1);add

10、MouseListener(this);public void mousePressed(MouseEvent e)x=e.getX();y=e.getY();t1.setText(坐标值:+Integer.toString(x)+,+Integer.toString(y);public void mouseClicked(MouseEvent e)public void mouseEntered(MouseEvent e)public void mouseReleased(MouseEvent e)public void mouseExited(MouseEvent e),18,AWT组件(

11、java.awt.*),Component,Button,Canvas,Choice,CheckBox,Label,List,TextComponent,Scrollbar,TextField,TextArea,Container,ScrollPane,Frame,FileDialog,Panel,Window,Dialog,Applet,19,基本控制组件,使用步骤:创建基本控制组件类的对象,指定对象属性;将组件对象加入到制定容器的适当位置(布局设计);创建事件对象的监听者。Swing组件(javax.swing.*),20,按钮和标签,按钮(Button)创建按钮public Button

12、()public Button(String label)常用方法public String getLabel()public void setLabel(String label)public void setActionCommand(String s)public String getActionCommand(String s)事件响应(接口)void actionPerformed(ActionEvent e),21,按钮和标签,标签(Label)创建标签public Label()public Label(String s)public Label(String s,int ali

13、gnment)常用方法public String getText()public void setText(String s)public void setAlignment(int alignment)事件响应不引发事件,22,使用标签的例子,import java.awt.*;import java.applet.*;public class Exam5_3 extends Applet Label lab1,lab2;TextField text1,text2;public void init()lab1=new Label(“输入姓名”);lab2=new Label(“输入年龄”);

14、lab1.setBackground(Color.red);lab2.setBackground(Color.green);text1=new TextField(10);text2=new TextField(10);add(lab1);add(text1);add(lab2);add(text2);,23,使用标签的例子,24,文本框和文本区,文本框(TextField)TextComponent类的子类创建文本框public TextField()public TextField(int size)public TextField(String s)public TextField(St

15、ring s,int size)常用方法public void setText(String s)public String getText()public void setEchochar(char c)public void setEditable(boolean b)事件响应(接口)(接口),25,文本框和文本区,文本区(TextArea)TextComponent类的子类创建文本区public TextArea()public TextArea(String s)public TextArea(int rows,int columns)public TextArea(String s,

16、int rows,int columns)public TextArea(String s,int rows,int columns,int scrollbars)SCROLLBARS_BOTH,SCROLLBARS_NONESCROLLBARS_VERTICAL_ONLYSCROLLBARS_HORIZONTAL_ONLY常用方法public void append(String s)public void insert(String s,int index)pubilc void replaceRange(String s,int start,int end)事件响应(接口)void te

17、xtValueChanged(TextEvent e),26,使用文本框的例子,import java.awt.*;import.*;import java.applet.*;public class Exam5_4 extends Applet implements ActionListenerLabel lab1,lab2,lab3;TextField text1,text2,text3;String str;int i;float f;public void init()lab1=new Label(“输入整形数:”);add(lab1);text1=new TextField(“0”,

18、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=new TextField(“0.0”,30);text3.addActionListener(this);add(text3);,27,使用文本框的例子,public void actionPerformed(Ac

19、tionEvent e)i=Integer.parseInt(text1.getText();f=(Float.valueOf(text2.getText().floatValue();str=text3.getText();repaint();public void paint(Graphics g)g.drawString(“整形数=”+i,20,120);g.drawString(“浮点数=”+f,20,150);g.drawString(“字符串=”+str,20,180);,28,单复选框和列表,复选框(Checkbox)创建复选框public Checkbox()public Ch

20、eckbox(String s)public TextField(String s,boolean state)常用方法public boolean getState()public void setState(boolean b)public void setLabel(String s)public String getLabel()事件响应(接口)void itemStateChanged(ItemEvent e),29,单复选框和列表,单选按钮组(CheckboxGroup)创建单选按钮组public Checkbox(String label,boolean state,Checkb

21、oxGroup group)public Checkbox(String label,CheckboxGroup group,boolean state)常用方法与复选框相同事件响应与复选框相同,30,单复选框和列表,列表(List)创建列表public List()public List(int n)public List(int n,boolean b)常用方法public void add(String s)public void add(String s,int n)public void remove(int n)public void removeAll()public int g

22、etSelectedIndex()public String getSelectedItem()事件响应(接口)(接口),31,下拉列表和滚动条,下拉列表(Choice)创建下拉列表public Choice()常用方法public int getSelectedIndex()public String getSelectedItem()public void select(int index)public void select(String item)public void add(String s)public void add(String s,int index)public voi

23、d remove(int index)public void remove(String item)public void removeAll()事件响应(接口),32,下拉列表和滚动条,滚动条(Scrollbar)创建滚动条public Scrollbar(int orientation,int value,int visible,int minimum,int maximum)常用方法public void setUnitIncrement(int n)public void setBlockIncrement(int n)public int getUnitIncrement()publ

24、ic int getBlockIncrement()public int getValue()事件响应(接口)void adjustmentValueChanged(AdjustmentEvent e),33,使用下拉列表的例子,import java.awt.*;import.*;import java.applet.*;public class Exam5_8 extends Applet implements ItemListener Choice cho;TextField text;public void init()text=new TextField(10);cho=new Ch

25、oice();cho.add(“red”);cho.add(“yellow”);cho.add(“green”);cho.add(“blue”);add(cho);add(text);cho.addItemListener(this);public void itemStateChanged(ItemEvent e)if(e.getItemSelectable()=cho)String s=cho.getSelectedItem();text.setText(s);,34,使用下列列表例子,35,画布,画布(Canvas)创建画布public Canvas()常用方法public void s

26、etSize()public void paint(Graphics g)事件响应(接口)(接口)(接口),36,概述事件处理基本控制组件布局设计常用容器组件,第五章 图形用户界面设计,37,布局管理,决定组件在界面中所处的位置和大小 目的:在含有组件比较多的容器中,将各组件 摆放整齐。分类:1、顺序布局(FlowLayout)2、边界布局(BorderLayout)3、卡片布局(CardLayout)4、网格布局(GridLayout),38,第五章 图形用户界面设计,概述事件处理基本控制组件布局设计常用容器组件,39,概述,容器可包含其他组件和容器Container类的子类无边框容器:Pa

27、nel,Applet有边框容器:Window,Frame,Dialog,FieldDialog可自动处理滚动操作的容器:Scrollpane,Container,ScrollPane,Frame,FileDialog,Panel,Window,Dialog,Applet,40,容器,常用方法添加组件:add()获取制定的组件getComponent(int x,int y)getComponent(int index)从容器中移出组件remove(Component c)remove(int index)removeAll()设置容器布局:setLayout(),41,容器,面板(Panel)无边框容器顺序布局(FlowLayout)Applet子类,42,窗口和菜单,:最顶层容器Window(Frame f)show()BorderLayout布局:有边框容器BorderLayout布局注意:Window只能依附Frame存在。,43,作业:1.Java布局方法包括几种?2.P261 54,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号