java課件 第10章01 GUI程序設(shè)計(jì)與Applet(共十套)_第1頁(yè)
java課件 第10章01 GUI程序設(shè)計(jì)與Applet(共十套)_第2頁(yè)
java課件 第10章01 GUI程序設(shè)計(jì)與Applet(共十套)_第3頁(yè)
java課件 第10章01 GUI程序設(shè)計(jì)與Applet(共十套)_第4頁(yè)
java課件 第10章01 GUI程序設(shè)計(jì)與Applet(共十套)_第5頁(yè)
已閱讀5頁(yè),還剩56頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第10章GUI程序設(shè)計(jì)與Applet(一)主要內(nèi)容10.1GUI程序設(shè)計(jì)簡(jiǎn)介10.2基于Swing的界面設(shè)計(jì)10.3界面布局10.4Swing常用組件10.5Java的事件處理機(jī)制10.6鍵盤事件、鼠標(biāo)事件處理GUI程序可以帶給用戶一種更直觀、友好的界面;提供了用戶一種更友好的交互方式,用戶可以通過鼠標(biāo)點(diǎn)擊、拖動(dòng)、鍵盤控制等更靈活的方式進(jìn)行應(yīng)用操作。

10.1GUI程序設(shè)計(jì)簡(jiǎn)介GUI包和簡(jiǎn)單GUI程序1.java.awt包Java語(yǔ)言在java.awt包中提供了大量地進(jìn)行GUI設(shè)計(jì)所使用的類和接口,包括繪制圖形、設(shè)置字體和顏色、控制組件、處理事件等內(nèi)容,AWT是Java語(yǔ)言進(jìn)行GUI程序設(shè)計(jì)的基礎(chǔ)。2.javax.swing包Swing包是Java基礎(chǔ)類庫(kù)(JavaFoundationClasses,JFC)的一部分。Swing提供了從按鈕到可分拆面板和表格的所有組件。Swing組件是Java提供的第二代GUI設(shè)計(jì)工具包,它以AWT為基礎(chǔ),在AWT內(nèi)容的基礎(chǔ)上新增或改進(jìn)了一些GUI組件,使得GUI程序功能更強(qiáng)大,設(shè)計(jì)更容易、更方便。AWT組件和對(duì)應(yīng)的Swing組件,從名稱上很容易記憶和區(qū)別。例如,AWT的框架類、面板類、按鈕類和菜單類,被命名為Frame、Panel、Button和Menu,而Swing對(duì)應(yīng)的組件類被命名為JFrame、JPanel、JButton和JMenu。與AWT組件相比,Swing組件的名前多一個(gè)“J”。另外,AWT組件在java.awt包中,而Swing組件在javax.swing包中。GUI包和簡(jiǎn)單GUI程序一個(gè)簡(jiǎn)單的圖形用戶界面

在Java中,頂層窗口稱為框架。在AWT庫(kù)中,對(duì)應(yīng)于框架的類是Frame,在Swing庫(kù)中,相應(yīng)的類是JFrame。JFrame類擴(kuò)展了Frame類。框架是一個(gè)容器,我們可以在這個(gè)容器中放入其他一些圖形用戶界面組件,如按鈕、菜單等,從而組成一個(gè)功能完善的程序。

【例】顯示一個(gè)空框架importjavax.swing.*;

publicclassFirstFrame{ publicstaticvoidmain(String[]args) {

SimpleFrameframe=newSimpleFrame();

//設(shè)置用戶關(guān)閉框架時(shí)的響應(yīng)動(dòng)作

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//顯示該框架frame.setVisible(true); }}

classSimpleFrameextendsJFrame{ publicSimpleFrame() {

//設(shè)置框架大小

setSize(WIDTH,HEIGHT); } publicstaticfinalintWIDTH=300; publicstaticfinalintHEIGHT=200; }

一個(gè)簡(jiǎn)單的圖形用戶界面

主要內(nèi)容10.1GUI程序設(shè)計(jì)簡(jiǎn)介10.2基于Swing的界面設(shè)計(jì)10.3界面布局10.4Swing常用組件10.5Java的事件處理機(jī)制10.6鍵盤事件、鼠標(biāo)事件處理10.2JFrame的繼承結(jié)構(gòu)

JFrame類的繼承層次圖

java.lang.Object

java.awt.Component

java.awt.Container

java.awt.Window

java.awt.Frame

javax.swing.JFrame

類JFrameJFrame是帶有標(biāo)題、邊界、菜單的頂層windows窗口,JFrame的默認(rèn)布局為BorderLayout。對(duì)JFrame添加組件有兩種方式:

通過add()方法直接添加組件到JFrame使用getContentPane()方法獲得JFrame的內(nèi)容面板,再對(duì)其加入組件:frame.getContentPane().add(組件)類JFrame主要方法

getContentPane()返回此窗體的contentPane對(duì)象(內(nèi)容面板,組件要添加到此)getJMenuBar()

返回此窗體上設(shè)置的菜單欄。setIconImage(Image

image)設(shè)置要作為此窗口圖標(biāo)顯示的圖像。setJMenuBar(JMenuBar

menubar)設(shè)置此窗體的菜單欄。publicvoidsetBounds(inta,intb,intwidth,intheigth)publicvoidsetSize(intwidth,intheigth)publicvoidsetLocation(intx,inty)publicvoidsetVisible(booleanb)publicvoidsetResizable(booleanb)//是否允許調(diào)大小

類JFrame其它方法

【例】創(chuàng)建一個(gè)swing外觀的并居中的窗體importjavax.swing.*;importjava.awt.*;publicclassmainFrameextendsJFrame{publicmainFrame(StringsTitle,intiWidth,intiHeight){Dimensiondim=Toolkit.getDefaultToolkit().getScreenSize();//獲取屏幕尺寸

ImageIconii=newImageIcon("images/middle.gif");setTitle(sTitle);//設(shè)置窗體標(biāo)題

setIconImage(ii.getImage());//設(shè)置窗體的圖標(biāo)

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//設(shè)置關(guān)閉窗體時(shí)退出程序

功能增強(qiáng)的的圖形用戶界面

setSize(iWidth,iHeight);//設(shè)置窗體大小

intw=getSize().width;//獲取窗體寬度

inth=getSize().height;//獲取窗體高度

System.out.println("窗體寬:"+w+"窗體高:"+h);intx=(dim.width-w)/2;inty=(dim.height-h)/2;setLocation(x,y);//將窗體移到屏幕中間

setVisible(true);//顯示窗體

}publicstaticvoidmain(String[]args){//JFrame.setDefaultLookAndFeelDecorated(true);//使用最新SWING外觀mainFramemF=newmainFrame("mainFrameDemo",400,300);}}功能增強(qiáng)的的圖形用戶界面

setDefaultCloseOperation()方法的參數(shù)DO_NOTHING_ON_CLOSE:不執(zhí)行任何操作。HIDE_ON_CLOSE:調(diào)用后自動(dòng)隱藏該窗體。DISPOSE_ON_CLOSE:調(diào)用后自動(dòng)隱藏并關(guān)閉該窗體。EXIT_ON_CLOSE:使用Systemexit方法退出應(yīng)用程序。除JFrame外的其它頂層容器JDialog:和JFrame類似,只不過JDialog是用來設(shè)計(jì)對(duì)話框。JApplet:用來設(shè)計(jì)可以在嵌入在網(wǎng)頁(yè)中的Java小程序。JWindow:不帶修飾的窗體,無最大、最小按鈕和標(biāo)題欄功能增強(qiáng)的的圖形用戶界面

【例】在一個(gè)框架窗口中顯示兩個(gè)標(biāo)簽和一個(gè)按鈕:上面的標(biāo)簽顯示一串固定的文字信息,選擇按鈕后在下面的標(biāo)簽上顯示系統(tǒng)現(xiàn)在的時(shí)間。示例程序一個(gè)完整的JavaGUI程序(1)引入合適的包和類一般的SwingGUI程序應(yīng)包含三個(gè)import語(yǔ)句,分別表示引入awt包、awt.event包和swing包。(2)設(shè)置一個(gè)頂層的容器(3)根據(jù)需要,使用缺省的布局管理器或設(shè)置其它的布局管理器(5)定義組件并將它們添加到容器(6)對(duì)組件或事件編碼基于Swing的界面設(shè)計(jì)流程主要內(nèi)容10.1GUI程序設(shè)計(jì)簡(jiǎn)介10.2基于Swing的界面設(shè)計(jì)10.3界面布局10.4Swing常用組件10.5Java的事件處理機(jī)制10.6鍵盤事件、鼠標(biāo)事件處理10.3布局管理器在容器中所有組件的布局(位置和大?。┯刹季止芾砥鱽砜刂?。Java語(yǔ)言中提供了FlowLayout、BorderLayout、GridLayout、CardLayout和GridBagLayout等多種布局管理器。每種容器都有自己缺省的布局管理器,JFrame的缺省布局管理器是BorderLayout,如果不希望使用缺省的布局管理器,則可使用setLayout()方法來改變?nèi)笔〉牟季止芾砥?。FlowLayoutFlowLayout組件的放置規(guī)律是從上到下、從左到右進(jìn)行放置,如果當(dāng)前行已放置不下該組件,則放置到下一行的最左邊。

FlowLayout布局模式:

setLayout(new

FlowLayout());//默認(rèn)居中setLayout(newFlowLayout(FlowLayout.RIGHT));//右對(duì)齊BorderLayout

BorderLayout布局把界面分成5個(gè)區(qū)域:North,South,East,West和Center,每個(gè)區(qū)域只能放置一個(gè)組件。當(dāng)界面的大小發(fā)生變化時(shí),其變化規(guī)律為:組件的相對(duì)位置不變,大小發(fā)生變化。

BorderLayout布局示例public

class

BorderLayoutDemo

extendsJFrame{

publicBorderLayoutDemo(){

super("網(wǎng)格布局");

this.setSize(300,200);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setLayout(newBorderLayout());JButtonbtnEast=newJButton("東");JButtonbtnSouth=newJButton("南");JButtonbtnWest=newJButton("西");JButtonbtnNorth=newJButton("北");JButtonbtnCenter=newJButton("中");add(btnEast,BorderLayout.EAST);add(btnCenter,BorderLayout.CENTER);add(btnWest,BorderLayout.WEST);add(btnSouth,BorderLayout.SOUTH);add(btnNorth,BorderLayout.NORTH);}

public

static

voidmain(String[]args){BorderLayoutDemoBorderFrame=newBorderLayoutDemo();BorderFrame.setVisible(true);}}GridLayoutGridLayout布局管理器將整個(gè)界面劃分成N行,M列的網(wǎng)格,每個(gè)網(wǎng)格的大小相同。布局時(shí),按照組件加入的順序優(yōu)先考慮按行布局,當(dāng)一行布局滿之后再布局下一行Framef=newFrame("GridLayoutDemo");

f.setLayout(newGridLayout(2,3));

//容器平均分成2行3列共6格GridLayout布局模式 publicstaticvoidmain(String[]args) { ch52f=newch52(); ContainercontentPane=f.getContentPane();

contentPane.setLayout(newGridLayout(4,5)); for(inti=1;i<=4;i++) { for(intj=1;j<=5;j++) { contentPane.add(newJButton(i+"行"+j+"列")); } } f.setVisible(true); }}GridBagLayoutGridBagLayout同GridLayout一樣,在容器中以網(wǎng)格形式來管理組件,但GridBagLayout功能要來得強(qiáng)大得多。1、GridBagLayout管理的所有行和列都可以是大小不同的;2、GridLayout把每個(gè)組件限制到一個(gè)單元格,而GridBagLayout并不這樣:組件在容器中可以占據(jù)任意大小的矩形區(qū)域。GridBagLayout通常由一個(gè)專用類來對(duì)他布局行為進(jìn)行約束,該類叫GridBagConstraints。示例CardLayout將容器中的每個(gè)組件看作一張卡片。一次只能看到一張卡片,容器則充當(dāng)卡片的堆棧。當(dāng)容器第一次顯示時(shí),第一個(gè)添加到CardLayout對(duì)象的組件為可見組件。add(Component

comp):添加組件到容器first(Container

parent)翻轉(zhuǎn)到容器的第一張卡片。last(Container

parent)翻轉(zhuǎn)到容器的最后一張卡片。next(Container

parent)翻轉(zhuǎn)到容器的下一張卡片。previous(Container

parent)翻轉(zhuǎn)到前一張卡片。show(Container

parent,String

name)翻轉(zhuǎn)到具有指定name的組件。NULL布局控件指定位置顯示,利用如下方法輸出PublicvoidsetBounds(intx,inty,intwidth,intheight)即自行設(shè)定窗體和控件的大小和位置publicclassch9_54extendsJFrameimplementsActionListener{ JLabell1; JButtonb1; JTextFieldt1,t2,t3; publicch9_54(){ super("布局模式"); setBounds(20,20,500,300);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ContainercontentPane=getContentPane();

contentPane.setLayout(null); b1=newJButton("="); l1=newJLabel("+"); t1=newJTextField(20); t2=newJTextField(20); t3=newJTextField(20); t1.setForeground(Color.red); t1.setBackground(Color.cyan); t1.setBounds(20,100,100,40); contentPane.add(t1); NULL布局示例l1.setBounds(120,100,40,40); contentPane.add(l1); t2.setBounds(160,100,100,40); contentPane.add(t2); b1.setBounds(260,100,80,40); contentPane.add(b1); t3.setBounds(340,100,100,40); contentPane.add(t3); b1.addActionListener(this); setVisible(true); }publicstaticvoidmain(String[]args){ ch9_54f=newch9_54(); }publicvoidactionPerformed(ActionEvente) { //自行實(shí)現(xiàn)加法代碼

}}NULL布局示例主要內(nèi)容10.1GUI程序設(shè)計(jì)簡(jiǎn)介10.2基于Swing的界面設(shè)計(jì)10.3界面布局10.4Swing常用組件10.5Java的事件處理機(jī)制10.6鍵盤事件、鼠標(biāo)事件處理10.4Swing常用組件(1)頂層容器JFrame、JApplet、JDialog、JWindows(2)JPanel面板容器JPanel是一種添加到其他容器使用的容器組件,可將組件添加到JPanel,然后再將JPanel添加到某個(gè)容器。默認(rèn)是FlowLayout布局管理器有效的利用Panel可以使版面管理更為容易。參見P204例10.7(3)JTabbedPaneJTabbedPane繼承于javax.swing.JComponent,它是一組帶標(biāo)簽的面板,每個(gè)面板可以存放組件,因此JTabbedPane是一容器組件。addTab(String

title,Component

component)添加一個(gè)由title表示,且沒有圖標(biāo)的component。getSelectedIndex()返回當(dāng)前選擇的此選項(xiàng)卡窗格的索引。10.4Swing常用組件importjava.awt.BorderLayout;importjavax.swing.*;publicclassJtabTest{staticvoidaddIt(JTabbedPanetabbedPane,Stringtext){JLabellabel=newJLabel(text);JButtonbutton=newJButton(text);JPanelpanel=newJPanel();panel.add(label);panel.add(button);tabbedPane.addTab(text,panel);}JTabbedPane使用

publicstaticvoidmain(Stringargs[]){JFramef=newJFrame("JTabbedPaneSample");f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JTabbedPanetabbedPane=newJTabbedPane();addIt(tabbedPane,"TabOne");addIt(tabbedPane,"TabTwo");addIt(tabbedPane,"TabThree");f.add(tabbedPane,BorderLayout.CENTER);f.setSize(300,200);f.setVisible(true);}}(4)其它組件a)JLabelb)JButtonc)JTextFieldd)JTextAreae)JPasswordFieldf)JRadioButtong)JCheckButton

h)JSlider滾動(dòng)條i)JListJ)JFileChooserk)JScollBarl)JMenuBar,JMenu,JMenuItem,JCheckMeunItem,JRadioMenuItem,JPopupMenum)JOptionPane模式對(duì)話框10.4Swing常用組件Swing組件示例程序JFileChooser,JMenuBar案例JCheckBox,JRadioButton案例主要內(nèi)容10.1GUI程序設(shè)計(jì)簡(jiǎn)介10.2基于Swing的界面設(shè)計(jì)10.3界面布局10.4Swing常用組件10.5Java的事件處理機(jī)制10.6鍵盤事件、鼠標(biāo)事件處理10.5什么是事件Event(事件)事件,就是發(fā)生在用戶界面上的用戶交互行為所產(chǎn)生的一種效果。EventSource(事件源)產(chǎn)生事件的對(duì)象。Eventhandler/Listener(事件處理器)接收事件對(duì)象并對(duì)其進(jìn)行處理的方法。圖示說明importjava.awt.*;importjava.awt.event.*;publicclassTestButton{

publicstaticvoidmain(Stringargs[]) {Framef=newFrame("Test");Buttonb=newButton("PressMe!");b.addActionListener(newButtonHandler());f.setLayout(newFlowLayout());f.add(b); f.setSize(200,100);f.setVisible(true);}}事件處理示例classButtonHandlerimplementsActionListener{ publicvoidactionPerformed(ActionEvente) { System.out.println("Actionoccurred"); }}事件處理示例(1)對(duì)于某種類型的事件XXXEvent,定義相應(yīng)的事件監(jiān)聽器類,該類需要實(shí)現(xiàn)針對(duì)特定事件的特定接口XXXListener;例如:ActionEventActionListener(2)事件源中產(chǎn)生事件后,必須注冊(cè)相應(yīng)于該類事件的監(jiān)聽器,使用addXXXListener(XXXListener)來注冊(cè)監(jiān)聽器。(3)事件發(fā)生后,產(chǎn)生表示特定事件的事件對(duì)象,事件對(duì)象被傳遞給已經(jīng)注冊(cè)的事件監(jiān)聽器,調(diào)用監(jiān)聽器中的特定方法處理事件進(jìn)行事件處理的一般方法事件體系結(jié)構(gòu)FocusEventAWTEventActionEventAdjustmentEventComponentEventTextEventItemEventContainerEventInputEventWindowEventPaintEventKeyEventMouseEventEventObject事件類與對(duì)應(yīng)的監(jiān)聽器接口

事件類型接口名要實(shí)現(xiàn)方法ActionEventActionListeneractionPerformed(ActionEvent)ItemEventItemListeneritemStateChanged(ItemEvent)MouseEventMouseMotionListenermouseDragged(MouseEvent)mouseMoved(MouseEvent)MouseEventMouseListenermousePressed(MouseEvent)mouseReleased(MouseEvent)mouseEntered(MouseEvent)mouseExited(MouseEvent)KeyEventKeyListenerkeyPressed(KeyEvent)keyReleased(KeyEvent)keyTyped(KeyEvent)FocusEventFocusListenerfocusGained(FocusEvent)focusLost(FocusEvent)AdjustmentEventAdjustmentListeneradjustmentValueChanged(AdjustmentEvent)ComponentEventComponentListenercomponentMoved(ComponentEvent)componentHidden(ComponentEvent)componentResized(ComponentEvent)componentShown(ComponentEvent)事件類與對(duì)應(yīng)的監(jiān)聽器接口

WindowEventWindowListenerwindowClosing(WindowEvent)windowOpened(WindowEvent)windowIconified(WindowEvent)WindowDeiconified(WindowEvent)WindowClosed(WindowEvent)WindowActivated(WindowEvent)WindowDeactivated(WindowEvent)ContainerEventContainerListenercomponentAdded(ContainerEvent)ComponentRemoved(ContainerEvent)TextEventTextListenerTextValueChanged(TextEvent)事件類與對(duì)應(yīng)的監(jiān)聽器接口

事件處理方式事件處理中最關(guān)鍵的是通過addXXXListener(XXXListener)來注冊(cè)監(jiān)聽器,這可以通過三種方式實(shí)現(xiàn):(1)利用監(jiān)聽器類實(shí)現(xiàn)事件處理先定義監(jiān)聽器類,然后對(duì)要求發(fā)生動(dòng)作的組件再注冊(cè)到這個(gè)監(jiān)聽器類的對(duì)象中publicclass自定義監(jiān)聽類名implements事件監(jiān)聽器(或extends事件適配器){

……publicvoid監(jiān)聽器接口說明的方法1(){……}……publicvoid監(jiān)聽器接口說明的方法n(){……}}publicclass事件發(fā)生類名{…

組件.addXXXListener(new自定義監(jiān)聽類名());//注冊(cè)組件到監(jiān)聽器對(duì)象

…}示例程序通過監(jiān)聽器類實(shí)現(xiàn)事件監(jiān)聽通過implements實(shí)現(xiàn)事件監(jiān)聽接口的問題在于:每次必須實(shí)現(xiàn)該接口中所有方法,不論是否需要。事件適配器是實(shí)現(xiàn)了不同監(jiān)聽接口的類,它最主要的作用,就是可以簡(jiǎn)化監(jiān)聽器接口不必要的事件處理。比如,MouseListener接口有5個(gè)方法,如果在某應(yīng)用中只需要其中的一個(gè)方法,那么就可以定義一個(gè)事件適配器來實(shí)現(xiàn)這個(gè)特定的方法即可。通過事件適配器實(shí)現(xiàn)事件監(jiān)聽事件適配器(EventAdapters)事件適配器事件監(jiān)聽器ComponentListenerComponentAdapterContainerListenerContainerAdapterFocusListenerFocusAdapterKeyListenerKeyAdapterMouseListenerMouseAdapterMouseMotionListenerMouseMotionAdapterWindowFocusListenerWindowAdapter(2)利用內(nèi)部類實(shí)現(xiàn)事件處理這種方法就是將獨(dú)立的監(jiān)聽器類定義成事件發(fā)生類的內(nèi)部類。publicclass外部類{……組件.addXXXListener(new自定義監(jiān)聽類名());…class自定義監(jiān)聽類名extends事件適配器(或implements事件監(jiān)聽器){//定義內(nèi)部監(jiān)聽器類

……publicvoid監(jiān)聽器接口說明的方法1(){……}publicvoid監(jiān)聽器接口說明的方法n(){……}}//結(jié)束內(nèi)部類}}//結(jié)束外部類事件處理方式(3)利用匿名內(nèi)部類實(shí)現(xiàn)事件處理組件對(duì)象.addXXXListener(new事件監(jiān)聽器(){//定義匿名內(nèi)部類

publicvoid監(jiān)聽器接口說明的方法1(){……}publicvoid監(jiān)聽器接口說明的方法n(){……} });//結(jié)束匿名類定義事件處理方式利用匿名內(nèi)部類實(shí)現(xiàn)事件處理示例classMyPanelextendsPanel{

publicMyPanel(){

ButtonbButton=newButton("藍(lán)色");

add(bButton);bButton.addMouseListener(newMouseAdapter(){

publicvoidmouseClicked(MouseEventmevent){setBackground(Color.blue);repaint();

}

});}主要內(nèi)容10.1GUI程序設(shè)計(jì)簡(jiǎn)介10.2基于Swing的界面設(shè)計(jì)10.3界面布局10.4Swing常用組件10.5Java的事件處理機(jī)制10.6鍵盤事件、鼠標(biāo)事件處理在按下或釋放鍵盤上的一個(gè)鍵時(shí),將生成鍵盤事件。keyEvent

類包含用來表示按下或點(diǎn)擊的鍵的常量。生成keyEvent

時(shí)將調(diào)用keyListener。如果程序需要處理特殊的鍵,如方向鍵,需要通過調(diào)用keyPressed()方法來處理。鍵盤事件publicvoidkeypressed(keyEventk){intkeyCode=k.getKeyCode();if(keyCode==k.VK_RIGHT&&k.isShiftDown()){...}}檢測(cè)用戶是否按下了Shift+右箭頭鍵

鍵盤事件示例classMyPanelextendsPanel{publicMyPanel(){TextFieldtField=newTextField(20);add(tField);

MyKeyAdapterbAction=newMyKeyAdapter();tField.addKeyListener(bAction);}

privateclassMyKeyAdapterext

溫馨提示

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

評(píng)論

0/150

提交評(píng)論