Java应用程序开发 (15).pptxVIP

  • 3
  • 0
  • 约4.17千字
  • 约 44页
  • 2019-07-17 发布于辽宁
  • 举报
学习情境十五 一个综合的GUI应用程序 ;知识目标 理解什么是菜单,什么是下拉菜单,什么是弹出式菜单; 理解如何保存数量不定的对象; 理解什么是对象流; 理解什么是Swing组件。 能力目标 能够编写具有菜单的GUI应用程序; 能够使用ArrayList对象保存数量不定的对象; 能够使用对象流把对象保存到文件中,也能够从文件中读出对象; 能够使用常见的Swing组件。;情景再现与任务分析;图15-1 MyDraw程序;把MyDraw程序分成五个任务来实现;任务四、事件处理 MyDraw程序中必须实现鼠标事件(用于画图和弹出菜单),菜单事件(用于执行各种操作)和窗体事件(这是必须的,因为MyDraw程序有主窗体)。 任务五、弹出“关于”对话框 GUI程序一般也都有“关于”对话框。这个任务提供了Dialog类和Panel类的使用实例。因为在“学习情境十二”中并没有提供这两种容器的实例。;任务一 实现下拉菜单;1.菜单栏;2.菜单、子菜单;3.菜单项;1)MenuItem类;MenuItem类的主要方法有: public void addActionListener(ActionListener l) 给菜单项添加一个ActionListener监听器,参数l指定了监听器。 public void setEnabled(boolean b) 设置菜单的有效性,即,设置其变黑、变灰的状态,参数b指定了状态。 public void setLabel(String label) 设置菜单项的标签,参数label指定了标签。 public void setShortcut(MenuShortcut s) 设置菜单项的快捷方式,参数s指定了快捷方式。;2)CheckboxMenuItem类;CheckboxMenuItem类的主要方法有: public void addItemListener(ItemListener l) 给菜单项添加添加一个ItemListener监听器,参数l指定了监听器。 public boolean getState() 返回菜单项的勾选标志。 public void setState(boolean b) 设置菜单项的勾选标志,参数b指定了勾选标志。;4.给主窗体添加下拉菜单;【实现MyDraw(1)】创建MyDraw程序主窗体并添加上下拉菜单;任务二 实现弹出式菜单;PupupMenu类的构造方法: public PopupMenu() throws HeadlessException 创建一个不带标签的弹出式菜单。 public PopupMenu(String label) throws HeadlessException 创建一个带有标签的弹出式菜单,参数label指定了标签。 PupupMenu类的主要方法: public void show(Component origin, int x, int y) 从某个容器中弹出上下文菜???,弹出点相对于容器原点,参数origin指定弹出菜单的容器,x和y指定菜单的弹出位置。 ;与下拉式菜单一样,菜单项或子菜单也是通过Menu类对象的add()方法添加到弹出式菜单中,但是弹出式菜单必须通过主窗体(Frame类对象)的add()方法添加到主窗体中。 弹出式菜单必须由MouseEventListener监听器的mouseReleased()方法触发。 例如,MyDraw程序中代码片段: public void mouseReleased(MouseEvent arg0) { if( arg0.isPopupTrigger() ) { pMenu.show(MyDrawFrame.this, arg0.getX(), arg0.getY()); return; } //… } 其中,arg0.isPopupTrigger()方法表示弹出菜单的动作,一般指释放鼠标右键。;【实现MyDraw(2)】给MyDraw程序添加弹出式菜单;任务三 实现对象串行化;1.实现Serializable接口;2.对象流;1)ObjectOutputStream类;2)ObjectInputStream类;3.ArrayList类;ArrayList类的构造方法: public ArrayList() 创建一个空的列表对象,它的初始化长度为10。 public ArrayList(int initialCapacity) 创建一个空的列表对象,它的初始化长度由参数initialCapacity指定。 ArrayList类的常用的方法: public boolean add(E e) 把一个特定的元素添加到列表的后面。 public void clear() 清除列表中的所有元素。清除

文档评论(0)

1亿VIP精品文档

相关文档