《GUI用戶圖形界面》PPT課件.ppt

上傳人:w****2 文檔編號:14684469 上傳時間:2020-07-28 格式:PPT 頁數(shù):39 大小:215.50KB
收藏 版權(quán)申訴 舉報 下載
《GUI用戶圖形界面》PPT課件.ppt_第1頁
第1頁 / 共39頁
《GUI用戶圖形界面》PPT課件.ppt_第2頁
第2頁 / 共39頁
《GUI用戶圖形界面》PPT課件.ppt_第3頁
第3頁 / 共39頁

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《GUI用戶圖形界面》PPT課件.ppt》由會員分享,可在線閱讀,更多相關(guān)《《GUI用戶圖形界面》PPT課件.ppt(39頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、GUI用戶圖形界面,,GUI含義,全稱為:Graphical User Interface,用戶圖形界面,里面提供一些用來操作的窗口、菜單、按鈕、工具欄和其他屏幕元素。 Java 里有兩個包為GUI設(shè)計提供功能:AWT和Swing,AWT是早期版本,不能實現(xiàn)全部GUI設(shè)計功能,Swing對其進(jìn)行改進(jìn),不但包含原來所有的部件,還具有更加豐富的部件和功能,AWT為Swing的基礎(chǔ)。 注意import 語句引入。 例子:創(chuàng)建一個窗口對象,向里面添加組件。 演示TestFrame,,GUI中的眾多組件可以分為兩類: 基本組件:按鈕、文本框、復(fù)選框等,這些都是java.awt.Component類或者其

2、子類。 容器:是一種特殊的組件,能夠容納其他組件,如窗口、對話框等,這些是java.awt.Container類或者其子類。 Contain類是Component類的子類。 演示5秒鐘之后自動關(guān)閉窗口。,事件處理,當(dāng)用戶對組件進(jìn)行操作(例如拖動、按下按鈕等),這時就等于對應(yīng)用程序進(jìn)行各種操作。反過來,應(yīng)用程序也通過GUI來收集用戶對其的操作信息。 當(dāng)按下按鈕對象,屬于一個事件的發(fā)生,假如想要規(guī)定該事件發(fā)生會執(zhí)行某種功能,則要編寫相應(yīng)的事件代碼。,事件處理機(jī)制,事件:用戶對組件的一個操作。 事件源:發(fā)生事件的組件就是事件源。 事件處理器:負(fù)責(zé)處理事件的方法。 1、處理事件的方法是類中的成員方法,

3、在事件監(jiān)聽器中,監(jiān)聽器必須先與事件源相關(guān)聯(lián),這樣在事件發(fā)生后,監(jiān)聽器中的代碼才能執(zhí)行。 相關(guān)聯(lián)的這步叫做事件監(jiān)聽器的注冊。 2、外部動作作用到事件源。 3、事件源產(chǎn)生一個事件對象。對象中存在事件的信息 4、把事件對象傳遞給事件處理器,執(zhí)行代碼。,事件分類,按照產(chǎn)生事件的物理操作和GUI組件的表現(xiàn)效果可以分為: MouseEvent:該類對應(yīng)著鼠標(biāo)事件,鼠標(biāo)按下、點(diǎn)擊(按下后釋放) WindowsEvent:該類對應(yīng)窗口事件,包括點(diǎn)擊關(guān)閉按鈕,最小化最大化等。 ActionEvent:動作事件,并不代表一個具體動作,如按下按鈕,菜單被單擊等都可以看做該類事件。(可以理解為一個動作導(dǎo)致某個組

4、件本身最基本的作用發(fā)生了,這就是ActionEvent事件),事件監(jiān)聽器,一個事件監(jiān)聽器對象負(fù)責(zé)處理一類事件。 一類事件的每一種發(fā)生情況,分別有監(jiān)聽器對象中的一個方法來具體處理。 事件源和事件監(jiān)聽器對象中進(jìn)行約束的接口類被稱為事件監(jiān)聽器接口。 事件監(jiān)聽器接口類名稱與事件類名稱是相對應(yīng)的。(MouseEventMouseListener) 在監(jiān)聽器接口中有很多方法,例如鼠標(biāo)在組件中單擊等方法,里面接受一個鼠標(biāo)事件類的對象,假如想要在鼠標(biāo)事件對象產(chǎn)生后執(zhí)行某功能則可以定義一個類來實現(xiàn)鼠標(biāo)事件監(jiān)聽器接口中的某個方法,然后下面寫入實現(xiàn)功能的代碼,處理事件,例子:實現(xiàn)關(guān)閉窗口的事件處理。假如像上面一樣定

5、義一個窗口。讓其具有關(guān)閉窗口的功能。(這時注意對窗口關(guān)閉事件的代碼編寫) 注意: 1、怎樣實現(xiàn)窗口關(guān)閉的代碼,代碼該寫在哪里 2、怎樣把事件源(窗口)聯(lián)系到事件監(jiān)聽器(或者接口) 3、事件監(jiān)聽器的里面的代碼又是怎樣執(zhí)行把窗口關(guān)閉的過程 4、 要用到事件監(jiān)聽器就要用到事件監(jiān)聽器接口,里面必須把接口的方法(里面有對窗口關(guān)閉的方法)都給實現(xiàn),才能調(diào)用監(jiān)聽器接口中的代碼(要實現(xiàn)接口中的方法,全部),所以可以定義一個類,讓這個類實現(xiàn)接口中所有的方法,這樣就可以在接口的關(guān)閉窗口方法中來填寫實際的代碼來讓其執(zhí)行功能了! 演示窗口關(guān)閉,事件適配器,剛才的例子可以看出,要想要事件實現(xiàn)代碼,那么先要注冊事件監(jiān)聽器

6、,而且還有事件監(jiān)聽器接口與之相關(guān)聯(lián),那么實現(xiàn)功能的方法在事件監(jiān)聽器接口里.所以要定義一個類來實現(xiàn)事件監(jiān)聽器接口,這樣才實現(xiàn)功能代碼. JDK中提供了大多數(shù)事件監(jiān)聽器接口的最簡單的實現(xiàn)類,這些稱之為事件適配器(Adapter). 直接用事件適配器來處理事件,可以簡化事件監(jiān)聽器的編寫. 事件適配器是與事件監(jiān)聽器接口相對應(yīng)的,,假如再想實現(xiàn)事件監(jiān)聽器接口,那么可以定義一個類去繼承該接口對應(yīng)的事件適配器,這樣就可以實現(xiàn)接口了。 但是畢竟事件適配器只是簡單的實現(xiàn)接口,假如需要一些其他的方法中的代碼,那么可讓一個類不但繼承適配器類,同時再定義那些其他方法來把原來適配器的這些方法覆蓋掉,這樣就能改變原來適配

7、器定義的方法內(nèi)容了。,,上一個例子,點(diǎn)擊關(guān)閉按鈕就能退出. 注意:定義一個類必須要實現(xiàn)事件監(jiān)聽器接口中的所有方法,但是既然有了事件適配器,而且適配器正好實現(xiàn)了接口(Window)中的7個方法(里面雖然沒有代碼,但是也叫實現(xiàn)),所以這時可以把新定義的那個類讓其繼承適配器類,其他6個方法都不用改,直接覆蓋適配器類中那個windowClosing方法(在里面寫入讓其退出的方法就可以),,WindowAdapter,接收窗口事件的抽象適配器類。此類中的方法為空.此類存在的目的是方便創(chuàng)建偵聽器對象. 所以自定義一個類讓其繼承WindowAdapter類,那么假如只需要關(guān)閉代碼,那么其他六個方法都已經(jīng)繼承

8、,那么只需要改寫window Closing方法代碼就可以。 演示修改窗口關(guān)閉。(使用事件適配器),靈活設(shè)計事件監(jiān)聽器類(稍微復(fù)雜),在上一個例子:事件監(jiān)聽器類MyWindowListener與產(chǎn)生組件類TestFram是兩個不同的類,事件監(jiān)聽器類中要實現(xiàn)的代碼所訪問的對象正好是事件源。假如想讓監(jiān)聽器類中的代碼訪問非事件源的組件,如何實現(xiàn)? 思路:不用點(diǎn)擊窗口的關(guān)閉按鈕來關(guān)閉窗口(這時就不是觸發(fā)事件源本身的事件),而是通過添加一個按鈕組件,然后再通過點(diǎn)擊按鈕的事件來觸發(fā)窗口的關(guān)閉(注意:窗口和按鈕是兩個不同的組件),,思考問題: 1、事件是發(fā)生在按鈕組件上,但是退出代碼要體現(xiàn)在窗口的操作中,必

9、須要實現(xiàn)windowClosing方法,(注意:這時的事件發(fā)生的組件是按鈕,所以需要注冊的不再是Window的事件接口了,而是ActionListener) 2、假如按照上面思路,定義一個類來實現(xiàn)ActionListener接口,然后再實現(xiàn)里面退出窗口的按鈕可以不.,,演示靈活運(yùn)行事件監(jiān)聽器。 但是注意:這樣的代碼太亂,要想整齊點(diǎn),可以把生成按鈕,注冊按鈕對應(yīng)的事件監(jiān)聽器對象的代碼都放在一個方法里,然后讓TestFrame的對象調(diào)用這個方法. 演示靈活應(yīng)用事件監(jiān)聽器2,事件處理的多重運(yùn)用,用戶的一個操作,有可能觸發(fā)兩個事件的產(chǎn)生:例如,用戶用鼠標(biāo)按一個按鈕,既觸發(fā)了鼠標(biāo)事件,又觸發(fā)了按鈕本身被

10、點(diǎn)擊的事件。 所以設(shè)計思想為:程序應(yīng)該根據(jù)實際需要來編寫要實現(xiàn)的代碼,所以根據(jù)實際需要來處理其中的一個事件或者是兩個事件。想要處理兩個事件就得注冊兩個事件監(jiān)聽器對象。 一個組件一個動作可以產(chǎn)生多個不同類型的事件,所以它可以注冊多個不同類型的監(jiān)聽器。 一個事件監(jiān)聽器對象可以注冊到多個事件源上,等于不同的事件源發(fā)生的同一事件都由一個對象統(tǒng)一來處理。,,既要實現(xiàn)點(diǎn)擊按鈕會退出窗口,還要實現(xiàn)會打印出一句話. 所以在按鈕上就需要注冊兩個事件監(jiān)聽器對象,一個是處理鼠標(biāo)事件,另一個是處理按鈕的Action事件,所以處理兩個監(jiān)聽器接口,實現(xiàn)里面需要編寫代碼的方法。,GUI圖形操作,思考:假如想要在組件上進(jìn)行畫

11、圖、打印文字或顯示圖像等,組件本身是否提供該方法。(否) 假如想要做怎么辦,注意:組件提供一個getGraphics(),(從Component繼承)該方法返回一個包含該組件屏幕外觀信息的Graphics類對象,該類提供在組件繪制圖形,打印文字,顯示圖像等方法。 Graphics.drawLine(int x1,int y1,int x2, int y2):畫直線,已x1,y1坐標(biāo)開始,以x2,y2坐標(biāo)結(jié)束。 Graphics.drawString(String str,int x,int y):輸出一個矩形區(qū)域,里面包含String文本,矩形的左下角以(x,y)坐標(biāo)開始。,String文本,

12、,(x,y),應(yīng)用,想要在窗口中以鼠標(biāo)按下的位置作為起始點(diǎn),鼠標(biāo)釋放的位置作為終止點(diǎn),在把鼠標(biāo)釋放時將直線畫出,并在起始點(diǎn)和終止點(diǎn)打印出它們的坐標(biāo)值。 準(zhǔn)備:1、準(zhǔn)備好一個窗口作為畫板. 2、因為是用鼠標(biāo)點(diǎn)擊釋放來確定直線兩端的坐標(biāo)并畫直線,所以需要注冊鼠標(biāo)類的事件監(jiān)聽器! 3、drawline方法為在方法里輸入x,y坐標(biāo),然后以起始點(diǎn)和終點(diǎn)畫出直線,那么本程序要求的是以鼠標(biāo)按下和釋放時鼠標(biāo)所在的位置坐標(biāo)為起始和終點(diǎn),那么怎么把鼠標(biāo)按下和釋放時所在的坐標(biāo)給輸入到drawline方法里呢? 可以在鼠標(biāo)類監(jiān)聽器接口中實現(xiàn)鼠標(biāo)點(diǎn)擊和釋放的兩個方法:當(dāng)鼠標(biāo)點(diǎn)擊時,得到x,y坐標(biāo)作為起始點(diǎn),當(dāng)鼠標(biāo)釋放時

13、,得到這時的x,y坐標(biāo),然后把起始坐標(biāo)一起輸入到drawLine()的參數(shù)里,這樣,從兩個坐標(biāo)之間的直線就形成了! 演示簡單畫直線。,,寫入坐標(biāo)值可以調(diào)用Graphics中的drawString方法. 注意,因為在鼠標(biāo)釋放時會產(chǎn)生直線,并且會顯示出坐標(biāo)值,那么在鼠標(biāo)釋放方法里寫入如上的代碼. 演示畫坐標(biāo)直線,圖像操作,Component類:該類為GUI組件中共同父類,其為抽象類,里面定義的方法都為作為一個GUI組件所應(yīng)具備的基本功能.例如paint方法就為該類的方法,被其他具體組件類繼承.getToolkit方法等. 預(yù)備:paint(Graphics g):繪制此組件的方法,是compone

14、nt類的子類都有的方法 , 當(dāng)窗口從最大化,最小化狀態(tài)還原,或者被其他窗口覆蓋,或者自己在定制一些非標(biāo)準(zhǔn)的組件(非標(biāo)準(zhǔn)為不是系統(tǒng)自帶的組件),系統(tǒng)都會自動重畫標(biāo)準(zhǔn)組件的圖形圖象,而不會自動重畫組件上設(shè)計者自己定制的圖形.一般解決辦法為重寫paint. Graphics.drawImage(Image img,int x,int y) 繪制當(dāng)前可用的指定圖像的指定區(qū)域,其中img是要顯示的圖像對象, x,y是圖像顯示的左上角的坐標(biāo).,實例,想創(chuàng)建一個窗口,然后讓其顯示出一個圖像. 演示圖像操作1.,,注意:在處理空指針異常后,程序雖然能夠正常運(yùn)行,但是圖像并沒有正常顯示出來. 窗體在初始化時也會

15、被調(diào)用paint方法,這樣drawImage()繪制的圖像為非標(biāo)準(zhǔn)組件,所以被paint()擦除了. 在窗口顯示一個圖片,這個屬于自己去定制的圖片,而不是系統(tǒng)原有的標(biāo)準(zhǔn)組件,這時系統(tǒng)會自動調(diào)用paint()(僅此一次!),擦除自己定制的圖畫,只留下標(biāo)準(zhǔn)的組件, 要想繼續(xù)保留自己定制的圖片,必須重寫paint(),并且在里面寫入要畫圖片的方法代碼,這樣系統(tǒng)自動調(diào)用paint方法時就會實現(xiàn)里面顯示圖片的代碼. 解決辦法:重寫paint方法,并把插入圖片的代碼寫在paint()里面,這樣調(diào)用的時候會執(zhí)行插入圖片. 演示圖像操作完整.,Canvas類,該類是最簡單和最基本的GUI的組件,該類對象代表一

16、塊空白的矩形區(qū)域,程序可以在該區(qū)域進(jìn)行繪圖,還可以捕獲用戶的操作,并產(chǎn)生相應(yīng)的事件. Canvas的用法為:一般在用戶自己定制具有GUI功能的類時,可以讓該類繼承Canvas,這樣可以繼承Canvas所有功能,然后把其他功能和外觀設(shè)置所需的代碼增加就可以了. 注意:在繪制自定義部件外觀時,必須要覆蓋paint方法,否則又會被組件重繪.,Checkbox類,產(chǎn)生復(fù)選框和單選按鈕的類. 復(fù)選框:復(fù)選框按鈕可以處于選中或不選中的狀態(tài),它們之間沒有制約關(guān)系,可以同時選中多個. 單選按鈕:也可以處于選中或不選中狀態(tài),但是單選按鈕組只能選中一個按鈕. public Checkbox(Stringlabel

17、, booleanstate):該構(gòu)造函數(shù)創(chuàng)建的是一個復(fù)選框,label是復(fù)選框旁邊的說明文字,state是復(fù)選框是否默認(rèn)被選中. public Checkbox(Stringlabel, booleanstate,CheckboxGroup group):因為單選按鈕必須是成組出現(xiàn),所以在用該構(gòu)造函數(shù)創(chuàng)建單選按鈕組的時候就在后面加入所屬組的參數(shù),這個也表明創(chuàng)建的是單選按鈕組.CheckboxGroup類對象指定了所屬的組.,監(jiān)聽器注意事項,當(dāng)用戶選擇某個按鈕時會打印出不同的話 演示復(fù)選框和單選按鈕. 怎樣才能知道用戶選的是哪個按鈕,假如設(shè)計程序要求用戶在選中某個按鈕之后會產(chǎn)生一些功能,又該怎

18、樣去設(shè)置. 注意:在用戶選中某個按鈕時會出現(xiàn)事件,事件為ItemEvent,該監(jiān)聽器接口為ItemListener.所以要實現(xiàn)該接口里面唯一的方法:itemStateChanged(),然后可以在實現(xiàn)方法時加入一些要實現(xiàn)功能的代碼.,菜單,現(xiàn)實中常見的菜單. 組成:菜單條、菜單、菜單項 菜單條由頂層菜單組成,菜單項可以是普通菜單的下拉菜單的各項。 生成菜單條的類為:MenuBar,生成菜單的類為:Menu,(這里注意:可以把生成的菜單都加入到菜單條里).生成菜單項的類為:MenuItem.菜單項一般是最后的一級菜單.,建立菜單的常規(guī)方法:首先建立MenuBar對象,然后建立Menu對象,最后產(chǎn)

19、生MenuItem對象。 添加過程:先把MenuItem對象添加到Menu對象中,然后把Menu對象添加到MenuBar中,最后把MenuBar通過Frame窗口顯示出來. 注意:Menu對象可以增加到另一個Menu對象中不?因為Menu類是MenuItem的子類,所以可以作為一個菜單項增加到另外一個Menu對象中.,實際例子,設(shè)計一個菜單如右圖: 注意:File菜單下面又包含 菜單項New、Open、Save Quit,其中Quit為復(fù)選菜單. File菜單里又包含一個菜單, 為:print,其下級又有兩個菜單: Preview、setting. 演示:設(shè)計菜單.,菜單實現(xiàn)功能,單擊菜單項并

20、沒有反映,因為并沒有對ActionEvent事件進(jìn)行處理,假如要對print菜單里的兩個菜單項進(jìn)行動作處理,分別點(diǎn)擊兩個菜單項都會打印出不同的話. 因為點(diǎn)擊菜單項會觸發(fā)ActionEvent,所以定義一個類實現(xiàn)ActionListener就可以,并且要實現(xiàn)ActionListener里唯一的方法:actionPerformed方法,在里面寫入觸發(fā)菜單項事件所執(zhí)行的代碼 getActionCommend()返回與此動作相關(guān)的命令字符串,這樣可以返回菜單項中的字符串,然后比較并執(zhí)行代碼. 演示功能菜單.,布局管理器,假如在程序中,以前添加的都是一個按鈕,那么這個按鈕布滿全局,假如添加兩個按鈕會怎樣

21、? 演示簡單布局. 這時注意:只顯示一個按鈕,究竟是Frame類只支持一個按鈕? 其實是布局上出了問題,沒有安排好布局使得 對于Frame類來說,默認(rèn)的布局管理器是BorderLayout, BorderLayout把容器分成東、西、南、北、中5個區(qū)域,往窗口中添加組件的時候可以利用該默認(rèn)布局管理器進(jìn)行添加,在添加的時候?qū)懨魑恢?并且最多可以添加5個. 演示默認(rèn)布局管理器.,,注意: 1、所有按鈕添加進(jìn)去之后,調(diào)整大小,會發(fā)現(xiàn):北與南的按鈕高度是不變的,只能改變寬度.東與西按鈕寬度不變,只能改變高度.那么假如改變大小時剩下的用中間按鈕來填補(bǔ). 2、假如不在方位中寫明方向,那么默認(rèn)的加的是Cen

22、ter位置,假如刪除某一個方位的按鈕,那么剩下的位置就由中間的按鈕填補(bǔ). 3、假如中間的按鈕不定義,那么位置就為空,假如定義兩個按鈕但是不寫方位的時候,都默認(rèn)加到了中心位置,所以一個會把另一個給覆蓋.,FlowLayout類,流布局類定義布局風(fēng)格為:從左向右,從上到下的排列方式,假如第一行排不下,會自動換到下一行. 演示FlowLayout,GridLayout類,該類可以把容器劃分成平等的網(wǎng)格,無論你加入組件的大小如何,最后它都會平等的顯示在網(wǎng)格中. 通過GridLayout的構(gòu)造函數(shù)可以規(guī)定列數(shù)和行數(shù). 演示:GridLayout.,CardLayout,CardLayout類的布局管理器

23、可以實現(xiàn)將多個組件疊放在同一容器內(nèi),然后可以交替顯示.只能看見最上面的一個. 主要方法:API文檔中: 1、public void previous():翻轉(zhuǎn)到前一張卡片.里面的參數(shù)為要作用的容器. 2、public void next():翻轉(zhuǎn)到下一張. 3、public void first():翻轉(zhuǎn)到第一張. 4、public void show(Containerparent, Stringname) : 翻轉(zhuǎn)到指定name的卡片,Container為這些卡片所存儲的容器對象 不同的撲克牌疊放在一起,按動翻頁按鈕可以不斷的查看摞在下面的撲克牌.,實例,做一個如右圖的布局: 實現(xiàn):右邊疊

24、著五張卡片. 點(diǎn)擊prev就能夠翻到上 一張,點(diǎn)next翻下一張.點(diǎn) Three翻到第三張. 思考: 1、布局問題:不規(guī)則的布局怎么辦 2、按鈕問題,怎么點(diǎn)擊按鈕就會執(zhí)行翻轉(zhuǎn)到下一張卡片. 演示CardLayout.,,1、正好符合BorderLayout布局,只不過West部分有三個按鈕,所以這時可以先把這三個按鈕加到一個容器(Panel中),然后在把Panel加到West中. 2、右邊的那五張卡片也都放在一個容器Panel里,然后把Panel放在Center位置. 3、注冊Action事件監(jiān)聽器接口,實現(xiàn)方法代碼:假如按動prev則使得放在Center位置的容器顯示下一張按鈕(這時該容器應(yīng)

25、該已經(jīng)應(yīng)用了CardLayout),同樣的道理適用于next按鈕. 4、有些容器對象和其他對象需要定義成成員變量,這個在剛開始是看不出,但是在程序的編寫中,根據(jù)實際需要,自然就把有些變量定義成成員變量了.,Swing類,Sun公司在早期設(shè)計出java基礎(chǔ)類中的圖形用戶界面為AWT,后來在更新時,推出了第二代GUI開發(fā)工具集,其中圖形界面是Swing. 與AWT相比,Swing比其更完整.Swing引入了更多組件和特性,并且增強(qiáng)了原本AWT中組件的特性和功能. 原本AWT組件很多在Swing中前綴被加了J,成了Swing中被增強(qiáng)的組件. Swing包位于javax中. 例如:在定義按鈕中把Button類改成JButton.把Frame改成JFrame. 演示JButton.,,,

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!