版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 主編 賈振華 2010年1月 JAVA 編 程 技 術(shù)圖形用戶(hù)界面(GUI)設(shè)計(jì)第8章java.awt 包 抽象窗口工具集AWT(Abstract Window Toolkit),Java 最早的用于編寫(xiě)圖形節(jié)目應(yīng)用程序的開(kāi)發(fā)包,Java進(jìn)行GUI設(shè)計(jì)的基礎(chǔ)。javax.swing 包 Swing組件存放在javax.swing包中。幾乎所有AWT組件對(duì)應(yīng)有新功能更強(qiáng)的Swing組件。所以說(shuō)Swing是為了解決 AWT 存在的問(wèn)題而新開(kāi)發(fā)的包,它以 AWT 為基礎(chǔ),另外還加入了一些全新的組件。Swing組件在名稱(chēng)上前面多了一個(gè)字母“J” 。 JAVA GUI 包 和 簡(jiǎn) 單 GUI 程 序A
2、WT 是Abstract Window ToolKit (抽象窗口工具包)的縮寫(xiě),這個(gè)工具包提供了一套與本地圖形界面進(jìn)行交互的接口。AWT 中的圖形函數(shù)與操作系統(tǒng)所提供的圖形函數(shù)之間有著一一對(duì)應(yīng)的關(guān)系,我們把它稱(chēng)為peers。 也就是說(shuō),當(dāng)我們利用 AWT 來(lái)構(gòu)件圖形用戶(hù)界面的時(shí)候,我們實(shí)際上是在利用操作系統(tǒng)所提供的圖形庫(kù)。由于不同操作系統(tǒng)的圖形庫(kù)所提供的功能是不一樣的,在一個(gè)平臺(tái)上存在的功能在另外一個(gè)平臺(tái)上則可能不存在。為了實(shí)現(xiàn)Java語(yǔ)言所宣稱(chēng)的一次編譯,到處運(yùn)行的概念,AWT 不得不通過(guò)犧牲功能來(lái)實(shí)現(xiàn)其平臺(tái)無(wú)關(guān)性,也就是說(shuō),AWT 所提供的圖形功能是各種通用型操作系統(tǒng)所提供的圖形功能的交
3、集。由于AWT 是依靠本地方法來(lái)實(shí)現(xiàn)其功能的,我們通常把AWT控件稱(chēng)為重量級(jí)控件。 JAVA AWT 的 理 解Swing 是在AWT的基礎(chǔ)上構(gòu)建的一套新的圖形界面系統(tǒng),它提供了AWT 所能夠提供的所有功能,并且用純粹的Java代碼對(duì)AWT 的功能進(jìn)行了大幅度的擴(kuò)充。例如說(shuō)并不是所有的操作系統(tǒng)都提供了對(duì)樹(shù)形控件的支持, Swing 利用了AWT 中所提供的基本作圖方法對(duì)樹(shù)形控件進(jìn)行模擬。由于 Swing 控件是用100%的Java代碼來(lái)實(shí)現(xiàn)的,因此在一個(gè)平臺(tái)上設(shè)計(jì)的樹(shù)形控件可以在其他平臺(tái)上使用。由于在Swing 中沒(méi)有使用本地方法來(lái)實(shí)現(xiàn)圖形功能,我們通常把Swing控件稱(chēng)為輕量級(jí)控件。 JAV
4、A Swing 的 理 解AWT和Swing之間的基本區(qū)別:AWT 是基于本地方法的C/C+程序,其運(yùn)行速度比較快;Swing是基于AWT 的Java程序,其運(yùn)行速度比較慢。對(duì)于一個(gè)嵌入式應(yīng)用來(lái)說(shuō),目標(biāo)平臺(tái)的硬件資源往往非常有限,而應(yīng)用程序的運(yùn)行速度又是項(xiàng)目中至關(guān)重要的因素。在這種矛盾的情況下,簡(jiǎn)單而高效的AWT 當(dāng)然成了嵌入式Java的第一選擇。而在普通的基于PC或者是工作站的標(biāo)準(zhǔn)Java應(yīng)用中,硬件資源對(duì)應(yīng)用程序所造成的限制往往不是項(xiàng)目中的關(guān)鍵因素,所以在標(biāo)準(zhǔn)版的Java中則提倡使用Swing, 也就是通過(guò)犧牲速度來(lái)實(shí)現(xiàn)應(yīng)用程序的功能。 JAVA AWT 和 Swing 的 區(qū) 別 JAV
5、A AWT 和 Swing 的 關(guān) 系MVC即:Model(模型)、View(視圖)和Controller(控制)。這個(gè)模式認(rèn)為,程序不論簡(jiǎn)單或復(fù)雜,從結(jié)構(gòu)上看,都可以分成三層。 1)最上面的一層,是直接面向最終用戶(hù)的視圖層(View)。它是提供給用戶(hù)的操作界面,是程序的外殼。 2)最底下的一層,是核心的數(shù)據(jù)層(Model),也就是程序需要操作的數(shù)據(jù)或信息。 3)中間的一層,就是控制層(Controller),它負(fù)責(zé)根據(jù)用戶(hù)從視圖層輸入的指令,選取數(shù)據(jù)層中的數(shù)據(jù),然后對(duì)其進(jìn)行相應(yīng)的操作,產(chǎn)生最終結(jié)果。這三層是緊密聯(lián)系在一起的,但又是互相獨(dú)立的,每一層內(nèi)部的變化不影響其他層。每一層都對(duì)外提供接口
6、(Interface),供上面一層調(diào)用。這樣一來(lái),軟件就可以實(shí)現(xiàn)模塊化,修改外觀或者變更數(shù)據(jù)都不用修改其他層,大大方便了維護(hù)和升級(jí)。 JAVA 淺 談 MVC 模 式用Windows的計(jì)算器小程序?yàn)槔?,解釋一下MVC模式。在這個(gè)計(jì)算器程序中,外部的那些按鈕和最上面的顯示條,就是視圖層,那些需要運(yùn)算的數(shù)字就是數(shù)據(jù)層,執(zhí)行加減乘除的那些內(nèi)部運(yùn)算步驟就是控制層。每一層執(zhí)行不同的功能,整個(gè)程序的結(jié)構(gòu)非常清楚。我們擴(kuò)大一點(diǎn)想象會(huì)發(fā)現(xiàn),很多程序本質(zhì)上都是這種模式:對(duì)外提供一組觸發(fā)器( Windows的計(jì)算器中是按鈕),執(zhí)行一些內(nèi)部操作,最后返回結(jié)果。因此,MVC模式的應(yīng)用是非常廣泛的。 JAVA 淺 談
7、MVC 模 式j(luò)ava.awt包提供了基本的java程序的GUI設(shè)計(jì)工具。主要包括下述三個(gè)概念: 組件 - Component 容器 - Container 布局管理器 - LayoutManager JAVA GUI 設(shè) 計(jì) 工 具 JAVA 圖 形 化 設(shè) 計(jì) 步 驟第一步:創(chuàng)建頂層容器對(duì)應(yīng)于程序的初始顯現(xiàn)窗口,窗口中放入其它菜單、工具欄、文本框、按鈕等組件頂層容器圖形化界面顯示的基礎(chǔ),其它所有的組件(控件)都是直接或間接顯示在頂層容器中的。在java中頂層容器有三種,分別是JFrame(框架窗口,即通常的窗口)、JDialog(對(duì)話框)、JApplet(用于設(shè)計(jì)嵌入在網(wǎng)頁(yè)中的java小程
8、序)。頂層容器是容納其它組件的基礎(chǔ),即設(shè)計(jì)圖形化程序必須要有頂層容器。 JAVA 圖 形 化 設(shè) 計(jì) 步 驟 JAVA JFrame 框 架 窗 口 的 使 用 JAVA JFrame 框 架 窗 口 的 使 用 JAVA JFrame 框 架 窗 口 的 使 用第二步:創(chuàng)建中間容器、組件對(duì)應(yīng)于程序中出現(xiàn)的菜單、工具欄(中間容器)、文本框、按鈕、單選框、復(fù)選框等控件。有很多Swing組件可以使用,見(jiàn)后面的Swing UI組件表。 JAVA 圖 形 化 設(shè) 計(jì) 步 驟Java中間容器是可以包含其它相應(yīng)組件的容器,但是中間容器和組件一樣,不能單獨(dú)存在,必須依附于頂層容器。常見(jiàn)的中間容器有:JPan
9、el:最靈活、最常用的中間容器。JScrollPane:與 JPanel 類(lèi)似,但還可在大的組件或可擴(kuò)展組件周?chē)峁L動(dòng)條。JTabbedPane:包含多個(gè)組件,但一次只顯示一個(gè)組件。用戶(hù)可在組件之間方便地切換。JToolBar:按行或列排列一組組件。 JAVA 圖 形 化 設(shè) 計(jì) 步 驟第三步:將組件加入容器在java中創(chuàng)建組件后,還需要將組件放入相應(yīng)的容器,才能在頂層容器,如窗口中顯示出組件。第四步:設(shè)置容器內(nèi)組件的位置組件添加到容器中,還必須設(shè)置好組件的顯示位置,一般有兩種方法來(lái)設(shè)置組建的顯示位置,一是按照與容器的相對(duì)距離(以像素為單位),精確固定控件的位置;二是用布局管理器來(lái)管理組件在
10、容器內(nèi)的位置。 JAVA 圖 形 化 設(shè) 計(jì) 步 驟第五步:處理組件所產(chǎn)生的事件即用戶(hù)執(zhí)行選擇菜單、單擊按鈕等操作時(shí),就要執(zhí)行相應(yīng)的命令,進(jìn)行相關(guān)的程序處理,這就需要設(shè)置組件的事件。 JAVA 圖 形 化 設(shè) 計(jì) 步 驟 JAVA AWT 類(lèi) 的 層 次 結(jié) 構(gòu)在AWT類(lèi)層次結(jié)構(gòu)的頂部是Component類(lèi)。Component類(lèi)是一個(gè)封裝了一個(gè)可視組件的 所有屬性的抽象類(lèi)。在屏幕上顯示的所有用于用戶(hù)交互的用戶(hù)界面元素都是Component類(lèi) 的子類(lèi)。這個(gè)類(lèi)定義了一百多個(gè)用于事件管理的公共方法,這些事件包括鼠標(biāo)或鍵盤(pán)的輸 入,窗口位置或大小的改變以及重繪窗口。一個(gè)Component對(duì)象可以保存當(dāng)
11、前的前景色、背景色以及被選 擇的文本的字體。 JAVA 組 件(Component)Container類(lèi)是Component類(lèi)的子類(lèi)。這個(gè)類(lèi)有一些附加方法,允許別的Component對(duì)象 嵌套在Container類(lèi)的對(duì)象中。當(dāng)然,其他的Container對(duì)象可以被存放在一個(gè)Container對(duì)象中(因?yàn)樗鼈円彩荂omponent類(lèi)的實(shí)例)。這就形成了一個(gè)多層包容機(jī)制。容器主要負(fù)責(zé) 布置它所包含的組件的位置。而它是通過(guò)使用一些設(shè)計(jì)管理器來(lái)完成這個(gè)功能的。 JAVA 容 器(Container)Panel類(lèi)是Container類(lèi)的一個(gè)具體的子類(lèi)。它沒(méi)有添加任何新的方法;它只是簡(jiǎn)單的實(shí)現(xiàn)了Conta
12、iner類(lèi)。一個(gè)Panel對(duì)象可以被看作是一個(gè)遞歸嵌套的具體的屏幕組件。Panel類(lèi)是Applet類(lèi)的父類(lèi)。當(dāng)屏幕輸出直接傳遞給一個(gè)小應(yīng)用程序時(shí),它將在一個(gè)Panel對(duì)象的表面被畫(huà)出。實(shí)際上,一個(gè)Panel對(duì)象是一個(gè)不包含標(biāo)題欄、菜單欄以及邊框的窗口。這就是為什么在瀏覽器中運(yùn)行一個(gè)小應(yīng)用程序時(shí),你看不見(jiàn)標(biāo)題欄、菜單欄以及邊框的原因。而當(dāng)你用小應(yīng)用程序查看器來(lái)運(yùn)行一個(gè)小應(yīng)用程序時(shí),小應(yīng)用程序查看器提供了標(biāo)題和邊框。 JAVA 面 板(Panel)其它的組件可以通過(guò)調(diào)用Panel類(lèi)的add()方法被加入到一個(gè)Panel對(duì)象中,這個(gè)方法是從Container類(lèi)繼承來(lái)的。一旦這些組件被加入,那么通常就
13、可以通過(guò)調(diào)用在Component類(lèi)中定義了的setLocation(),setSize()以及setBounds()方法來(lái)改變組件的位置和大小。 JAVA 面 板(Panel)窗口類(lèi)產(chǎn)生一個(gè)頂級(jí)窗口(Window)。頂級(jí)窗口不包含在任何別的對(duì)象中,它直接出現(xiàn)在桌面上。通常,不會(huì)直接產(chǎn)生Window對(duì)象。相反,我們常常使用Window類(lèi)的子類(lèi),這就是Frame類(lèi)。 JAVA 窗 口(Window)Frame類(lèi)封裝了窗口通常所需要的一切組件,擁有標(biāo)題欄、菜單欄、邊框等等。我們經(jīng)常利用Frame類(lèi)在應(yīng)用程序中創(chuàng)建頂級(jí)或子窗口,在小應(yīng)用程序之中創(chuàng)建子窗口。如果你在一個(gè)小應(yīng)用程序中創(chuàng)建了一個(gè)Frame對(duì)
14、象,它將包含一個(gè)例如“JavaAppletWindow”的警告消息給用戶(hù),表示一個(gè)小應(yīng)用程序窗口已經(jīng)被創(chuàng)建。這個(gè)消息警告用戶(hù),所看見(jiàn)的窗口是由小應(yīng)用程序啟動(dòng)的,而不是被運(yùn)行在他們機(jī)器上的軟件所啟動(dòng)。 JAVA 框 架(Frame)雖然畫(huà)布不是小應(yīng)用程序和frame窗口的層次結(jié)構(gòu)的一部分,但是Canvas這種類(lèi)型的窗口是很有用的。Canvas類(lèi)封裝了一個(gè)你可以用來(lái)繪制的空白窗口。 JAVA 畫(huà) 布(Canvas)簡(jiǎn)單地說(shuō),通過(guò)創(chuàng)建一個(gè)frame類(lèi)的實(shí)例來(lái)就能創(chuàng)建一個(gè)窗口,但是可能很少會(huì)這樣做,因?yàn)閷?duì)于這樣的窗口沒(méi)有什么可以做的。例如,不能接受和處理在這個(gè)窗口中發(fā)生的事件或者不能簡(jiǎn)單的輸出信息給它
15、。大多數(shù)情況我們是創(chuàng)建一個(gè)frame類(lèi)的子類(lèi)。在小應(yīng)用程序中創(chuàng)建一個(gè)新的基于frame的窗口是很容易的。首先,創(chuàng)建一個(gè)frame類(lèi)的子類(lèi)。接下來(lái),重載任何一個(gè)標(biāo)準(zhǔn)窗口方法,比如init()方法,start()方法,stop()方法和paint()方法。最后,實(shí)現(xiàn)windowListener監(jiān)聽(tīng)器接口的windowClosing()方法,在這個(gè)方法中,當(dāng)窗口被關(guān)閉時(shí),調(diào)用setVisible(false)方法將窗口從屏幕中除去。 JAVA 創(chuàng) 建 窗 口Swing體系結(jié)構(gòu)最初Smalltalk系統(tǒng)的UI工具使用所謂的模型視圖控制(MVC)模式,MVC引入這樣一個(gè)概念:數(shù)據(jù)源應(yīng)該同屏幕展現(xiàn)分開(kāi)。這
16、是一個(gè)優(yōu)秀的體系設(shè)計(jì)結(jié)構(gòu),能促進(jìn)代碼重用和程序框架。Swing使用的是一個(gè)變體的MVC架構(gòu)。典型的Swing GUI組件包括至少三個(gè)對(duì)象:一個(gè)Component,一個(gè)Model和一個(gè)UI Delegate,在這個(gè)框架中,Model負(fù)責(zé)存儲(chǔ)數(shù)據(jù),UI Delegate負(fù)責(zé)從Model獲取數(shù)據(jù)并渲染到屏幕上去,Component通常協(xié)調(diào)Model和Delegate之間的操作,并同時(shí)負(fù)責(zé)將 Swing嵌入到AWT窗口系統(tǒng)中。注意,UI Delegate對(duì)象可以在運(yùn)行的時(shí)候動(dòng)態(tài)替換,這就使Swing具備了可插拔的外觀(Pluggable Look-And-Feel, PLAF)。 JAVA Swing
17、 體 系 結(jié) 構(gòu)Swing提供4個(gè)頂層容器JFrame, JDialog, JApplet,JWindow,如果是桌面應(yīng)用,則GUI必須要有一個(gè)JFrame,如果是瀏覽器應(yīng)用,則GUI必須要有一個(gè)JApplet。其他Swing組件,或自定義開(kāi)發(fā)的Swing組件都擴(kuò)展自 ponent,并且其實(shí)例要存在于頂層容器的層次樹(shù)中。 JAVA Swing 開(kāi) 發(fā) GUI 的 基 本 約 定 JAVA ponent(組件層次圖)與AWT組件不同,Swing組件不能直接添加到頂層容器中,它必須添加到一個(gè)與Swing頂層容器相關(guān)聯(lián)的內(nèi)容面板(content pane)上。內(nèi)容面板是頂層容器包含的一個(gè)普通容器,它
18、是一個(gè)輕量級(jí)組件。基本規(guī)則如下: (1)把Swing組件放入一個(gè)頂層Swing容器的內(nèi)容面板上 (2)避免使用非Swing的重量級(jí)組件。 JAVA 使 用 Swing 的 基 本 規(guī) 則 根面板由一個(gè)玻璃面板(glassPane)、一個(gè)內(nèi)容面板(contentPane)和一個(gè)可選擇的菜單條(JMenuBar)組成,而內(nèi)容面板和可選擇的菜單條放在同一分層。玻璃面板是完全透明的,缺省值為不可見(jiàn),為接收鼠標(biāo)事件和在所有組件上繪圖提供方便。根面板提供的方法: Container getContentPane(); /獲得內(nèi)容面板 setContentPane(Container); /設(shè)置內(nèi)容面 JM
19、enuBar getMenuBar( ); /活動(dòng)菜單條 setMenuBar(JMenuBar); /設(shè)置菜單條 JLayeredPane getLayeredPane(); /獲得分層面板 setLayeredPane(JLayeredPane); /設(shè)置分層面板 Component getGlassPane(); /獲得玻璃面板 setGlassPane(Component); /設(shè)置玻璃面板 JAVA 根 面 板面板(JPanel) 面板(JPanel)是一個(gè)輕量容器組件,用法與Panel相同,用于容納界面元素,以便在布局管理器的設(shè)置下可容納更多的組件,實(shí)現(xiàn)容器的嵌套。Jpanel,
20、JscrollPane, JsplitPane, JinteralFrame都屬于常用的中間容器,是輕量組件。Jpanel的缺省布局管理器是FlowLayout。分層面板(JLayeredPane) Swing提供兩種分層面板:JlayeredPane和JDesktopPane。 JDesktopPane是JLayeredPane的子類(lèi),專(zhuān)門(mén)為容納內(nèi)部框架(JInternalFrame)而設(shè)置。向一個(gè)分層面板種添加組件,需要說(shuō)明將其加入哪一層,指明組件在該層中的位置:add(Component c, Integer Layer, int position)。 JAVA 面 板 和 分 層 面
21、板用getContentPane( )方法獲得JFrame的內(nèi)容面板,再對(duì)其加入組件:frame.getContentPane().add( ponent)建立一個(gè)Jpanel或 JDesktopPane之類(lèi)的中間容器,把組件添加到容器中,用setContentPane()方法把該容器置為JFrame的內(nèi)容面板: Jpanel contentPane=new Jpanel( ); /把其它組件添加到Jpanel中; frame.setContentPane(contentPane); /把contentPane對(duì)象設(shè)置成為frame的內(nèi)容面板 JAVA Jframe 添加組件的兩種方式 Jav
22、a 最新的事件處理方法是基于授權(quán)事件模型 當(dāng)事件來(lái)源對(duì)象因用戶(hù)的操作(鼠標(biāo)或鍵盤(pán)),系統(tǒng)會(huì)自動(dòng)觸發(fā)此事件類(lèi)對(duì)象E,并通知所授權(quán)的事件監(jiān)聽(tīng)者A(若來(lái)源對(duì)象已向A注冊(cè)),事件監(jiān)聽(tīng)者A中有處理各種事件的方法(事件處理者1n)便會(huì)處理此事件E的各種狀況 。 JAVA 事 件 處 理 模 型事件類(lèi)說(shuō)明事件源ActionEvent 通常按下按鈕,雙擊列表項(xiàng)或選中一個(gè)菜單項(xiàng)時(shí),就會(huì)生成此事件。 Button、List、MenuItem、TextField AdjustmentEvent 操縱滾動(dòng)條時(shí)會(huì)生成此事件。 Scrollbar ComponentEvent 當(dāng)一個(gè)組件移動(dòng)、隱藏、調(diào)整大小或成為可見(jiàn)時(shí)會(huì)生成此事件。Component ItemEvent 單擊復(fù)選框或列表項(xiàng)時(shí),或者當(dāng)一個(gè)選擇框或一個(gè)可選菜單的項(xiàng)被選擇或取消時(shí)生成此事件。 Checkbox、CheckboxMenuItem、Choice、List FocusEvent 組件獲得或失去鍵盤(pán)焦點(diǎn)時(shí)會(huì)生成此事件。 Component JAVA 事 件 層 次 結(jié) 構(gòu)事件類(lèi)說(shuō)明事件源KeyEvent 接收到鍵盤(pán)輸入時(shí)會(huì)生成此事件。 Component MouseEvent 拖動(dòng)、移動(dòng)、單擊、按下或釋放鼠標(biāo)或在鼠標(biāo)進(jìn)入或退出一個(gè)組
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025廣告合作經(jīng)營(yíng)合同
- 商業(yè)計(jì)劃書(shū)撰寫(xiě)與助學(xué)貸款申請(qǐng)技巧
- 課題申報(bào)參考:流域與特殊地理區(qū)域生態(tài)環(huán)境保護(hù)法律問(wèn)題研究
- 科技醫(yī)療的發(fā)展趨勢(shì)及挑戰(zhàn)
- 未來(lái)工作趨勢(shì)與職業(yè)路徑規(guī)劃的思考
- 室內(nèi)模擬射擊與射箭場(chǎng)設(shè)備出租考核試卷
- 2025年新世紀(jì)版九年級(jí)歷史下冊(cè)階段測(cè)試試卷含答案
- 2025年湘師大新版八年級(jí)地理下冊(cè)月考試卷含答案
- 2025年新世紀(jì)版選修6歷史下冊(cè)月考試卷含答案
- 2025年人民版必修3歷史下冊(cè)月考試卷含答案
- 課題申報(bào)書(shū):GenAI賦能新質(zhì)人才培養(yǎng)的生成式學(xué)習(xí)設(shè)計(jì)研究
- 2024年江蘇省中醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 駱駝祥子-(一)-劇本
- 全國(guó)醫(yī)院數(shù)量統(tǒng)計(jì)
- 《中國(guó)香文化》課件
- 2024年醫(yī)美行業(yè)社媒平臺(tái)人群趨勢(shì)洞察報(bào)告-醫(yī)美行業(yè)觀察星秀傳媒
- 第六次全國(guó)幽門(mén)螺桿菌感染處理共識(shí)報(bào)告-
- 天津市2023-2024學(xué)年七年級(jí)上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 經(jīng)濟(jì)學(xué)的思維方式(第13版)
- 盤(pán)錦市重點(diǎn)中學(xué)2024年中考英語(yǔ)全真模擬試卷含答案
- 背景調(diào)查報(bào)告
評(píng)論
0/150
提交評(píng)論