版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Java程序設(shè)計第16章用戶界面開發(fā)學(xué)習(xí)目標(biāo)利用JFrame創(chuàng)建可定制的應(yīng)用程序主窗口理解組件和容器的差異,區(qū)別頂級容器和中間容器的作用能夠靈活應(yīng)用布局管理器組織界面如何向容器中添加和布局組件理解事件機制,掌握各類監(jiān)聽器的創(chuàng)建、注冊和處理掌握基本的圖形處理程序開發(fā)16.1.1從AWT到Swing抽象窗口工具包AWT(AbstractWindowToolkit)是Java類庫程序提供的建立圖形用戶界面GUI(GraphicsUserInterface)工具集,Swing類提供了GUI編程較為通用的部分,被統(tǒng)稱為JavaFoundationClasses(Java語言基礎(chǔ)類,簡稱JFC)。Swing采用了一種MVC的設(shè)計范式,即"模型-視圖-控制"(Model-View-Controller),其中模型用來保存內(nèi)容,視圖用來顯示內(nèi)容,控制器用來控制用戶輸入。16.1.2模型-視圖-控制體系
Swing勝過AWT的主要優(yōu)勢在于MVC體系結(jié)構(gòu)的普遍使用。在一個MVC用戶界面中,存在三個相互通信的對象:模型、視圖和控件。模型是指定的邏輯表示法視圖是模型的可視化表示法控件則指定了如何處理用戶輸入。當(dāng)模型發(fā)生改變時,它會通知所有依賴它的視圖,視圖使用控件指定其響應(yīng)機制。16.1.3創(chuàng)建第一個Swing窗口
publicclassFirstSwingApp{publicstaticvoidmain(String[]args){//創(chuàng)建一個頂層容器并設(shè)置其標(biāo)題為FirstSwingApp。JFrameframe=newJFrame("FirstSwingApp");frame.add(newJButton(“OK”));//向窗口中增加一個按鈕//設(shè)置窗口中右上角的關(guān)閉按鈕圖標(biāo)的缺省操作事件是關(guān)閉程序frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(600,400);//設(shè)置窗口對象的尺寸/讓窗口對象自行決定以最合適的方式顯示窗口,并不依賴前面的定義尺寸frame.pack();frame.setVisible(true);//最后,讓窗口對象可見}}圖16-1JFrame的繼承層次16.2容器和基本組件
組件(Component)代表一種可以顯示在屏幕上的圖形元素,也是一種能與用戶進行交互的Java對象,例如一個按鈕,一個標(biāo)簽等。組件不能獨立地顯示出來,必須將組件放在一定的容器中才可以顯示出來。容器(Container)容器類繼承于Component類,其本身及其子類可以容納其他組件對象Swing應(yīng)用程序的容器層次設(shè)計GUI時,都有用于放置可視化組件的主窗口。Container對象可用于將組件組合在一起。容器中的組件根據(jù)特定布局排列。Swing中的容器有兩類:-頂級容器-中間容器頂級容器JFrame:用于框架窗口的類,此窗口帶有邊框、標(biāo)題、用于關(guān)閉和最小化窗口的圖標(biāo)等。帶GUI的應(yīng)用程序通常至少使用一個框架窗口。JDialog:用于對話框的類。JApplet:用于使用Swing組件的JavaApplet的類。中間容器JPanel:最靈活、最常用的中間容器。JScrollPane:與JPanel類似,但還可在大的組件或可擴展組件周圍提供滾動條。JTabbedPane:包含多個組件,但一次只顯示一個組件。用戶可在組件之間方便地切換。JToolBar:按行或列排列一組組件(通常是按鈕)。Swing類結(jié)構(gòu)圖Swing有很多組件,這些組件從功能上分為以下幾類。頂層容器:JFrame,JApplet,JDialog,JWindow共4個。中間容器:JPanel,Box,JScrollPane,JSplitPane,JToolBar。特殊容器:在GUI上起特殊作用的中間層,如JInternalFrame,JLayeredPane,JRootPane?;究丶簩崿F(xiàn)人機交互的組件,如JButton,JComboBox,JList,JMenu,JSlider,
JTextField等。不可編輯信息的顯示:向用戶顯示不可編輯信息的組件,例如JLabel,JProgressBar,JToolTip等??删庉嬓畔⒌娘@示:向用戶顯示能被編輯的格式化信息的組件,如JColorChooser,JFileChoose,
JFileChooser,
JTable,
JTextArea等。16.2.1設(shè)計主窗口
可以作為容器的類很多,但是能夠作為頂級容器控制整個界面的只有JFrame等四個,而這4個頂級容器中,JApplet類主要開發(fā)用于在瀏覽器中的applet小程序JWindow它沒有標(biāo)題欄、窗口管理按鈕或者其他與JFrame關(guān)聯(lián)的修飾,并不適合做主窗口JFrame對象是用來代表應(yīng)用程序的主窗口的最佳選擇JDialog通常需要一個JFrame對象來構(gòu)造。16.1.3創(chuàng)建第一個Swing窗口
importjavax.swing.JFrame;publicclassMyFirstSwingAppextendsJFrame{publicMyFirstSwingApp(Stringtitle,intwidth,intheight){ super(title);//調(diào)用父類構(gòu)造方法,同時設(shè)置窗口標(biāo)題
//設(shè)置窗口的顯示尺寸
this.setSize(width,height); //設(shè)置窗口的關(guān)閉動作為關(guān)閉整個程序
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //一般在構(gòu)造方法中組織自己的主界面顯示}
SwingGUI框架你好,世界菜單欄頂級容器GUI組件GUI組件內(nèi)容窗格16.2.2添加組件到窗口
JFrame對象的getContentPane()方法返回一個對contentPane的引用JFrameJFrame組件用于在Swing程序中創(chuàng)建窗體,是放置其他Swing組件的頂級容器,它的構(gòu)造函數(shù):JFrame()JFrame(StringTitle)缺省的布局管理器是BoderLayout添加組件到內(nèi)容窗格,兩種方法,示例:frame.getContentPane().add(newJButton(“button”));frame.add(newJButton(“button”));JFrame包含一個JRootPane作為其惟一的子容器,用來管理其所有內(nèi)容,包括:內(nèi)容窗格菜單分層窗格玻璃窗格大部分情況下,我們只使用內(nèi)容窗格關(guān)閉FramesetDefaultCloseOperation(int
operation)設(shè)置用戶在此窗體上發(fā)起"close"時默認執(zhí)行的操作。必須指定以下選項之一:DO_NOTHING_ON_CLOSE(在WindowConstants中定義):不執(zhí)行任何操作;要求程序在已注冊的WindowListener對象的windowClosing方法中處理該操作。HIDE_ON_CLOSE(在WindowConstants中定義):調(diào)用任意已注冊的WindowListener對象后自動隱藏該窗體。DISPOSE_ON_CLOSE(在WindowConstants中定義):調(diào)用任意已注冊WindowListener的對象后自動隱藏并釋放該窗體。EXIT_ON_CLOSE(在JFrame中定義):使用Systemexit方法退出應(yīng)用程序。僅在應(yīng)用程序中使用。默認情況下,該值被設(shè)置為HIDE_ON_CLOSE。常用的JFrame方法voidadd(Componentc)voidsetJMenuBar(JMenuBarMenu)voidpack()voidremove(Componentc)voidsetIconImage(Iconimage)voidsetLayout(LayoutManagerlayout)voidsetSize(intwidth,intheight)16.2.3組件的基本功能顏色設(shè)置可以使用setBackground()方法和setForeground()來設(shè)置組件的背景色和前景色btnOK.setBackground(Color.BLUE);邊框設(shè)置使用setBorder()方法可以設(shè)置組件外圍的邊框btnOK.setBorder(BorderFactory.createLineBorder(Color.RED));雙緩沖區(qū)使用雙緩沖技術(shù)能改進頻繁變化的組件的顯示效果,如果想關(guān)閉雙緩沖區(qū),可以在組件上施加setDoubleBuffered(false)方法提示信息:使用setTooltipText()方法,為組件設(shè)置對用戶有幫助的提示信息btnOK.setToolTipText("Hi,這是一個按鈕");鍵盤導(dǎo)航:用setMnemonic()方法指定一個字符,通過這個字符和一個當(dāng)前L&F(LookandFeel,觀感)的無鼠標(biāo)修飾符(通常是Alt)共同激活按鈕動作btnOK.setMnemonic(KeyEvent.VK_O);可插入L&F:每個JComponent對象有一個相應(yīng)的ComponentUI對象,為它完成所有的繪畫、事件處理、決定尺寸大小等工作。ComponentUI對象依賴當(dāng)前使用的L&F,用UIManager.setLookAndFeel()方法可以設(shè)置需要的L&F。支持布局:通過設(shè)置組件最大、最小、推薦尺寸的方法和設(shè)置X、Y對齊參數(shù)值的方法能指定布局管理器的約束條件,為布局提供支持。16.2.4按鈕JButton
JButton類允許用圖標(biāo)、字符串或兩者同時構(gòu)造一個按鈕JButton()//創(chuàng)建不帶有設(shè)置文本或圖標(biāo)的按鈕。JButton(Iconicon)//創(chuàng)建一個帶圖標(biāo)的按鈕。JButton(Stringtext)//創(chuàng)建一個帶文本的按鈕。JButton(Stringtext,Iconicon)//創(chuàng)建一個帶初始文本和圖標(biāo)的按鈕。ImageIconbuttonIcon=newImageIcon("on.gif");JButtonbtnLogin=newJButton("登陸(L)",buttonIcon);btnLogin.setMnemonic(KeyEvent.VK_L);16.2.5標(biāo)簽JLabelJLabel對象可以顯示文本、圖像或同時顯示二者JLabelJLabel(IconimageJLabel(Iconimage,inthorizontalAlignment)JLabel(Stringtext)
JLabel(Stringtext,Iconicon,inthorizontalAlignment)JLabel(Stringtext,inthorizontalAlignment)aImageIconicon=newImageIcon("on.gif");JLabellblUser=newJLabel("用戶名",icon,SwingConstants.LEFT);SwingConstants中定義的以下常量:LEFT、CENTER、RIGHT、LEADING或TRAILING,定義了組件的對齊方式16.2.6文本組件單行文本輸入框JTextFieldJTextField()JTextField(Documentdoc,Stringtext,intcolumns)JTextField(intcolumns)JTextField(Stringtext)JTextField(Stringtext,intcolumns)其他主要方法publicStringgetText()//獲取組件包含的文本publicStringgetText(intoffs,intlen)//獲取組件包含的文本部分(有偏移量和長度決定)publicStringgetSelectedText()//返回此TextComponent中包含的選定文本多行純文本編輯框JTextAreaJTextArea()JTextArea(introws,intcolumns)JTextArea(Stringtext)JTextArea(Stringtext,introws,intcolumns)密碼輸入框JPasswordFieldJPasswordField()JPasswordField(intcolumns)JPasswordField(Stringtext)JPasswordField(Stringtext,intcolumns)設(shè)置輸入字符的回顯字符的方法是:publicvoidsetEchoChar(char
c)16.2.7選擇性輸入組件JCheckBox復(fù)選框是一個可以被選定和取消選定的項,它將其選擇狀態(tài)顯示給用戶。JCheckBox()JCheckBox(Iconicon)JCheckBox(Iconicon,booleanselected)JCheckBox(Stringtext)JCheckBox(Stringtext,booleanselected)JCheckBox(Stringtext,Iconicon)JCheckBox(Stringtext,Iconicon,booleanselected)判斷一個復(fù)選框是否被選中的方法是publicbooleanisSelected()JRadioButtonRadioButton實現(xiàn)一個單選按鈕,一般和ButtonGroup對象結(jié)合,實現(xiàn)多中選一的目標(biāo)。JRadioButtonrdb1=newJRadioButton("rdb1");JRadioButtonrdb2=newJRadioButton("rdb2");JRadioButtonrdb3=newJRadioButton("rdb3");//下面將三個按鈕加入到一個組中,而剩余兩個沒有加入ButtonGroupbg=newButtonGroup();bg.add(rdb1);bg.add(rdb2);bg.add(rdb3);JRadioButtonrdb4=newJRadioButton("rdb4");ButtonGroup只是對JRadioButton進行了邏輯分組,本身不是一個組件類16.2.8列表JListJList用來顯示對象列表并且允許用戶選擇一個或多個項的組件。單獨的模型ListModel維護列表的內(nèi)容。JList()JList(ListModeldataModel)JList(Object[]listData)JList(Vector<?>listData)String[]data={"one","two","three","four"};JListmyList=newJList(data);myList.setBorder(BorderFactory.createEtchedBorder());//設(shè)置myList的邊框設(shè)置選擇模式一個JList的默認選擇模式是任意選擇,通過調(diào)用對象的setSelectionMode方法可以修改選擇模式ListSelectionModel.SINGLE_INTERVAL_SELECTION:一次只能選擇一個連續(xù)間隔ListSelectionModel.MULTIPLE_INTERVAL_SELECTION:在此模式中,不存在對選擇的限制。此模式是默認設(shè)置。myList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);獲得選擇的數(shù)據(jù)publicintgetSelectedIndex();返回最小的選擇單元索引;選擇了多項時,則只返回最小的選擇索引。如果什么也沒有選擇,則返回
-1publicObjectgetSelectedValue();可以獲得所選的對象publicint[]getSelectedIndices();所選的全部索引(按升序排列);如果什么也沒有選擇,則返回一個空數(shù)組。publicObject[]getSelectedValues();返回所有選擇值的數(shù)組。利用ListSelectionModel管理選擇數(shù)據(jù)可以利用一個獨立的ListSelectionModel對象管理JList組件的當(dāng)前選擇狀態(tài),該對象顯示一個具有穩(wěn)定索引的值列表??梢杂孟旅娴姆椒ǖ玫竭@個選擇模型。publicListSelectionModelgetSelectionModel()利用ListModel設(shè)置和獲取JList對象的值ListModel接口定義了方法組件(如JList),這些組件用于獲取列表中每個單元格的值以及列表的長度publicvoidaddElement(Objectobj)//將指定組件添加到此類表的末尾publicvoidremoveElementAt(int
index)//刪除指定索引處的組件16.2.9表格JTableJTable用來顯示和編輯常規(guī)二維單元表,其構(gòu)造過程和基本功能類似于JList。16.2.10添加菜單到窗口菜單欄并不被添加到內(nèi)容窗格中,而是有自己的固定位置,因此,添加菜單到窗口有自己的方法。首先,創(chuàng)建一個JMenuBar菜單欄對象將創(chuàng)建的菜單JMenu對象按順序追加到JMenuBar對象中,而菜單項JMenuItem則一個個按順序追加到對應(yīng)的JMenu對象中,最后將JMenuBar對象設(shè)置為當(dāng)前窗口的菜單欄。JMenuBarmnubar=newJMenuBar();JMenumnuFirst=newJMenu("文件");
mnubar.add(mnuFirst);JMenuItemitmAdd=newJMenuItem("添加");
mnuFirst.add(itmAdd);mnuFirst.addSeparator();//增加菜單分隔符JMenuItemitmExit=newJMenuItem("退出(E)");mnuFirst.add(itmExit);itmExit.setMnemonic(KeyEvent.VK_E);itmExit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_DOWN_MASK));JMenumnuSecpmd=newJMenu("Help");mnubar.add(mnuSecpmd);//將mnuBar設(shè)置為當(dāng)前窗口的菜單欄對象this.setJMenuBar(mnubar);16.3布局管理器
程序16-1和前述其他程序運行的界面效果差別很大,16-1界面中的按鈕占滿了窗口,而其他程序則沒有,主要差別是其他程序在構(gòu)造方法中均有這么一行語句:this.setContentPane(newJPanel());決定組件在容器中排列方式的對象稱為布局管理器(LayoutManager)Swing程序采用布局管理器來管理組件的排放、位置、大小等布置任務(wù),能實現(xiàn)平臺無關(guān)的自動合理排列。Java提供了多種類型的布局管理器,如BorderLayout、FlowLayout、GridLayout、GridBagLayout、CardLayout等等,每種管理器都有著特殊的組件布局管理方式。16.3.1BorderLayout
邊界布局管理器BorderLayout將管理的容器分為東西南北中五個位置,并通過BorderLayout類中相應(yīng)的類常量進行標(biāo)識:NORTH、SOUTH、EAST、WEST、CENTER,可以重復(fù)添加組件到相同的位置,但前面的組件將被移走。16.3.2FlowLayout
FlowLayout布局方式是將組件一排一排地依次放置,它自動調(diào)用組件的getPreferredSize()方法,使用組件的最佳尺寸來顯示組件。當(dāng)容器被重新設(shè)置大小后,則布局也會隨之發(fā)生改變:各組件的大小不變,但相對位置會發(fā)生變化。它是JPanel的默認布局。構(gòu)造方法FlowLayout()//居中對齊,默認的水平和垂直間隙是5個單位。FlowLayout(intalign)//它具有指定的對齊方式(FlowLayout類聲明的三個類常量LEFT,RIGHT,CENTER),默認的水平和垂直間隙是5個單位。FlowLayout(intalign,inthgap,intvgap)//創(chuàng)建一個新的流布局管理器,它具有指定的對齊方式以及指定的水平和垂直間隙。16.3.3BoxLayout
BoxLayout允許垂直或水平布置多個組件的布局管理器。構(gòu)造方法:publicBoxLayout(Containertarget,intaxis)//創(chuàng)建一個水平排列組件的Box容器Boxhbox=Box.createHorizontalBox();//創(chuàng)建一個垂直排列組件的Box容器Boxvbox=Box.createVerticalBox();//將組件加入Box的容器中的方法如下面的語句:hbox.add(newJButton("button1"));hbox.add(newJButton("button2"));調(diào)整Box內(nèi)部組件間的間隔
用Box的類方法createRigidArea()在組件間添加空白hbox.add(newJButton("button1"));//追加一個按鈕到Box容器中hbox.add(Box.createRigidArea(newDimension(20,0)));hbox.add(newJButton("button2"));Box還可以用類方法createHorizontalGlue()創(chuàng)建自動占據(jù)剩余空間的水平透明組件(同樣還有垂直組件),如果有多個Glue組件,則它們平分一個方向上的剩余空間定義自己的尺寸。Box提供的第三類透明組件是Strut,它定義了在一個方向上具有固定尺寸的Strut16.3.4GridLayout
GridLayout布局方式可以使容器中的各組件呈網(wǎng)格狀分布。容器中各組件的高度和寬度相同,當(dāng)容器的尺寸發(fā)生變化時,各組件的相對位置不變,但各自的尺寸會發(fā)生變化。GridLayout的構(gòu)造方法如下:GridLayout()//創(chuàng)建具有默認值的網(wǎng)格布局,即每個組件占據(jù)一行一列。
GridLayout(introws,intcols)//創(chuàng)建具有指定行數(shù)和列數(shù)的網(wǎng)格布局。
GridLayout(introws,intcols,inthgap,intvgap)//創(chuàng)建具有指定行數(shù)和列數(shù)的網(wǎng)格布局,此外,將水平和垂直間距設(shè)置為指定值。16.4用中間容器組織界面元素
JFrame是用來創(chuàng)建主窗口的頂級容器,很多程序中,組件并不直接添加到JFrame容器中,而是通過用中間容器組織好界面的布局,最后再根據(jù)要求將不同的中間容器對象加入到主窗口中,從而可以實現(xiàn)復(fù)雜的界面變換。常用的中間容器有:JPanel:最靈活、最常用的中間容器,其默認的布局管理器是FlowLayout。Box:綜合利用其水平和垂直Box,可以方便的布局一個規(guī)整的組件顯示。JScrollPane:與JPanel類似,但還可在大的組件或可擴展組件周圍提供滾動條。常用構(gòu)造方法:JScrollPane(Componentc);16.4用中間容器組織界面元素
常用的中間容器有:JPanel:最靈活、最常用的中間容器,其默認的布局管理器是FlowLayout。Box:綜合利用其水平和垂直Box,可以方便的布局一個規(guī)整的組件顯示。JScrollPane:與JPanel類似,但還可在大的組件或可擴展組件周圍提供滾動條。常用構(gòu)造方法:JScrollPane(Componentc);JTabbedPane:包含多個組件,但一次只顯示一個組件。用戶可在組件之間方便地切換。JToolBar:按行或列排列一組組件(通常是按鈕)。JSplitPane:用于拆分窗口;16.5事件機制
開發(fā)Swing程序一般遵循這樣的步驟:根據(jù)需要創(chuàng)建不同的界面類添加合適的組件到對應(yīng)的界面類中為界面和界面中的組件添加必要的事件監(jiān)聽器,對諸如菜單選擇、點擊按鈕以及文本輸入之類的事件進行響應(yīng)。16.5.1事件處理過程
16.6.2主要事件類型
表16-2部分事件及監(jiān)聽器事件類型事件源組件類型監(jiān)聽器接口必須實現(xiàn)的方法ActionEventJButton,JCheckBox,JMenuIte,JMenu,JCheckBoxMenuItem,JTextField等ActionListenervoidactionPerformed(ActionEvente)ItemEventJButton,JCheckBox,JMenuItem,JMenu,JCheckBoxMenuItem,JTextField等ItemListenervoiditemStateChanged(ItemEvente)MouseEventJFrame,JPanel,JButton等容器類MouseListenerMouseMotionListenerMouseWheelListenervoidmouseClicked(MouseEvente)mousePressedmouseReleasedmouseDraggedmouseMovedmouseWheelMoved定義監(jiān)聽器importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;publicclassButtonListenerimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ //添加事件發(fā)生時的代碼
}}將監(jiān)聽器和事件源綁定JButtonbtnLogin=newJButton(“登錄”);ButtonListenerloginListener=newButtonListener();btnLogin.addActionListener(loginListener);//將監(jiān)聽器注冊到按鈕對象上16.6對話框
和利用中間容器組織界面不同,Java提供了一類特殊的窗口編程,就是對話框編程。對話框可以顯示在另一個窗口即父窗口的范圍內(nèi),使用對話框可以在不切換原有視圖內(nèi)容的情況下和用戶交互,例如簡單的輸入、操作確認等。16.7.1選項對話框
JOptionPane彈出要求用戶提供輸入值或向其發(fā)出通知的標(biāo)準(zhǔn)對話框。publicvoidactionPerformed(ActionEvente){ JOptionPane.showConfirmDialog(null, "您確認刪除這條信息嗎?","操作提示",JOptionPane.YES_NO_OPTION);}JOptionPane確認對話框showConfirmDialog信息告知對話框showMessageDialog選項對話框showOptionDialog只能在指定窗口內(nèi)移動的對話框showInternalXxxxDialog16.6.2文件對話框JFileChooser為用戶選擇文件提供了一種簡單的機制,通過它可以獲得用戶選擇的文件信息,如位置和文件名等,進而可以利用前面介紹的I/O編程的知識實現(xiàn)文件的處理。publicvoidactionPerformed(ActionEvente){JFileChooserchooser=newJFileChooser();//創(chuàng)建了一個文件名過濾器,文件類型參數(shù)是一個變長的參數(shù)類型FileNameExtensionFilterfilter=newFileNameExtensionFilter( "JPG&GIFImages","jpg","gif");chooser.setFileFilter(filter);//return保存了用戶選擇按鈕的情況intreturnVal=chooser.showOpenDialog(this);//利用getSelectedFile方法返回一個File對象表示用戶選中的文件if(returnVal==JFileChooser.APPROVE_OPTION){ System.out.println("被選擇的文件是:“ +chooser.getSelectedFile().getName());}}16.7.3自定義對話框
可以通過繼承JDialog創(chuàng)建一個自定義的對話框,滿足程序特定的需要。創(chuàng)建一個對話框重點需要確定以下幾個問題:滿足應(yīng)用需要的組件搭配和屏幕布局,這個過程和前面講述的窗口和容器的處理一致。如何向使用者返回必要的信息,包括用戶所需的結(jié)果和關(guān)閉對話框的方式等等。16.8圖形編程基礎(chǔ)
組件的顯示每個組件知道應(yīng)該如何顯示自己,這是因為每個組件都有一個paint的方法,當(dāng)組件需要顯示時,運行時環(huán)境
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業(yè)閥門原料采購合同樣本3篇
- 安徽非營利組織勞動合同樣本3篇
- 旅游代理合同范本版3篇
- 政府采購合同的信息技術(shù)應(yīng)用探討3篇
- 新版食品采購合同模板示例3篇
- 新版供熱協(xié)議合同3篇
- 教育培訓(xùn)行業(yè)教師合同3篇
- 工人雇傭條款3篇
- 招標(biāo)采購檔案卡3篇
- 數(shù)字液位計儀表采購合同3篇
- 光伏運維合同
- 急停開關(guān)使用培訓(xùn)課件
- 國家開放大學(xué)電大本科《水利水電工程建筑物》2024-2025期末試題及答案(試卷號:1175)
- 收購公司股份計劃書模板
- 蘇州市2023-2024學(xué)年高一上學(xué)期期末考試數(shù)學(xué)試題(原卷版)
- 涉密內(nèi)網(wǎng)分級保護設(shè)計方案
- 廣州市番禺區(qū)2023-2024學(xué)年八年級上學(xué)期期末數(shù)學(xué)測試卷(含答案)
- DL-T 5626-2021 20kV及以下配電網(wǎng)工程技術(shù)經(jīng)濟指標(biāo)編制導(dǎo)則
- 血液科病房的不良事件分析與防范措施探討
- 滅火戰(zhàn)術(shù)課件-滅火戰(zhàn)斗
- 總裁辦部門職責(zé)文件
評論
0/150
提交評論