




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第13章处理图形界面组件组件主讲:XXX复习提问
1、说出8种窗口组件。
2、框架和面板有什么不同?
3、FlowLayout是什么?有哪些主要特点?
本章提要主要知识点:JDK事件处理模型;事件监听器;事件适配器;AWT和swing主要组件学习目标:掌握AWT的功能,主要组件的应用方法,窗口的布局管理方法,窗口事件处理过程,能够运用AWT和swing组件设计图形用户界面
。13.1AWT事件处理过程13.1.1JDK事件处理模型事件处理模型:是指事件的处理过程。jdk1.1的事件模型将事件源(事件产生处的AWT组件)和监听器(对事件作出具体动作的实体)分开。将事件处理委托给外部的实体。一般情况下,AWT组件都不处理自己的事件,这种模型叫做事件的授权处理模型(DelegationModel)。
13.1AWT事件处理过程事件处理模型示例:importjava.awt.*;importjava.awt.event.*;publicclassTestButton{
publicstaticvoidmain(String
args[]){
Framef=newFrame("这是一个窗口");
Buttonb=newButton("请按这里!");
//向按钮注册事件监听器,监听ActionEvent事件。
b.addActionListener(new
ButtonHandler());
f.setLayout(new
FlowLayout());
f.add(b);
f.setSize(200,100);f.setVisible(true);}}classButtonHandlerimplementsActionListener{//定义事件监听器类
publicvoidactionPerformed(ActionEvente){//实现接口中的特定方法
System.out.println("您单击了按钮");}}
13.1AWT事件处理过程在该程序中,向按钮b注册事件监听器ButtonHandler的对象,把对按钮事件的处理集中到ButtonHandler类的对象中,这样可以把GUI的设计和事件处理代码有效的分开,实现模块化。在这里按钮是事件源(EventSource),ButtonHandler对象是监听器。当按钮被点击时,产生一个ActionEvent事件,把生成的事件对象传递给已经注册的监听ActionEvent类型事件的监听器ButtonHandler对象。该对象会自动调用其actionPerformed()方法处理该事件。
13.1AWT事件处理过程原则:当事件产生时,该事件被送到产生该事件的组件去处理,而要能够处理这个事件,该组件必须登记(register)有与该事件有关的一个或多个被称为listeners的类,这些类包含了相应的方法能接受事件并对事件进行处理。1、实现XXXListener接口的类生成的对象为事件监听器。其中XXX指的是事件的类型。在本例中为ActionListiner接口。实现这个接口的类的对象可以作为ActionEvent事件的监听器。一种类型的事件对应一种事件监听器。2、事件源通过调用自己的方法可以注册特定类型事件监听器。在本例中为addActionListener(ActionListener)。3、事件发生后,产生表示特定事件的事件对象,事件对象被传递给已经注册的事件监听器,调用监听器中的特定方法处理事件。在本例中ActionEvent事件对象被传递给事件监听器ButtonHandler对象,然后调用其中的actionPerformed()方法完成事件的处理。13.1AWT事件处理过程处理Java的GUI事件需要两步:1、定义特定事件的事件监听器(类),在其特定方法中编写处理事件的代码。2、向事件源注册事件监听器(add方法)。13.1AWT事件处理过程13.1.2事件监听器
每种事件的类型都有其自己的注册方法。一般形式为:publicvoidadd事件类型Listener(EvenTypeListenere)
13.1AWT事件处理过程13.1.2事件监听器
1、AWT的事件类型及其监听器(1)WindowEvent窗口事件引发原因是有关窗口操作引发的事件,其事件监听接口是WindowListener。接口方法(全部是抽象方法)包括7个,它们都必须实现。windowActivated(WindowEvent
e)//激活窗口windowClosed(WindowEvent
e)//关闭窗口后执行的动作windowClosing(WindowEvent
e)//利用窗口关闭框关闭窗口windowDeactivated(WindowEvent
e)//本窗口成为非活动窗口windowDeiconified(WindowEvent
e)//从最小化恢复为普通窗口windowIconified(WindowEvent
e)//窗口变为最小化图标windowOpened(WindowEvent
e)//当窗口首次打开成为可见时13.1AWT事件处理过程13.1.2事件监听器
WindowEvent窗口事件的接口适配器是WindowAdapter,注册窗口事件的方法是addWindowListener。实现关闭窗口的一般功能是:publicvoidwindowClosing(WindowEvente){System.exit(0);}13.1AWT事件处理过程(2)ActionEvent活动事件引发原因:单击按扭、双击列表框中选项、选择菜单项、文本框中的回车。事件监听接口:ActionListener接口方法:actionPerformed(ActionEvente)组件注册该事件方法:addActionListener(监听者)13.1AWT事件处理过程(3)TextEvent文本事件引发原因:文本框或文本区域内容改变事件监听接口:TextListener接口方法:textValueChanged(TextEvent
e)组件注册该事件方法:addTextListener(监听者)13.1AWT事件处理过程(4)ItemEvent选项事件引发原因:改变列表框中的选中项、改变复选框选中状态、改变下拉选单的选中项。事件监听接口:ItemListener接口方法:itemStateChanged(ItemEvent
e)组件注册该事件方法:addItemListener(监听者)13.1AWT事件处理过程(5)AdjustmentEvent调整事件引发原因:操作滚动条改变滑块位置事件监听接口:AdjustmentListener接口方法:adjustmentValueChanged(AdjustmentEvent
e)组件注册该事件方法:addAdjustmentListener(监听者)13.1AWT事件处理过程(6)KeyEvent键盘事件引发原因有三种:敲完键(KEY-TYPED)按下键(KEY-PRESSED)释放键(KEY-RELEASE)事件监听接口:KeyListener13.1AWT事件处理过程(6)KeyEvent键盘事件接口方法有三种:敲完键(KEY-TYPED)按下键(KEY-PRESSED)释放键(KEY-RELEASE)事件监听接口:KeyListenerkeyPressed(KeyEvent
e)//键已被按下时调用keyReleased(KeyEvent
e)//键已被释放时调用keyTyped(KeyEvent
e)//键已被敲完时调用KeyEvent方法:charch=e.getKeyChar();事件监听适配器(抽象类):KeyAdapter组件注册该事件方法:addKeyListener(监听者)13.1AWT事件处理过程(7)MouseEvent事件引发原因:鼠标作用在一个组件上。鼠标事件:鼠标键按下,鼠标键抬起,单击鼠标,鼠标光标进入一个组件,鼠标光标离开一个组件。鼠标移动事件:鼠标移动,鼠标拖动。13.1AWT事件处理过程(7)MouseEvent事件鼠标事件监听接口1:MouseListener//接受鼠标事件该接口方法包括三种:mouseClicked(MouseEvent
e)mouseEntered(MouseEvent
e)//鼠标光标进入一个组件mouseExited(MouseEvent
e)//鼠标光标离开一个组件鼠标事件监听适配器(抽象类):MouseAdapter。13.1AWT事件处理过程(7)MouseEvent事件鼠标事件监听接口2:MouseMotionListener//接受鼠标移动事件该接口方法:mouseMoved(MouseEvent
e)//鼠标光标在组件上移动mouseDragged(MouseEvent
e)//用鼠标拖动一个组件鼠标移动事件监听适配器MouseMotionAdapter组件注册鼠标事件方法:addMouseListener(监听者)组件注册鼠标移动事件方法:addMouseMotionListener(监听者)13.1AWT事件处理过程(7)MouseEvent事件MouseEvent方法:e.getClickCount()//=1单击=2双击Pointe.getPoint()//取鼠标光标位置int
e.getX()和int
e.getY()//取鼠标光标位置e.getModifiers()=e.BUTTON1_MASK//鼠标左键
=e.BUTTON3_MASK//鼠标右键13.1AWT事件处理过程(8)FocusEvent焦点事件引发原因:组件获得焦点组件失去焦点接口方法:focusGained(FocusEvent
e)//组件获得焦点时调用focusLost(FocusEvent
e)//组件失去焦点时调用事件监听接口:FocusListener注册方法:addFocusListener13.1AWT事件处理过程(9)ComponentEvent组件事件引发原因:当组件移动、改变大小、改变可见性时引发。事件监听接口:ComponentListener。接口方法:componentHidden(ComponentEvente)//组件隐藏componentMoved(ComponentEvent
e)//组件移动componentResized(ComponentEvent
e)//组件改变大小componentShown(ComponentEvent
e)//组件变为可见接口适配器:ComponentAdapter。组件注册该事件方法:addComponentListener。
13.1AWT事件处理过程(10)ContainerEvent容器事件引发原因:当容器内增加或移走组件时引发。事件监听接口:ContainerListener
主要接口方法是:componentAdded(ContainerEvent
e)//容器内加入组件componentRemoved(ContainerEvent
e)//从容器中移走组件接口适配器:ContainerAdapter。容器注册该事件方法:addContainerListener
13.1AWT事件处理过程例1:编程实现单击按钮发出声音。importjava.awt.*;importjava.awt.event.*;publicclassButtonSoundimplementsActionListener,WindowListener{//类ButtonSound同时实现两种监听器Framef;Buttonb;publicstaticvoidmain(String
args[]){ButtonSound
bs=newButtonSound();bs.go();}13.1AWT事件处理过程publicvoidgo(){f=newFrame("监听器使用实例");f.addWindowListener(this);//给框架注册窗口监听器b=newButton("点击这里发出声音");f.add(b);b.addActionListener(this);//给按钮注册活动事件监听器f.setVisible(true);f.setSize(300,200);}13.1AWT事件处理过程publicvoidactionPerformed(ActionEvente){Toolkit.getDefaultToolkit().beep();}//发声命令publicvoidwindowActivated(WindowEvente){}publicvoidwindowClosed(WindowEvente){}publicvoidwindowDeactivated(WindowEvente){}publicvoidwindowDeiconified(WindowEvente){}publicvoidwindowIconified(WindowEvente){}publicvoidwindowOpened(WindowEvente){}publicvoidwindowClosing(WindowEvente){System.exit(0);}}//主类结束13.1AWT事件处理过程13.1.3事件适配器
监听器中的抽象方法在程序中都必须实现才可以正常运行,即使内容为空也不能省略。为了简化代码编写,Java提供了一个叫做适配器的类。在适配类中系统自动实现了相应接口中的全部方法,但内容都是空。13.1AWT事件处理过程13.1AWT事件处理过程13.1.3事件适配器如:对于鼠标事件,在MouseListener接口中,声明了如下5个方法,需要逐一实现。MouseClicked(MouseEvent
e)MouseEntered(MouseEvent
e)MouseExited(MouseEvent
e)MouseReleased(MouseEvent
e)MousePressed(MouseEvent
e)
13.1AWT事件处理过程13.1.3事件适配器创建新类时,就不必再实现全部方法了,只要继承适当的适配器,并且覆盖所关心的事件处理方法即可如:对于MouseAdapter有如下定义----publicabstractclassMouseAdapterimplementsMouseListener{publicvoidmouseClicked(MouseEvente){}publicvoidmouseEntered(MouseEvente){}publicvoidmouseExited(MouseEvente){}publicvoidmouseReleased(MouseEvente){}publicvoidmousePressed(MouseEvente){}}13.1AWT事件处理过程13.1.3事件适配器例2:用适配器实现窗口的关闭。importjava.awt.*;importjava.awt.event.*;//以下同时注册适配器和监听器classButtonExampleextendsWindowAdapterimplementsActionListener{Framef;Buttonb;publicstaticvoidmain(Stringargs[]){
ButtonExamplebe=newButtonExample();be.init();}13.1AWT事件处理过程13.1.3事件适配器publicvoidinit(){f=newFrame("适配器例题");b=newButton("按这里有声音");
b.addActionListener(this);f.add(b,"South");
f.addWindowListener(this);f.setSize(300,300);f.setVisible(true);}13.1AWT事件处理过程13.1.3事件适配器publicvoidactionPerformed(ActionEvente){
Toolkit.getDefaultToolkit().beep();}publicvoidwindowClosing(WindowEvente){System.exit(0);}//只实现了一个抽象方法即可}13.2AWT基本组件13.2.1Label标签
1、构造方法Label()Label(String
labeltext)Label(String
labeltext,intalignment)13.2AWT基本组件
13.2.1Label标签2、常用方法publicint
getAlignment()publicStringgetText()publicvoidsetAlignment(intalignment)publicvoidsetText(Stringlabel)13.2AWT基本组件
例1:创建标签并显示内容importjava.awt.*;publicclassLabelDemo{publicstaticvoidmain(String
args[]){Framef;Labell1,l2,l3;f=newFrame("标签示例");
f.setLayout(newGridLayout(3,1,30,30));l1=newLabel("ThisisLabel1");l2=newLabel("ThisisLabel2");l3=newLabel("ThisisLabel3");f.add(l1);f.add(l2);f.add(l3);f.setSize(300,200);f.setVisible(true);}}13.2AWT基本组件
13.2.2Button按钮构造方法:publicButton();publicButton(Stringlabel);常用方法:publicStringgetLabel();publicvoidsetLabel(Stringlabel);
13.2AWT基本组件
例2:按钮应用--建立一个按钮Example,单击此按钮交替显示文本“您按下了奇数次按钮”和“您按下了偶数次按钮”
importjava.awt.*;importjava.awt.event.*;classButtonDemoextendsWindowAdapterimplementsActionListener{Framef;Buttonb;Labell;
intflag=0;13.2AWT基本组件
publicstaticvoidmain(String
args[]){
ButtonDemo
bt=newButtonDemo();
bt.init();}publicvoidinit(){f=newFrame("按钮例题");b=newButton("Example");
b.addActionListener(this);//this代表bt对象
f.add(b,"South");l=newLabel();
f.add(l,"North");
f.addWindowListener(this);f.setSize(300,300);f.setVisible(true);}13.2AWT基本组件
publicvoidactionPerformed(ActionEvente){Strings1="您按下了奇数次按钮";Strings2="您按下了偶数次按钮";if(flag==0){l.setText(s1);flag=1;}else{l.setText(s2);flag=0;}}publicvoidwindowClosing(WindowEvente){System.exit(0);}}思考题在例2的基础上,要放置2个按钮,并实现对两个按钮的监听,并输出相应的提示信息,该怎么改造?importjava.awt.*;importjava.awt.event.*;classButton2DemoextendsWindowAdapterimplementsActionListener{Framef;Buttonb1,b2;Labell;
intflag=0;publicstaticvoidmain(String
args[]){Button2Demobt=newButton2Demo();
bt.init();}publicvoidinit(){f=newFrame("按钮例题");
b1=newButton("button1");b1.addActionListener(this);b2=newButton("button2");b2.addActionListener(this);
f.add(b1,"South");
f.add(b2,"North");l=newLabel();
f.add(l,"Center");
f.addWindowListener(this);f.setSize(300,300);f.setVisible(true);}publicvoidactionPerformed(ActionEvente){Strings1="您按下了奇数次按钮";Strings2="您按下了偶数次按钮";if(e.getSource()==b1){s1+=",您当前按下的按钮是第1个";s2+=",您当前按下的按钮是第1个";}if(e.getSource()==b2){s1+=",您当前按下的按钮是第2个";s2+=",您当前按下的按钮是第2个";}if(flag==0){l.setText(s1);flag=1;}else{l.setText(s2);flag=0;}}publicvoidwindowClosing(WindowEvente){System.exit(0);}}13.2AWT基本组件
13.2.3Checkbox复选框
1、构造方法publicCheckbox()//无标签,初始为关publicCheckbox(Stringlabel)//有标签,初始为关publicCheckbox(String
label,booleanstate)publicCheckbox(Stringlabel,booleanstate,CheckboxGroupgroup)//构造具有指定标签的Checkbox,并将它设置为指定状态,使它处于指定复选框组中。13.2AWT基本组件2、主要方法addItemListener(ItemListenerl)
添加指定的项侦听器,以接收来自此复选框的项事件。getCheckboxGroup()
确定此复选框的组。getLabel()
获取此复选框的标签。
getState()
确定此复选框是处于“开”状态,还是处于“关”状态。removeItemListener(ItemListenerl)
移除此项侦听器,这样项侦听器将不再接收发自此复选框的项事件setCheckboxGroup(CheckboxGroupg)
将此复选框的组设置为指定复选框组。setLabel(Stringlabel)
将此复选框的标签设置为字符串setState(booleanstate)
将此复选框的状态设置为指定状态。13.2AWT基本组件例3:复选框综合应用,设计三个复选框,实现对它们的全部监听,并将各个复选框的选中状态显示在文本区域中。13.2AWT基本组件
13.2.4检查框组—单选按钮
创建单选按钮的方法是:publicCheckbox(String
s,CheckboxGroup
c,booleanstate);创建单选按钮的步骤:创建一个CheckboxGroup
对象再创建各单选按钮,并将此按钮放入检查框组13.2AWT基本组件
13.2.4检查框组—单选按钮
常用方法publicCheckboxGroup
getCheckboxGroup()//返回按钮所在的检查框组;publicStringgetLabel()//返回标签publicStringgetState()//选中状态publicvoidsetCheckboxGroup(CheckboxGroupg)//返回按钮所在的复选框组;publicvoidsetLabel(Stringlabel)//设置标签publicvoidsetState(booeanstate)//设置状态例4:单选框和复选框综合应用关键语句:监听器的使用检查框组的建立用户选项的获得13.2AWT基本组件
13.2.5Choice选择菜单框(下拉列表框)1、构造方法publicChoice()2、Choice选项框的常用方法publicvoidaddItem(Stringitem)publicint
countItem()publicStringgetItem(intindex)13.2AWT基本组件
13.2.5Choice选择框常用方法
publicint
setSelectIndex()publicint
getSelectItem()publicvoidselect(intpos)publicvoidselect(String
str)
例5:选择框综合应用importjava.awt.*;importjava.applet.Applet;importjava.awt.event.*;publicclassChoiceDemoextendsAppletimplementsItemListener{publicvoidinit(){Labell=newLabel("请选择您最喜欢的城市:");add(l);监听器接口:ItemListener注册监听器:addItemListner抽象方法:itemStateChanged单选框综合应用Choicec=newChoice();c.addItem("北京");c.addItem("上海");c.addItem("重庆");c.addItem("天津");c.addItem("武汉");c.addItem("沈阳");c.addItem("深圳");add(c);c.addItemListener(this);}publicvoid
itemStateChanged(ItemEvente){Stringcity="北京";//equals方法相当于等于=if(e.getItem().equals("上海"))city="上海";if(e.getItem().equals("重庆"))city="重庆";if(e.getItem().equals("天津"))city="天津";if(e.getItem().equals("武汉"))city="武汉";if(e.getItem().equals("沈阳"))city="沈阳";if(e.getItem().equals("深圳"))city="深圳";System.out.println("您最喜欢的城市是:"+city);}}单选框综合应用-用application实现importjava.awt.*;importjava.awt.event.*;publicclassChoiceApplicationextendsWindowAdapterimplementsItemListener{Framef=newFrame("Choice选择框");publicstaticvoidmain(String
args[]){ChoiceApplicationca=newChoiceApplication();ca.init();}publicvoidinit(){Labell1=newLabel("请选择您最喜欢的城市:");f.setSize(300,300);f.setVisible(true);f.add(l1,"North");Choicec=newChoice();c.addItem("北京");c.addItem("上海");c.addItem("重庆");c.addItem("天津");c.addItem("武汉");c.addItem("沈阳");c.addItem("深圳");f.add(c,"Center");c.addItemListener(this);//下面使用了匿名对象(无对象名)f.addWindowListener(new
WindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});}单选框综合应用-用application实现publicvoiditemStateChanged(ItemEvente){Stringcity="北京";if(e.getItem().equals("上海"))city="上海";if(e.getItem().equals("重庆"))city="重庆";if(e.getItem().equals("天津"))city="天津";if(e.getItem().equals("武汉"))city="武汉";if(e.getItem().equals("沈阳"))city="沈阳";if(e.getItem().equals("深圳"))city="深圳";Labell2=newLabel();f.add(l2,"South");l2.setText("您最喜欢的城市是:"+city);}}13.2AWT基本组件
13.2.6文本框TextField
1、构造方法publicTextField()publicTextField(Stringtext)publicTextField(intcolumns)publicTextField(Stringtext,intcolumns)
13.2AWT基本组件
13.2.6文本框TextField
2、常用方法publicvoidsetEchoChar(charc)publicvoidsetText(Stringt)3、文本框创建方法TextField
tf=newTextField("SingleLine",30);用户输入文本内容后,按回车键,引发ActionEvent事件,可用实现了ActionListener接口的类通过ActionPerformed()方法处理。13.2AWT基本组件
例6:建立一个界面,能输入用户名和口令。13.2AWT基本组件
13.2.7文本区域TextArea
构造方法:textArea()textArea(int
rows,intcols)textArea(Stringtext)textArea(Stringtext,int
rows,intcols)textArea(String
text,int
rows,int
cols,int
scrollbars)13.2AWT基本组件
13.2.7文本区域TextArea
scrollbars常量包括:SCROLLBARS_BOTH:同时显示水平方向和垂直方向的滚动条。SCROLLBARS_VERTICAL_ONLY:只显示垂直方向的滚动条。SCROLLBARS_HORIZONAL_ONLY:只显示水平方向的滚动条。SCROLLBARS_NONE:不显示滚动条。13.2AWT基本组件
13.2.7文本区域TextArea
常用方法publicvoidappend(String
str)//追加文字publicvoidinsert(String
str,intpos)//指定位置插入文字publicvoidsetText(String
str)//设置区域内容13.2AWT基本组件
13.2.7文本区域TextArea
publicint
getRows()//返回行数publicint
getColumns()//返回列数publicvoidsetRows(introws)//设置行数publicvoidsetColumns(intcols)//设置列数publicvoidsetEditable(booleanb)//设置区域的编辑状态监听器:TextListener注册监听器的方法:addTextListener要实现的抽象方法:textValueChanged(TextEvente)例7:制作如下界面:让文本区3显示文本区2中的内容13.2AWT基本组件
13.2.8List列表框1、构造方法publicList()publicList(introws)publicList(int
rows,boolean
isMultiMode)2、主要方法voidadd(Stringitem)13.2AWT基本组件
13.2.8List列表框3、接口处理选择某个选项,将引发ItemEvent事件,该事件需要由ItemListener接口中的itemStateChanged方法进行处理,双击选项时,引发ActionEvent事件,该事件需要由ActionListener接口中的actionPerformed()方法进行处理。13.2AWT基本组件
13.2.8List列表框的常用方法voidadd(Stringitem,intindex)voidadd(Stringitem,intindex)voidaddItem(Stringitem)voidaddItem(Stringitem,intindex)boolean
allowsMultipleSelections()voidclear()int
countItems()voiddelItem(intposition)vo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年河北承德平泉市公开招聘社区工作者97人模拟试卷及答案详解(名师系列)
- 2025年福建省泉州市华侨大学招标与采购管理中心招聘1人考前自测高频考点模拟试题及答案详解一套
- 2025年安徽省储备粮管理有限公司第一批次招聘1人模拟试卷及完整答案详解1套
- 2025年甘肃省民航机场集团校园招聘考前自测高频考点模拟试题及一套参考答案详解
- 2025年安庆医药高等专科学校面向校园招聘21人考前自测高频考点模拟试题及答案详解参考
- 2025年西安经开第七小学招聘数学教师考前自测高频考点模拟试题及1套参考答案详解
- 2025年安徽宿州萧县云水水务社会招聘9人模拟试卷完整参考答案详解
- 2025年射频识别(RFID)技术在工业互联网平台下的设备寿命评估与设备更新策略报告
- 2025年教育游戏化在特殊教育儿童心理辅导中提高学生适应能力的实践报告
- 2025年芜湖经开区招聘35人模拟试卷及答案详解一套
- 2025广东珠海市下半年市直机关事业单位招聘合同制职员37人考试参考试题及答案解析
- 软件开发驻场合同协议
- 音乐培训机构招生
- 生产成本控制及预算管理表格模板
- 动漫艺术概论考试卷子及答案
- 山东省青岛市即墨区实验学校2025-2026学年九年级上学期开学考试英语试题(含答案)
- 浙江省浙南名校联盟2025-2026学年高二上学期开学返校联考英语试卷(含音频)
- 知道智慧树林业工程前沿进展满分测试答案
- 2025年国企中层干部竞聘笔试题及答案
- 材料返款协议书
- 工程机械行业发展深度报告
评论
0/150
提交评论