第6图形用户界面.ppt

上传人:本田雅阁 文档编号:2500067 上传时间:2019-04-04 格式:PPT 页数:53 大小:879.51KB
返回 下载 相关 举报
第6图形用户界面.ppt_第1页
第1页 / 共53页
第6图形用户界面.ppt_第2页
第2页 / 共53页
第6图形用户界面.ppt_第3页
第3页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第6图形用户界面.ppt》由会员分享,可在线阅读,更多相关《第6图形用户界面.ppt(53页珍藏版)》请在三一文库上搜索。

1、第6章 图形用户界面,6.1 Java图形用户界面初步 6.2 事件处理 6.3 布局管理 6.4 Swing组件 6.5 图形设计,Java2程序设计实用教程(第2版),6.1 Java图形用户界面初步,6.1.1 Java图形用户界面概述 6.1.2 AWT组件概述,Java2程序设计实用教程(第2版),6.1.1 Java图形用户界面概述,图形用户界面概念 图形用户界面(Graphical User Interface,GUI),使用图形方式借助菜单、按钮等标准界面元素和键盘、鼠标操作,实现人机交互。 Java的AWT和Swing java.awt包提供抽象窗口工具集(Abstract

2、Window Tookit,AWT)。 javax.swing包提供JDK 1.2的Swing组件,它扩展了AWT组件的功能。,Java2程序设计实用教程(第2版),6.1.2 AWT组件概述,图6.1 java.awt包中主要类及组件类的继承关系,Java2程序设计实用教程(第2版),6.1.2 AWT组件概述,组件 public abstract class Component extends Object implements ImageObserver, MenuContainer, Serializable public void setLocation(int x, int y)

3、/设置组件位置 public void setSize(int width, int height) /设置组件的宽度和高度 public void setVisible(boolean b) /设置组件是否显示 ,Java2程序设计实用教程(第2版),6.1.2 AWT组件概述,容器 public class Container extends Component public void setLayout(LayoutManager mgr) /设置布局管理器 public Component add(Component comp) /在容器中添加一个组件comp ,Java2程序设计实用

4、教程(第2版),6.1.2 AWT组件概述,窗口(window)和面板(panel) 框架Frame和对话框Dialog 框架 public class Frame extends Window implements MenuContainer public Frame() public Frame(String title) /参数title指定框架的标题 public String getTitle() /获取框架的标题 public void setTitle(String title) /设置或修改框架的标题 public void setBackground(Color c) /设置

5、框架的背景颜色 public void setResizable(boolean resizable) /设置框架是否可变大小 ,Java2程序设计实用教程(第2版),6.1.2 AWT组件概述,对话框 public class Dialog extends Window public Dialog(Frame owner) /owner指明拥有对话框的框架 public Dialog(Frame owner, String title) /title是对话框的窗口标题 public Dialog(Frame owner, boolean modal) /modal指明该对话框是否为模式窗口

6、public Dialog(Frame owner, String title, boolean modal) ,Java2程序设计实用教程(第2版),6.1.2 AWT组件概述,标签 public class Label extends Component implements Accessible public static final int LEFT /左对齐,默认值 public static final int CENTER /居中 public static final int RIGHT /右对齐 public Label() public Label(String text)

7、 /text指定显示字符串 public Label(String text, int alignment) /alignment指定对齐方式 public String getText() /获得显示字符串 public void setText(String text) /设定显示字符串 ,Java2程序设计实用教程(第2版),6.1.2 AWT组件概述,文本行 public class TextField extends TextComponent public TextField() public TextField(String text) public TextField(int

8、columns) public TextField(String text, int columns) /text指定内容,columns指定列数 public class TextComponent extends Component implements Accessible public String getText() /获得文本行中的内容 public void setText(String t) /设置文本行中的内容 public void setEditable(boolean b) /设置文本行是否可编辑 ,Java2程序设计实用教程(第2版),6.1.2 AWT组件概述,按钮

9、 public class Button extends Component implements Accessibl public Button(String label)/label指定按钮的标签 错误与异常类 【例6.1】 用户登录窗口。,Java2程序设计实用教程(第2版),6.2 事件处理,6.2.1 AWT的委托事件模型 6.2.2 AWTEvent事件类 6.2.3 事件监听器接口和事件适配器类,Java2程序设计实用教程(第2版),6.2.1 AWT的委托事件模型,事件 事件(event)是指一个状态的改变,或者一个活动的发生。例如,单击一个按钮,将产生单击事件等。 事件类 窗

10、口事件类(WindowEvent)和单击事件类(ActionEvent)等 事件源 产生事件的组件称为事件源(event source) 。,Java2程序设计实用教程(第2版),6.2.1 AWT的委托事件模型,事件监听器 事件源组件注册事件监听器 public class Button extends Component implements Accessibl public void addActionListener(ActionListener l)/注册单击事件监听器 public void removeActionListener(ActionListener l) /取消注册单

11、击事件监听器 例如, button.addActionListener(this); /为按钮注册单击事件监听器 事件处理方法 public interface ActionListener extends EventListener public void actionPerformed(ActionEvent e); /单击事件处理方法 ,Java2程序设计实用教程(第2版),图6.3 按钮单击事件的响应及处理流程,Java2程序设计实用教程(第2版),6.2.1 AWT的委托事件模型,【例6.2】 计算器程序雏形。 按钮单击事件的响应和处理 关闭窗口事件的响应和处理 图形用户界面的运行由

12、事件驱动 不同组件的事件或同一组件的不同事件具有约定的执行次序。 各组件的事件处理方法是否执行以及执行次序,取决于用户操作。 在一个事件处理方法中,程序按照语句的书写次序顺序执行。,Java2程序设计实用教程(第2版),6.2.2 AWTEvent事件类,图6.5 AWT事件类及其层次结构,Java2程序设计实用教程(第2版),6.2.2 AWTEvent事件类,public class EventObject implements java.io.Serializable public Object getSource() /返回产生事件的事件源组件 public String toStri

13、ng() /返回事件对象信息 public class ActionEvent extends AWTEvent public String getActionCommand() /获得按钮的标签 ,Java2程序设计实用教程(第2版),6.2.3 事件监听器接口和事件适配器类,事件监听器接口 public interface ComponentListener extends EventListener public void componentResized(ComponentEvent e); /改变组件大小 public void componentMoved(ComponentEve

14、nt e); /移动组件 public void componentShown(ComponentEvent e); /显示组件 public void componentHidden(ComponentEvent e); /隐藏组件 public interface ContainerListener extends EventListener public void componentAdded(ContainerEvent e); /添加组件 public void componentRemoved(ContainerEvent e); /移动组件 事件监听器接口的意义,Java2程序设

15、计实用教程(第2版),3. 事件适配器类,public abstract class WindowAdapter implements WindowListener, WindowStateListener, WindowFocusListener public void windowOpened(WindowEvent e) public void windowClosing(WindowEvent e) public void windowClosed(WindowEvent e) public void windowIconified(WindowEvent e) public void

16、 windowDeiconified(WindowEvent e) public void windowActivated(WindowEvent e) public void windowDeactivated(WindowEvent e) public void windowStateChanged(WindowEvent e) public void windowGainedFocus(WindowEvent e) public void windowLostFocus(WindowEvent e) ,Java2程序设计实用教程(第2版),4. 组件类中注册事件监听器的方法,public

17、 abstract class Component extends Object implements ImageObserver, MenuContainer, Serializable public void addKeyListener(KeyListener l) /注册键盘事件监听器 public void removeKeyListener(KeyListener l) public void addMouseListener(MouseListener l) /注册鼠标事件监听器 public void removeMouseListener(MouseListener l) p

18、ublic void addMouseMotionListener(MouseMotionListener l) /注册鼠标移动事件监听器 public void removeMouseMotionListener(MouseMotionListener l) ,Java2程序设计实用教程(第2版),【例6.3】 显示一个三位整数的各位数字。,文本行响应单击事件 处理输入错误 使用对话框 窗口关闭事件不能委托其他类处理,Java2程序设计实用教程(第2版),6.3 布局管理,6.3.1 布局管理器类 6.3.2 容器的布局特性,Java2程序设计实用教程(第2版),6.3.1 布局管理器类,F

19、lowLayout(流布局管理器) public class FlowLayout implements LayoutManager, java.io.Serializable public static final int LEFT = 0; /左对齐,类常量,全部大写 public static final int CENTER = 1; /居中 public static final int RIGHT = 2; /右对齐 public FlowLayout() /构造方法,默认居中 public FlowLayout(int align) /align参数指定对齐方式 public F

20、lowLayout(int align, int hgap, int vgap) /hgap、vgap参数指定组件之间水平和垂直间距(像素) ,Java2程序设计实用教程(第2版),2. BorderLayout(边布局管理器),public class BorderLayout implements LayoutManager2, java.io.Serializable public static final String NORTH = “North“; public static final String SOUTH = “South“; public static final Str

21、ing EAST = “East“; public static final String WEST = “West“; public static final String CENTER = “Center“; /注意,字符串首字母大写 public BorderLayout() /构造方法,组件之间的间距为0像素 public BorderLayout(int hgap, int vgap) /参数指定组件之间水平和垂直的间距(像素) ,Java2程序设计实用教程(第2版),3. GridLayout(网格布局管理器),public class GridLayout implements

22、LayoutManager, java.io.Serializable public GridLayout() /构造方法 public GridLayout(int rows, int cols) /参数指定行、列 public GridLayout(int rows, int cols, int hgap, int vgap) /后两个参数指定组件之间水平和垂直的间距(像素) ,Java2程序设计实用教程(第2版),6.3.2 容器的布局特性,容器的默认布局管理器,Java2程序设计实用教程(第2版),2. 设置容器的布局管理器,容器类提供设置布局管理器的方法 frame1.setLayo

23、ut(new FlowLayout(FlowLayout.LEFT); 创建面板时可指定布局管理器 public class Panel extends Container implements Accessible public Panel() /默认FlowLayout布局 public Panel(LayoutManager layout) /layout指定布局管理器 容器类提供添加和移去组件的方法 public Component add(Component comp) /在容器中添加一个组件 public void add(Component comp, Object constr

24、aints) /用于BorderLayout布局管理器 public Component add(Component comp, int index) /用于GridLayout布局管理器,Java2程序设计实用教程(第2版),6.4 Swing组件,6.4.1 Swing组件关系概述 6.4.2 窗口组件 6.4.3 文本显示和编辑组件 6.4.4 按钮组件 6.4.5 列表框和组合框组件 6.4.6 菜单组件,Java2程序设计实用教程(第2版),6.4.1 Swing组件关系概述,Java2程序设计实用教程(第2版),6.4.2 窗口组件,public void setDefaultCl

25、oseOperation(int operation) public interface WindowConstants public static final int DO_NOTHING_ON_CLOSE = 0; /什么也不做 public static final int HIDE_ON_CLOSE = 1; /隐藏窗口 public static final int DISPOSE_ON_CLOSE = 2; /隐藏当前窗口,释放窗口占用的其他资源 public static final int EXIT_ON_CLOSE = 3; /结束程序运行 jframe.setDefault

26、CloseOperation(EXIT_ON_CLOSE); /结束程序运行 jdialog.setDefaultCloseOperation(HIDE_ON_CLOSE); /隐藏对话框而不结束程序运行,Java2程序设计实用教程(第2版),6.4.3 文本显示和编辑组件,文本区 public class JTextArea extends JTextComponent public JTextArea() public JTextArea(String text) /参数text指定初始显示文本 public JTextArea(int rows, int columns) /rows、c

27、olumns指定行数和列数 public JTextArea(String text, int rows, int columns) public abstract class JTextComponent extends JComponent implements Scrollable, Accessible public String getText() /获得文本行中的内容 public void setText(String t) /设置文本行中的内容 public void setEditable(boolean b) /设置文本行是否可编辑 public boolean isEdi

28、table() /判断文本行是否可编辑 ,Java2程序设计实用教程(第2版),6.4.3 文本显示和编辑组件,文本框的事件处理 文本编辑事件类javax.swing.event.CaretEvent public void addCaretListener(CaretListener l) /注册文本编辑事件监听器 文本编辑事件监听器接口CaretListener中只有一个方法caretUpdate(CaretEvent e)。 单击事件类ActionEvent,Java2程序设计实用教程(第2版),6.4.4 按钮组件,复选框 public class JCheckBox extends

29、JToggleButton implements Accessible public JCheckBox () public JCheckBox (String text) public JCheckBox (String text, boolean selected) ,Java2程序设计实用教程(第2版),2. 单选按钮,public class JRadioButton extends JToggleButton implements Accessible public JRadioButton () public JRadioButton (String text) public JR

30、adioButton (String text, boolean selected) public class ButtonGroup extends Object implements Serializable /按钮组类 public ButtonGroup() public void add(AbstractButton b) /添加按钮 public void remove(AbstractButton b) ,Java2程序设计实用教程(第2版),3. 抽象按钮类AbstractButton,public abstract class AbstractButton extends J

31、Component implements ItemSelectable, SwingConstants public String getText() public void setText(String text) public boolean isSelected() /返回是否选中状态 public void setSelected(boolean b) /设置是否选中状态 public void setEnabled(boolean b) /设置是否有效状态 public Object getSelectedObjects() /返回选中对象数组 public void addActi

32、onListener(ActionListener l) /注册按钮的单击事件监听器 public void removeActionListener(ActionListener l) public void addItemListener(ItemListener l) /注册按钮的选择事件监听器 public void removeItemListener(ItemListener l) ,Java2程序设计实用教程(第2版),4. 选项按钮的选择事件处理,public void addItemListener(ItemListener l) /注册选择事件监听器,Java2程序设计实用

33、教程(第2版),6.4.5 列表框和组合框组件,列表框 public class JList extends JComponent implements Scrollable, Accessible public JList() public JList(final Object listData) /列表框中的数据项由对象数组提供 public int getSelectedIndex() /返回第1个选中数据项的序号,从0开始;没有选中时返回-1 public Object getSelectedValue() /返回列表框第1个选中数据项对象;没有选中时返回null public voi

34、d setListData(final Object listData) /重新设置列表框中的数据项 例如, Object area=“南京市“, “苏州市“, “无锡市“; JList list_user = new JList(area);,Java2程序设计实用教程(第2版),2. 组合框,public class JComboBox extends JComponent implements ItemSelectable,ListDataListener,ActionListener, Accessible public JComboBox() public JComboBox(fin

35、al Object items) /组合框中的数据项由对象数组提供 public void addItem(Object anObject) /添加数据项 public Object getSelectedItem() /返回选中数据项对象 public int getSelectedIndex() /返回选中数据项索引 ,Java2程序设计实用教程(第2版),【例6.4】 输入用户信息。,框架窗口采取关闭时结束程序运行方式 使用单选按钮 组合框的选择事件处理,Java2程序设计实用教程(第2版),6.4.6 菜单组件,使用菜单的两种方式 窗口菜单 快捷菜单,Java2程序设计实用教程(第2版

36、),2. 菜单栏,public class JMenuBar extends JComponent implements Accessible,MenuElement public JMenuBar() public JMenu add(JMenu c) /添加菜单 Frame类提供setJMenuBar()方法将菜单栏放置在框架窗口上方,该方法声明如下: public void setJMenuBar(JMenuBar menubar),Java2程序设计实用教程(第2版),3. 菜单,public class JMenu extends JMenuItem implements Acces

37、sible,MenuElement public JMenu() public JMenu(String s) /s指定菜单标题 public JMenuItem add(JMenuItem menuItem) /添加菜单项 public Component add(Component c) /添加组件 public void addSeparator() /添加分隔线 ,Java2程序设计实用教程(第2版),4. 菜单项,public class JMenuItem extends AbstractButton implements Accessible,MenuElement public

38、 JMenuItem() public JMenuItem(String text) /text指定菜单标题 public JMenuItem(String text, Icon icon) /icon指定菜单图标 public void setAccelerator(KeyStroke keyStroke) /设置快捷键 ,Java2程序设计实用教程(第2版),5. 选择菜单项,复选菜单项 public class JCheckBoxMenuItem extends JMenuItem implements SwingConstants, Accessible public JCheckBo

39、xMenuItem() public JCheckBoxMenuItem(String text) /text指定标题 public JCheckBoxMenuItem(String text, boolean b) /b指定初始状态 public JCheckBoxMenuItem(String text, Icon icon, boolean b) /icon指定图标 ,Java2程序设计实用教程(第2版),5. 选择菜单项,单选菜单项 public class JRadioButtonMenuItem extends JMenuItem implements Accessible pub

40、lic JRadioButtonMenuItem() public JRadioButtonMenuItem(String text) public JRadioButtonMenuItem(String text, boolean selected) public JRadioButtonMenuItem(String text, Icon icon, boolean selected) ,Java2程序设计实用教程(第2版),6.快捷菜单,public class JPopupMenu extends JComponent implements Accessible,MenuElement

41、 public JPopupMenu() public JMenuItem add(JMenuItem menuItem) /添加菜单项 public void addSeparator() /添加分隔线 public void show(Component invoker, int x, int y) /在(x,y)位置处显示快捷菜单,invoker指定快捷菜单所依附的组件 java.awt.Component组件类提供下列add()方法用于任何组件添加快捷菜单: public void add(PopupMenu popup) /添加快捷菜单,Java2程序设计实用教程(第2版),【例6.

42、5】 文本编辑器。,对话框采取关闭时隐藏方式 使用窗口菜单 使用快捷菜单 使用java.awt.Font字体类 当字号值不合适时抛出异常 throw new Exception(“SizeException”); /抛出异常对象 catch(Exception ex) if (ex.getMessage()=“SizeException“) /捕获自己抛出的异常对象 ,Java2程序设计实用教程(第2版),6.5 图形设计,6.5.1 绘图类 6.5.2 在组件上绘图,Java2程序设计实用教程(第2版),6.5.1 绘图类,public abstract class Graphics ext

43、ends Object public abstract Color getColor(); /获取当前颜色 public abstract void setColor(Color c); /设置颜色 public abstract void drawLine(int x1, int y1, int x2, int y2); /在两点(x1,y1)、(x2,y2)间画一条直线 public void drawRect(int x, int y, int width, int height) /画矩形 public abstract void fillRect(int x, int y, int

44、width, int height); /填充矩形 public abstract void clearRect(int x, int y, int width, int height); /清除矩形 /(x,y)指定矩形左上角坐标,width、height指定矩形的宽度和高度 public abstract void drawOval(int x, int y, int width, int height); /画椭圆 public abstract void fillOval(int x, int y, int width, int height); /填充椭圆 /(x,y)、width、

45、height指定椭圆外切矩形的左上角坐标、长度和宽度。当width=height时,圆 public abstract void drawString(String str, int x, int y); /在(x,y)指定坐标位置显示字符串 public abstract Font getFont(); /获得颜色 public abstract void setFont(Font font); /设置颜色 ,Java2程序设计实用教程(第2版),6.5.2 在组件上绘图,组件绘图方法 public void paint(Graphics g) /在组件上绘制图形 public void r

46、epaint() /调用paint()方法刷新图形 重新绘制图形 绘图坐标系,Java2程序设计实用教程(第2版),【例6.6】 四叶玫瑰线的图形设计。,在框架窗口上绘图 重画 组合框中容纳颜色常量值 Object data=Color.red, Color.green, Color.blue; combobox_color = new JComboBox(data); /颜色组合框 g.setColor(Color)combobox_color.getSelectedItem(); /设置画线颜色为组合框选中颜色,Java2程序设计实用教程(第2版),实验6 图形用户界面设计,计算器设计 整数进制转换 货币转换 画月亮,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1