【教学课件】第6章图形用户界面.ppt

上传人:牧羊曲112 文档编号:5659157 上传时间:2023-08-06 格式:PPT 页数:53 大小:479.97KB
返回 下载 相关 举报
【教学课件】第6章图形用户界面.ppt_第1页
第1页 / 共53页
【教学课件】第6章图形用户界面.ppt_第2页
第2页 / 共53页
【教学课件】第6章图形用户界面.ppt_第3页
第3页 / 共53页
【教学课件】第6章图形用户界面.ppt_第4页
第4页 / 共53页
【教学课件】第6章图形用户界面.ppt_第5页
第5页 / 共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和Swingjava.awt包提供抽象窗口工具集(Abstract Window T

2、ookit,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)/设置组件位置 public

3、 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程序设计实用教程(第2版),6.1.2 AWT组件概述,

4、窗口(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)/设置框架的背景颜色 public void setResizab

5、le(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指明该对话框是否为模式窗口 public Dialog(Frame owner,String title

6、,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)/text指定显示字符串 public Label(String text,int alig

7、nment)/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 columns)public TextField(String text,int columns)/text指

8、定内容,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组件概述,按钮public class Button extends Component implements Accessibl publ

9、ic 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)是指一个状态的改变,或者一个活动的发生。例如,单击一个按钮,将产生单击事件等。事件类窗口事件类(WindowEvent)和单击事件类(ActionEvent)等 事件源产生事件的组件称为事件源(event source)。,Jav

10、a2程序设计实用教程(第2版),6.2.1 AWT的委托事件模型,事件监听器事件源组件注册事件监听器public class Button extends Component implements Accessibl public void addActionListener(ActionListener l)/注册单击事件监听器 public void removeActionListener(ActionListener l)/取消注册单击事件监听器例如,button.addActionListener(this);/为按钮注册单击事件监听器事件处理方法public interface A

11、ctionListener 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 toString()/返回事件对象信息public class ActionEvent extends AWTEvent public String getActionCommand()/获得按钮

13、的标签,Java2程序设计实用教程(第2版),6.2.3 事件监听器接口和事件适配器类,事件监听器接口public interface ComponentListener extends EventListener public void componentResized(ComponentEvent e);/改变组件大小 public void componentMoved(ComponentEvent e);/移动组件 public void componentShown(ComponentEvent e);/显示组件 public void componentHidden(Compone

14、ntEvent e);/隐藏组件public interface ContainerListener extends EventListener public void componentAdded(ContainerEvent e);/添加组件 public void componentRemoved(ContainerEvent e);/移动组件事件监听器接口的意义,Java2程序设计实用教程(第2版),3.事件适配器类,public abstract class WindowAdapter implements WindowListener,WindowStateListener,Win

15、dowFocusListener public void windowOpened(WindowEvent e)public void windowClosing(WindowEvent e)public void windowClosed(WindowEvent e)public void windowIconified(WindowEvent e)public void windowDeiconified(WindowEvent e)public void windowActivated(WindowEvent e)public void windowDeactivated(WindowE

16、vent e)public void windowStateChanged(WindowEvent e)public void windowGainedFocus(WindowEvent e)public void windowLostFocus(WindowEvent e),Java2程序设计实用教程(第2版),4.组件类中注册事件监听器的方法,public abstract class Component extends Object implements ImageObserver,MenuContainer,Serializable public void addKeyListener

17、(KeyListener l)/注册键盘事件监听器 public void removeKeyListener(KeyListener l)public void addMouseListener(MouseListener l)/注册鼠标事件监听器 public void removeMouseListener(MouseListener l)public void addMouseMotionListener(MouseMotionListener l)/注册鼠标移动事件监听器 public void removeMouseMotionListener(MouseMotionListene

18、r l),Java2程序设计实用教程(第2版),【例6.3】显示一个三位整数的各位数字。,文本行响应单击事件处理输入错误使用对话框窗口关闭事件不能委托其他类处理,Java2程序设计实用教程(第2版),6.3 布局管理,6.3.1 布局管理器类6.3.2 容器的布局特性,Java2程序设计实用教程(第2版),6.3.1 布局管理器类,FlowLayout(流布局管理器)public class FlowLayout implements LayoutManager,java.io.Serializable public static final int LEFT=0;/左对齐,类常量,全部大写

19、public static final int CENTER=1;/居中 public static final int RIGHT=2;/右对齐 public FlowLayout()/构造方法,默认居中 public FlowLayout(int align)/align参数指定对齐方式 public FlowLayout(int align,int hgap,int vgap)/hgap、vgap参数指定组件之间水平和垂直间距(像素),Java2程序设计实用教程(第2版),2.BorderLayout(边布局管理器),public class BorderLayout implement

20、s LayoutManager2,java.io.Serializable public static final String NORTH=North;public static final String SOUTH=South;public static final String EAST=East;public static final String WEST=West;public static final String CENTER=Center;/注意,字符串首字母大写 public BorderLayout()/构造方法,组件之间的间距为0像素 public BorderLayo

21、ut(int hgap,int vgap)/参数指定组件之间水平和垂直的间距(像素),Java2程序设计实用教程(第2版),3.GridLayout(网格布局管理器),public class GridLayout implements LayoutManager,java.io.Serializable public GridLayout()/构造方法 public GridLayout(int rows,int cols)/参数指定行、列 public GridLayout(int rows,int cols,int hgap,int vgap)/后两个参数指定组件之间水平和垂直的间距(像

22、素),Java2程序设计实用教程(第2版),6.3.2 容器的布局特性,容器的默认布局管理器,Java2程序设计实用教程(第2版),2.设置容器的布局管理器,容器类提供设置布局管理器的方法frame1.setLayout(new FlowLayout(FlowLayout.LEFT);创建面板时可指定布局管理器public class Panel extends Container implements Accessible public Panel()/默认FlowLayout布局 public Panel(LayoutManager layout)/layout指定布局管理器容器类提供添加

23、和移去组件的方法public Component add(Component comp)/在容器中添加一个组件public void add(Component comp,Object constraints)/用于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 菜单组件,J

24、ava2程序设计实用教程(第2版),6.4.1 Swing组件关系概述,Java2程序设计实用教程(第2版),6.4.2 窗口组件,public void setDefaultCloseOperation(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;/隐藏当前窗口,

25、释放窗口占用的其他资源 public static final int EXIT_ON_CLOSE=3;/结束程序运行jframe.setDefaultCloseOperation(EXIT_ON_CLOSE);/结束程序运行jdialog.setDefaultCloseOperation(HIDE_ON_CLOSE);/隐藏对话框而不结束程序运行,Java2程序设计实用教程(第2版),6.4.3 文本显示和编辑组件,文本区public class JTextArea extends JTextComponent public JTextArea()public JTextArea(Strin

26、g text)/参数text指定初始显示文本 public JTextArea(int rows,int columns)/rows、columns指定行数和列数 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)/设置文本行中的内容 publi

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

28、 class JCheckBox extends 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 t

29、ext)public JRadioButton(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 exte

30、nds JComponent 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 addAction

31、Listener(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程序设计实用教程(第2版),

32、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 void setListData(

33、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(final Object items)/组合框中的数据项由对象数组提

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

35、mponent 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 Accessible,MenuElement public JMenu()public JMenu(St

36、ring 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 JMenuItem()public JMenuItem(String text)/text指定菜单标题 p

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

38、c 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 public JRadioButtonMenuItem()public JRadioButtonMenuItem(String text)public

39、JRadioButtonMenuItem(String text,boolean selected)public JRadioButtonMenuItem(String text,Icon icon,boolean selected),Java2程序设计实用教程(第2版),6.快捷菜单,public class JPopupMenu extends JComponent implements Accessible,MenuElement public JPopupMenu()public JMenuItem add(JMenuItem menuItem)/添加菜单项 public void a

40、ddSeparator()/添加分隔线 public void show(Component invoker,int x,int y)/在(x,y)位置处显示快捷菜单,invoker指定快捷菜单所依附的组件组件类提供下列add()方法用于任何组件添加快捷菜单:public void add(PopupMenu popup)/添加快捷菜单,Java2程序设计实用教程(第2版),【例6.5】文本编辑器。,对话框采取关闭时隐藏方式使用窗口菜单使用快捷菜单使用字体类当字号值不合适时抛出异常throw new Exception(“SizeException”);/抛出异常对象catch(Excepti

41、on ex)if(ex.getMessage()=SizeException)/捕获自己抛出的异常对象,Java2程序设计实用教程(第2版),6.5 图形设计,6.5.1 绘图类6.5.2 在组件上绘图,Java2程序设计实用教程(第2版),6.5.1 绘图类,public abstract class Graphics extends Object public abstract Color getColor();/获取当前颜色 public abstract void setColor(Color c);/设置颜色 public abstract void drawLine(int x1,

42、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 width,int height);/填充矩形 public abstract void clearRect(int x,int y,int width,int height);/清除矩形/(x,y)指定矩形左上角坐标,width、height指定矩形的宽度和高度 public abstrac

43、t 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、height指定椭圆外切矩形的左上角坐标、长度和宽度。当width=height时,圆 public abstract void drawString(String str,int x,int y);/在(x,y)指定坐标位置显示字符串 public abstract Font getFont();/获得颜色 public

44、abstract void setFont(Font font);/设置颜色,Java2程序设计实用教程(第2版),6.5.2 在组件上绘图,组件绘图方法public void paint(Graphics g)/在组件上绘制图形public void repaint()/调用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备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号