分享
分销 收藏 举报 申诉 / 51
播放页_导航下方通栏广告

类型第9章(2)窗口菜单.ppt

  • 上传人:xrp****65
  • 文档编号:13222387
  • 上传时间:2026-02-05
  • 格式:PPT
  • 页数:51
  • 大小:416.50KB
  • 下载积分:10 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    窗口 菜单
    资源描述:
    单击此处编辑母版标题样式,单击此处编辑母版副标题样式,第9章 窗口和菜单,9.1 窗口,9.2 菜单,9.3,Swing,简介,习题,Java,的窗口由,Frame,类生成,遗憾的是它不具有关闭功能,必须要在程序中实现窗口事件监听接口并编写关闭窗口的代码才行。本节介绍了创建可关闭窗口的几种方法以及窗口的使用。,9.1 窗口,下面是一个应用程序,它弹出一个窗口,可以移动、改变大小、最大化、变成图标,并且可以关闭。,例9.1 方式1:创建一个可关闭的空白窗口,如图9.1所示。,图 9.1,import java.awt.*;,import java.awt.event.*;,9.1.1 创建可关闭窗口,class W1 extends Frame implements WindowListener,W1(),super(Window1);,setSize(350,200);,setVisible(true);,addWindowListener(this);,public void windowClosing(WindowEvent e),System.exit(0);,public void windowOpened(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(WindowEvent e),public static void main(String args),new W1();,main,方法只有一条语句,生成了,W1,的对象。在,W1,的构造方法中,调用父类的构造方法为窗口指定名称为,Window1,,然后指定窗口的宽度和高度分别为350和200,指定窗口可见,最后将窗口对象本身注册为事件监听器。这4条语句对于生成一个窗口来说都是必需的。,本例使用了正统的事件监听接口方式为窗口加入关闭方法。但如果仅仅为了增加窗口的关闭功能而采用这种方式则不是最好的选择,因为你必须要实现该接口中的所有抽象方法,不管它们是否用得上。,为窗口添加关闭功能可以有更简单的方式,通常是利用窗口事件适配器,将不需要的事件处理方法裁剪掉。,例9.2 方式2:创建一个可关闭的空白窗口。,import java.awt.*;,import java.awt.event.*;,public class W2 extends Frame,W2(),super(Window2);,setSize(350,200);,setVisible(true);,addWindowListener(new Win();,public static void main(String args),new W2();,9.1.2 窗口事件适配器,class Win extends WindowAdapter,public void windowClosing(WindowEvent e),System.exit(0);,方式2继承了一个窗口事件适配器类的子类,Win。,窗口事件适配器,WindowAdapter,是一个系统类,它实现了窗口事件监听接口,覆盖了窗口事件监听接口中定义的7个方法。适配器的作用实际上就是把接口变成一个类,这样你就可以随意使用类中的方法,不像接口要实现所有的方法。在例9.2的程序中只覆盖了一个,WindowClosing,方法,其他方法则不需再考虑。,窗口事件适配器是为方便程序员而专门设计的类。定义如下:,public abstract class WindowAdapter extends Object implements WindowListener,public WindowAdapter()/,构造方法,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(WindowEvent e)/,窗口失活时调用,从定义中可以看出,窗口事件适配器是一个抽象类,可接收窗口事件,其中的方法仅仅声明了返回值类型和参数类型。从这个类派生出来的子类可作为事件监听器,只需要为使用到的事件处理方法添加代码就可以了。由子类生成的对象具有事件监听功能,通过窗口的注册方法,addWindowListener,将这个对象注册给一个窗口,每当窗口事件发生时,就会被传递给监听对象来处理。,常用的事件适配器还有鼠标事件适配器,MouseAdapter,和,MouseMotionAdapter。,在,Java,中还有很多其他适配器,它们的原理都是相同的,用法也一样。这些事件适配器的出现,使程序员不用再为冗长的代码而发愁,编写程序更加简单,结构更加合理。,例9.3 方式3:创建一个可关闭的空白窗口。,import java.awt.*;,import java.awt.event.*;,public class W3,public static void main(String args),Frame f=new Frame(Window3);,f.setSize(350,200);,f.setVisible(true);,f.addWindowListener(new WindowAdapter(),public void windowClosing(WindowEvent e),System.exit(0);,);,9.1.3 匿名类,可以看出例9.3是最简单的一个程序,其功能和例9.1、例9.2一样。,在例9.3中使用了匿名类,所谓匿名类是指在声明一个类时不给它命名。,例9.3取消了例9.2中的,WindowAdapter,的子类,Win,的创建过程,直接将这个子类的声明定义,new WindowAdapter(),作为参数传递给了窗口对象的,addWindowListener,方法,并在方法的括号内实现了子类的继承和实例化,同时覆盖了,WindowAdapter,的,windowClosing,方法。这是匿名类的一种典型使用方式。,从程序结构来看,使用匿名类这种处理方式最简单。,事件与,Adapter,类,事件类,事件处理方法接口,Adapter,类,ActionEvent,ActionListener,无,AdjustmentEvent,AdjustmentListener,无,ComponentEvent,ComponentListener,ComponentAdapter,ContainerEvent,ContainerListener,ContainerAdapter,ItemEvent,ItemListener,无,KeyEvent,KeyListener,KeyAdapter,MouseEvent,MouseListener,MouseAdapter,MouseMotionListener,MouseMotionAdapter,TextEvent,TextListener,无,WindowEvent,WindowListener,WindowAdapte,例9.4 在窗口中添加按钮,单击“显示”按钮可以显示文字,单击“退出”按钮可关闭窗口,同时窗口右上角的关闭按钮也起同样作用,如图9.2所示。,图 9.2,9.1.4 在窗口中加入组件,import java.awt.*;,import java.awt.event.*;,public class W4 extends Frame implements ActionListener,Button btn1,btn2;,TextField f;,W4(),super(Window4);,addWindowListener(new WindowAdapter(),public void windowClosing(WindowEvent e),System.exit(0);,);,setSize(350,200);,btn1=new Button(,显示);,btn2=new Button(,退出);,f=new TextField(20);,setLayout(new FlowLayout();,add(f);,add(btn1);,add(btn2);,btn1.addActionListener(this);,btn2.addActionListener(this);,show();,public static void main(String args),new W4();,public void actionPerformed(ActionEvent e),f.setText(,你按下了“+,e.getActionCommand()+”,按钮);,if(e.getSource()=btn2),for(int i=0;i100000000;i+);,System.exit(0);,注意:,Frame,类是容器,因此可以添加组件。,show,方法或,setVisible,方法必须位于添加组件语句之后,否则组件显示不出来。,例9.5 设计一个多重窗口的程序,结果如图9.3所示。,import java.awt.*;,import java.awt.event.*;,public class W5 extends Frame implements ActionListener,Button btn;,W5(),super(Window5);,addWindowListener(new WindowAdapter(),public void windowClosing(WindowEvent e),System.exit(0);,);,setSize(350,200);,btn=new Button(,打开新窗口);,setLayout(new FlowLayout();,9.1.5 多重窗口,add(btn);,btn.addActionListener(this);,setLocation(200,100);,show();,public static void main(String args),new W5();,public void actionPerformed(ActionEvent e),new W5();,setLocation(getX()+20,getY()+20);,toFront();,图 9.3,多重窗口设计的关键是哪个组件的动作能显示出新窗口,本程序中,“打开新窗口”按钮就具备这个功能。单击该按钮后,将重复生成,W5,的新对象即窗口。如果想生成其他窗口,可在程序中另外定义一个类来生成不同的窗口。此外在下面介绍的菜单中,也可以用一个菜单项来生成多重窗口。,菜单是图形用户界面的重要组成部分,由菜单条(,MenuBar)、,菜单(,Menu)、,菜单项(,MenuItem),和复选菜单项(,CheckboxMenuItem),等对象组成。,9.2 菜单,例9.6 在窗口中添加菜单,如图9.4所示。,图 9.4,9.2.1 为窗口加入菜单,import java.awt.*;,import java.awt.event.*;,public class W6 extends Frame implements ActionListener,Panel p=new Panel();,Button btn=new Button(,退出);,MenuBar mb=new MenuBar();/,以下生成菜单组件对象,Menu m1=new Menu(,文件);,MenuItem open=new MenuItem(,打开);,MenuItem close=new MenuItem(,关闭);,MenuItem exit=new MenuItem(,退出);,Menu m2=new Menu(,编辑);,MenuItem copy=new MenuItem(,复制);,MenuItem cut=new MenuItem(,剪切);,MenuItem paste=new MenuItem(,粘贴);,Menu m3=new Menu(,帮助);,MenuItem content=new MenuItem(,目录);,MenuItem index=new MenuItem(,索引);,MenuItem about=new MenuItem(,关于);,W6(),super(Window6);,setSize(350,200);,add(South,p);,p.add(btn);,btn.addActionListener(this);,m1.add(open);/,将菜单项加入到菜单中,m1.add(close);,m1.addSeparator();/,将分隔条加入到菜单中,m1.add(exit);,exit.addActionListener(this);/,注册菜单项的事件监听器,mb.add(m1);/,将菜单加入到菜单条中,m2.add(copy);,m2.add(cut);,m2.add(paste);,mb.add(m2);,m3.add(content);,m3.add(index);,m3.addSeparator();,m3.add(about);,mb.add(m3);,setMenuBar(mb);/,显示菜单条,show();,public static void main(String args),new W6();,public void actionPerformed(ActionEvent e),if(e.getActionCommand()=,退出),System.exit(0);,菜单程序的设计很简单,首先生成菜单组件各个部分的对象,然后进行菜单组装。菜单组装是指把菜单加到菜单条上,把菜单项加到菜单中。除了文字菜单项外,还可以在菜单中加入分隔条。菜单项具有动作事件,可以响应键盘和鼠标点击事件。将动作事件监听器注册给菜单项,就可由监听者处理菜单事件。,如果在菜单中加入另外一个菜单的话,就会变成多级菜单。菜单项可以添加快捷键,以便快速打开。菜单项也可以设计成复选菜单项,即用,CheckboxMenuItem,生成菜单项对象。,9.2.2 菜单综合应用,例9.7 创建如图9.5所示的菜单综合应用。,图 9.5,import java.awt.*;,import java.awt.event.*;,public class W7 extends Frame implements ActionListener,ItemListener,TextField msg=new TextField();,MenuBar mb=new MenuBar();,Menu m1=new Menu(,菜单);,Menu m2=new Menu(,二级菜单);,MenuItem item=new MenuItem(,普通菜单项,new MenuShortcut(p);,CheckboxMenuItem checkbox=new CheckboxMenuItem(,复选菜单项);,MenuItem exit=new MenuItem(,退出);,W7(),setTitle(,菜单综合应用);,setSize(350,200);,add(msg);,mb.add(m1);,m1.add(m2);/,将二级菜单,m2,加入到,m1,中,checkbox.setState(true);/,设定复选菜单项为选中,m1.add(item);,m1.add(checkbox);,m1.addSeparator();,m1.add(exit);,m2.add(,菜单项);/为二级菜单,m2,加入菜单项,m2.add(,菜单项);,item.addActionListener(this);/,注册事件监听器,checkbox.addItemListener(this);,exit.addActionListener(this);,setMenuBar(mb);/,显示菜单,show();/,显示窗口,public void actionPerformed(ActionEvent e),if(e.getSource()=exit),System.exit(0);,else,msg.setText(e.getActionCommand()+,被打开);,public void itemStateChanged(ItemEvent e),if(e.getSource()=checkbox),if(checkbox.getState(),msg.setText(checkbox.getLabel()+,被选中);,else,msg.setText(checkbox.getLabel()+,被取消);,public static void main(String arg),new W7();,由于复选菜单项的功能区别于一般的菜单项,所以它提供了额外的方法,让用户来控制其状态。这些方法是,getState,和,setState,,前者取得该菜单项的状态,后者设置该菜单项的状态。,注意:普通菜单项相当于一个命令,而复选菜单项则不是命令。也就是说,它不产生动作事件,只产生状态改变事件。,弹出式菜单是一种非常方便的菜单工具,它平常依附在某个容器或组件上并不显现出来,当用户单击鼠标右键时它就会弹出来。,例9.8 弹出式菜单应用,如图9.6所示。,import java.awt.*;,import java.awt.event.*;,public class W8 extends Frame implements ActionListener,MouseListener,TextArea msg=new TextArea();,PopupMenu pm=new PopupMenu();,MenuItem item1=new MenuItem(,复制);,MenuItem item2=new MenuItem(,剪切);,MenuItem item3=new MenuItem(,粘贴);,9.2.3 弹出式菜单,W8(),setTitle(,弹出式菜单);,setSize(350,200);,addWindowListener(new WindowAdapter()/,注册窗口的事件监听器,public void windowClosing(WindowEvent e),System.exit(0);,);,add(msg);,msg.add(pm);/,将弹出式菜单加入到文本区中,pm.add(item1);,pm.add(item2);,pm.add(item3);,item1.addActionListener(this);,item2.addActionListener(this);,item3.addActionListener(this);,msg.addMouseListener(this);/,注册文本区的鼠标事件监听器,show();,public void actionPerformed(ActionEvent e),msg.append(,你选择了+,e.getActionCommand()+n);,public void mouseReleased(MouseEvent e),if(e.isPopupTrigger()/,判断是否单击鼠标右键,pm.show(this,e.getX(),e.getY();/,显示弹出式菜单,public void mouseClicked(MouseEvent e),public void mouseEntered(MouseEvent e),public void mouseExited(MouseEvent e),public void mousePressed(MouseEvent e),public static void main(String arg),new W8();,图 9.6,弹出式菜单由,PopupMenu,创建。程序中的弹出式菜单有3个菜单项,被加入到了文本区,msg,中。,W8,实现了动作事件监听接口和鼠标事件监听接口,因为文本区能产生鼠标事件,菜单项能产生动作事件,这两个事件都要处理。,当用户在文本区单击鼠标左键或右键时,就触发了一个,mousePressed,事件。由于在这个事件的处理方法中,只有当单击了鼠标右键才能使,isPopupTrigger,方法取真值,所以单击鼠标左键不会弹出菜单。如果不用分支结构的话,无论单击鼠标左键或右键都会弹出菜单。,isPopupTrigger,方法有3个参数,第一个是含有坐标系的对象,程序中用,this,来代表当前窗口对象。这里不能用,msg,,因为文本区没有坐标系。后两个参数是鼠标单击的,x,和,y,坐标,它们决定了弹出菜单的显示位置。,注意:在创建的窗口中不支持,Windows,系统中的复制、粘贴、剪切命令,但可直接将程序文件中的文字打印到窗口中。,在,Java,中,能够实现图形用户界面的类库有两个:,java.awt,和,javax.swing。,前者称为抽象窗口工具库(,Abstract Windows Toolkit,AWT),,从,JDK 1.1,开始提供,第8章和本章前面介绍的图形用户界面组件都是基于,AWT,的。后者是,Java,基础类库(,Java Foundation Classes,JFC),的一个组成部分,它提供了一套功能更强、数量更多、更美观的图形用户界面组件。,Swing,组件名称和,AWT,组件名称基本相同,但以,J,开头,例如,AWT,按钮类的名称是,Button,,在,Swing,中的名称则是,JButton。,9.3,Swing,简介,Swing,和,AWT,的最大差别在于,Swing,组件类不带本地代码,因此不受操作系统平台的限制,具有比,AWT,组件更强的功能。,Swing,按钮类和标签类除了显示文本标题外还可以显示图像标题。,可以为,Swing,容器加上边框。,Swing,组件能自动适应操作系统的外观,而,AWT,组件总是保持相同外观。,Swing,组件不一定非得是矩形的,可以把按钮设计成圆形。,可以调用,Swing,组件的方法改变其外观和行为。,需要注意的是不能在,Swing,的顶层容器如,JApplet、JFrame,中直接加入组件,例如,在,JApplet,中不能直接调用,add,方法加入组件,而应调用,JApplet,的,getContentPane,方法获得一个容器,再调用这个容器的,add,方法来加入组件。,例9.9 图像按钮与图像标签应用举例,结果如图9.7所示。,图 9.7,9.3.1,Swing,按钮与标签,import javax.swing.*;,import java.awt.*;,import java.awt.Color;,public class W11 extends JApplet,Container pane;,JPanel panel1,panel2;,JButton button1,button2,button3;,JLabel label;,public void init(),pane=getContentPane();,panel1=new JPanel(new FlowLayout();,panel2=new JPanel(new FlowLayout();,ImageIcon icon=new ImageIcon(PreviousArrow.gif,);,button1=new JButton(icon);,button2=new JButton(new ImageIcon(image/go.GIF);,button3=new JButton(new ImageIcon(NextArrow.gif);,label=new JLabel(,图像标签,new ImageIcon(Candl02.gif),SwingConstants.CENTER);,pane.setBackground(new Color(255,255,204);,panel1.setBackground(new Color(255,255,204);,panel2.setBackground(new Color(255,255,204);,button1.setToolTipText(,向上翻页按钮);,button2.setToolTipText(,跳转按钮);,button3.setToolTipText(,向下翻页按钮);,pane.add(panel1,BorderLayout.NORTH);,pane.add(panel2,BorderLayout.SOUTH);,panel1.add(button1);,panel1.add(button2);,panel1.add(button3);,panel2.add(label);,上例中使用了,Swing,的4个组件:,JApplet、JPanel、JButton、JLabel,,另外还用到了容器类,Container。,JApplet,需要自建容器以便把组件添加到容器对象中,默认布局为边界布局。程序首先定义了容器对象,pane,,并在,init,方法中调用,getContentPane,方法创建了这个容器对象,这样才能将其他组件加入到,JApplet,中。然后创建了2个面板对象并指定为顺序布局,创建了3个按钮对象并通过,ImageIcon,生成按钮图标。最后创建了一个既有文字又有图标的标签对象,指定标签位置在显示区的中心,文字紧跟在图标后面。,Swing,按钮除了可以显示图像外,还可以显示文字提示。程序调用了,setToolTipText,方法分别为每个按钮设定了文字提示,这样,当鼠标指向按钮时就会显示出文字提示。,在其他方面,如设定颜色、设定布局方式、添加组件以及组件事件响应等,,JApplet,和,Applet,没有大的差别。,其中使用的,gif,文件要事先准备好,如果放在与程序相同的路径下,可以直接引用,否则要注意添加路径。,Swing,中的工具栏是一个很有用的组件,它可以显示文字或图像按钮,把一些常用的操作命令提供给用户。例9.10介绍了如何创建工具栏并加入图像按钮。,9.3.2,Swing,工具栏,例9.10 工具栏与文本区应用示例,结果如图9.8所示。,import javax.swing.*;,import java.awt.*;,import java.awt.event.*;,public class W12 extends JFrame implements ActionListener,JButton button1,button2,button3;,JToolBar toolBar;,JTextArea textArea;,JScrollPane scrollPane;,JPanel panel;,public W12(),super(,工具栏按钮);,addWindowListener(new WindowAdapter(),public void windowClosing(WindowEvent e),System.exit(0);,);,button1=new JButton(new ImageIcon(left.gif);,button2=new JButton(new ImageIcon(go.gif);,button3=new JButton(new ImageIcon(right.gif);,button1.addActionListener(this);,button2.addActionListener(this);,button3.addActionListener(this);,toolBar=new JToolBar();,toolBar.add(button1);,toolBar.add(button2);,toolBar.add(button3);,textArea=new JTextArea(6,30);,scrollPane=new JScrollPane(textArea);,panel=new JPanel();,setContentPane(panel);,panel.setLayout(new BorderLayout();,panel.setPreferredSize(new Dimension(300,150);,panel.add(toolBar,BorderLayout.NORTH);,panel.add(scrollPane,BorderLayout.CENTER);,pack();,show();,public void actionPerformed(ActionEvent e),String s=;,if(e.getSource()=button1),s=,左按钮被单击,n;,else if(e.getSource()=button2),s=,中按钮被单击,n;,else if(e.getSource()=button3),s=,右按钮被单击,n;,textArea.append(s);,public static void main(String args),new W12();,图 9.8,例9.10是一个,Java,应用程序,使用了,Swing,的6个组件:,JFrame、JButton、JToolBar、JTextArea、JScrollPane、JPanel。,W12,的构造方法完成了大部分工作。首先创建3个按钮,指定相应的图像并注册事件监听器。然后创建了一个工具栏并将3个按钮添加进去。,Swing,中的文本区不能自动出现滚动框,常将它和,JScrollPane,连用,以,textArea,为参数创建滚动框对象。,和,JApplet,一样,,JFrame,也是顶层容器,因此程序创建了一个,JPanel,对象作为基本容器来包容其他组件,并通过,setContentPane,方法将该对象指定为,JFrame,的基本容器。,JPanel,的,setPreferredSize,方法可将面板区域设定为更合适的大小,使文本区自动出现滚动框。另外,,pack,方法也是必不可少的,它使得窗口按照组件的大小来调整自身的大小。,actionPerformed,方法是对工具栏按钮单击事件的响应,单击按钮后,对应的字符串将显示在文本区中。,9-1 创建一个窗口对象时要注意什么?使用最简洁的方法创建一个可关闭的窗口。,9-2 模仿例9.2将例8.18使用,MouseHandler,和,MouseMotionHandler,事件适配器来实现。,9-3 向窗口添加菜单有哪几个步骤?设计一个有“退出”命令的菜单并添加到窗口。,9-4 创建一个窗口,要求有“退出”按钮、菜单“退出”命令,同时窗口本身的关闭按钮也起作用。,习题,9-5 如何为菜单添加分隔线?如何创建复选菜单项?如何创建多级菜单?,9-6 创建一个带有多级菜单和复选框菜单的窗口,并在菜单中加入分隔线。,9-7 创建一个窗口,单击“提示”按钮可出现一个写有“你好!”文字的对话框。,9-8 将第9-7题按,Swing,特性改写。,
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:第9章(2)窗口菜单.ppt
    链接地址:https://www.zixin.com.cn/doc/13222387.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork