版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1.組件概述GUI:GraphicsUserInterface設計和實現(xiàn)GUI的主要難點創(chuàng)建組成界面的各成分和元素,指定它們的屬性和位置關系,根據(jù)具體需要布局排列,從而構成完整的GUI的外觀表象;在GUI程序中,代碼所執(zhí)行的路線及順序都是很不確定的。在GUI程序中,用戶可以點擊任意按鍵并和屏幕上的其他任何部分進行交互及信息傳遞——即事件驅(qū)動。Java提供了大量支持GUI設計的類。AWT(AbstractWindowTookit)包Button、Label、TextField、CheckBox…Swing包JButton、JLabel、JTextField、JCheckBox…Swing和AWT對Java運行的每一個平臺,AWT的組件自動的通過它們各自的代理映射成特定平臺的組件,這些代理稱為同位體(peer)。AWT組件的設計原理是把與顯示組件有關的許多工作和處理組件事件的工作交給相應的本地組件,因此非常依賴底層平臺;AWT適用于開發(fā)簡單的GUI,但不適于開發(fā)復雜的GUI項目。隨著Java2的發(fā)行,AWT的用戶界面組件被更穩(wěn)定、通用和靈活的Swing組件庫取代。大多數(shù)Swing組件由Java代碼繪制在畫布上,更少的依賴目標機器上的底層平臺。不依賴本地GUI的Swing組件稱為輕組件——Lightweightcomponent;
AWT組件稱為重組件——Heavyweightcomponent。Swing外觀與Windows外觀JavaGUIAPI層次結(jié)構GUI類容器類(Container)用來包含其他組件;Window、Panel、Applet、Frame和Dialog都是AWT組件的容器類;Conponent、Container、JFrame、JDialog、JApplet和JPanel都是Swing的容器類。其中:Container用來組織組件;JFrame是不能包含在另一個窗口內(nèi)的窗口;JDialog是一個彈出式窗口或消息框;JApplet是Applet的一個子類;JPanel是一個存放用戶界面組件的不可見的容器,可以嵌套。組件類(Component)組件是一個可以以圖形化方式顯示于屏幕上與用戶進行交互的對象。按鈕、菜單、標簽、文本域、復選框……輔助類輔助類都不是Component的子類,它們用來描述GUI組件的屬性,例如顏色、字體、大小等。Graphics類是一個抽象類,提供一個圖形環(huán)境,用于繪制字符串、直線和簡單幾何圖形;Color類用來處理GUI組件的顏色;Font類指定GUI組件上文本和圖形的字體;FontMetrics是用于獲取字體屬性的抽象類;Dimension將組件的寬度和高度(精度為整數(shù))封裝在單個對象中;LayoutManager是一個接口,指定組件在容器中的擺放方式。輔助類包含在AWT包中。Swing組件不能取代AWT的全部類,只能替代AWT的GUI組件類;AWT的輔助類保持不變。2.AWT圖形化界面基礎GUI設計的簡要流程引入java.awt包或javax.swing包;利用包中提供的組件類來定義某種組件;定義一個放置組件的容器;對容器進行布局管理,將此組件添加到該容器中;為了讓該組件響應某個事件,還要注冊組件對應的事件監(jiān)聽器并實現(xiàn)相應的監(jiān)聽器接口。Frame/JFrame——框架簡介框架是Windows類的子類,它是窗口的一種,是頂級窗口。Frame組件在Java的頂層窗口中可以獨立使用。包含標題、邊框等。當Frame被關閉后,將產(chǎn)生WindowEvent事件。Frame無法直接監(jiān)聽鍵盤輸入事件。構造方法:建立一個沒有標題的新Frame對象:建立一個以title為標題的Frame對象:主要方法:Frame()Frame(Stringtitle)setSize(intwidth,intheight)設置長寬setBackground(colorc)設置背景色setVisible(booleanb)設置是否可見StringgetTitle()獲取標題setTitle(Stringtitle)設置標題為titlebooleanisResizable()測試是否可以改變大小ImagegetIconImage()獲取最小化圖標setIconImage(Imageimg)設置最小化圖標setBounds(intx,inty,intwidth,intheight)設置大小和位置示例:Panel——面板簡介:是Container類的子類,也是容器,可容納其他組件。面板不是頂級窗口,不能獨立存在,必須將它添加到其他容器中。創(chuàng)建一個Panel對象后需將該對象放入Window和Frame中才可使Panel中的內(nèi)容可見。構造方法:建立一個默認布局的新Panel對象:建立一個布局為layout的Panel對象:Panel()Panel(LayoutManagerlayout)示例Button——按鈕簡介是Java程序GUI設計中最常用的一個組件,是可以提供用戶快速啟動某一動作的類。按鈕本身不顯示信息,它一般對應一個事先定義好的功能操作,并對應一段程序。當用戶點擊按鈕時,系統(tǒng)自動執(zhí)行與該按鈕相聯(lián)系的程序,從而完成預先指定的功能。構造方法構造一個沒有標題的按鈕:構造一個標題為str的按鈕:Button()Button(Stringstr)主要方法示例StringgetLabel()返回按鈕的標題setLabel(Strings)設置按鈕的標題為sgetActionCommand()返回所引用的Button對象產(chǎn)生的動作事件關聯(lián)的命令名稱setActionCommand(Stringc)設置所引用的Button對象產(chǎn)生的動作事件關聯(lián)的命令名稱Label——標簽簡介是一種用來顯示說明性的靜態(tài)文本的組件,它起到信息說明的作用。標簽是用戶只能查看而不能簡單的修改其內(nèi)容的文本顯示區(qū)域,但用戶可以在應用程序中通過調(diào)用Label提供的方法更換文本的內(nèi)容。構造方法創(chuàng)建一個沒有名字的標簽對象創(chuàng)建一個名字為str的標簽對象創(chuàng)建一個名字為str的標簽對象,對齊方式為align其中Label.LEFT、Label.RIGHT、Label.CENTER分別為居左、居右、居中。Label()Label(Stringstr)Label(Stringstr,intalign)主要方法示例StringgetText()返回Label對象文本的StringsetText(Strings)設置Label對象的文字setAlignment(intalign)設置Label對象的對齊方式TextField——文本框和TextArea——文本域它們都是TextComponent的子類,用于文本處理。TextField文本框是單行文本輸入域,多用于單行顯示。當按下回車鍵時,會發(fā)生事件(ActionEvent),可以通過ActionListener中的actionPerformed方法對事件進行處理。構造方法創(chuàng)建一個初始文本串為空的文本框?qū)ο髣?chuàng)建一個初始文本串為str的文本框?qū)ο髣?chuàng)建一個初始文本串為str、列數(shù)為column長度的文本框?qū)ο骉extField()TextField(Stringstr)TextField(Stringstr,intcolumn)主要方法TextArea是多行文本組件,用于顯示程序中的多行文本信息。構造方法創(chuàng)建一個初始文本串為str的文本域?qū)ο髣?chuàng)建numLines行、numChars列的文本域?qū)ο髣?chuàng)建一個初始文本串為str、numLines行、numChars列的文本域?qū)ο髎etText(Strings)將文本框?qū)ο蟮奈谋拘畔⒃O置為strgetText()返回文本框?qū)ο蟮奈谋拘畔etSelectedText()返回文本框?qū)ο蟊贿x的文本串信息內(nèi)容setEchoChar(charch)將文本框?qū)ο蟮幕仫@字符設為ch,常用于密碼接收場合TextArea(Stringstr)TextArea(intnumLines,intnumChars)TextArea(Stringstr,intnumLines,intnumChars)主要方法示例:setText(Strings)將文本域?qū)ο蟮奈谋拘畔⒃O置為strgetText()返回文本域?qū)ο蟮奈谋拘畔瓦x框與單選按鈕簡介復選框又稱為檢測盒,用Checkbox類的對象表示,Checkbox由一個方形的選擇區(qū)和一個標簽組成,有選中(check)和未選中(uncheck)兩種狀態(tài)。單獨的Checkbox實現(xiàn)的是復選框功能,當多個Checkbox加入到一個CheckboxGroup組件內(nèi)時,選擇區(qū)變成圓形,組件內(nèi)的Checkbox只能有一個被選中,此時實現(xiàn)的是單選按鈕的功能。復選框和單選框使用ItemListener來監(jiān)聽ItemEvent事件。構造方法創(chuàng)建一個標簽為str的復選框創(chuàng)建一個標簽為str的單選按鈕,g指明所屬的CheckboxGroupCheckbox(Stringstr)Checkbox(Stringstr,CheckboxGroupg,booleanstate)主要方法getState()返回Checkbox對象的狀態(tài)是否被選中setStateChange()獲取Checkbox對象的當前狀態(tài)setState(booleanstate)設置Checkbox對象的狀態(tài)Choice——下拉列表簡介提供一個彈出式的菜單讓用戶選擇,也是“多選一”的輸入界面。與單選按鈕組利用單選按鈕把所有選項列出的方法不同,下拉列表的所有選項被折疊起來,在這個菜單折疊時只顯示最前面的或是用戶選定的那一項。下拉列表節(jié)省顯示空間,適用于大量選項的情形。Choice用ItemListener接口來監(jiān)聽。構造方法創(chuàng)建一個空白的下拉列表Choice()主要方法List——列表簡介把所有供用戶選擇的項都顯示出來以供選擇。列表可以實現(xiàn)多選,支持滾動條,可以同時瀏覽多項。列表可以產(chǎn)生兩種事件:addItem(Stringitem)添加一個item字符串到Choice對象中add(Stringitem)將新選項item加載當前下拉列表的最后getSelectedIndex()返回被選中的選項的序號(0~n-1)getItem(intindex)返回Choice對象index索引項目的字符串getSelectedItem()返回Choice對象所選項目的字符串removeAll()把下拉列表中的選項全部移除remove(Stringitem)把指定標簽文本的選項移除當用戶單擊列表中的某一個選項并選中它時,將產(chǎn)生ItemEvent類的選擇事件;當用戶雙擊列表中的某一個選項時,將產(chǎn)生ActionEvent類的動作事件。構造方法建立行數(shù)為rows的List對象,參數(shù)b為真時允許多選主要方法List(introws,booleanb)getSelectedItem()返回List對象所選項目的字符串組成的字符串數(shù)組getSelectedIndex()返回被選中的選項的序號(0~n-1)組成的整數(shù)數(shù)組addItem(Stringitem,intindex)添加一個item字符串到List對象的索引index處delItem(intindex)刪除List對象index處的選項add(Stringitem)將新選項item加載當前列表的最后remove(Stringitem)把指定標簽文本的選項移除示例Dialog——對話框簡介對話框與框架類似,是有邊框、有標題而獨立存在的容器。通常起到與用戶交互的對話窗口的作用。對話框不能作為程序的最外層容器,也不能包含菜單欄,它必須隸屬于某個框架并由該框架負責彈出。對話框可以被設置為模式窗口,其特點是總是在激活窗口的最前面,即若是不關閉,則不能對其他窗口進行操作。構造方法創(chuàng)建沒有標題的對話框,Owner表示所有者創(chuàng)建有指定標題title的對話框創(chuàng)建指定標題的對話框并指明是否為模式窗口Dialog(FrameOwner)Dialog(FrameOwner,Stringtitle)Dialog(FrameOwner,Stringtitle,booleanmodel)主要方法示例setTitle(Stringtitle)將對話框?qū)ο蟮臉祟}設置為titlegetTitle()返回對話框?qū)ο蟮臉祟}setVisible(booleanf)設置對話框?qū)ο蟮臉祟}是否顯示setModel(booleanf)設置對話框模式是否為模式窗口Canvas——畫布畫布代表屏幕上一塊空白的矩形區(qū)域,它不是容器,而是一個可以在這里繪畫、捕捉用戶操作、產(chǎn)生相應事件的區(qū)域。3.事件處理機制事件處理基礎事件及其處理機制GUI的兩大任務創(chuàng)建窗口并在窗口中添加各種組件,規(guī)劃組件在窗口中的位置和相關屬性,構成GUI的外觀效果;設置各類組件對不同事件的響應,從而執(zhí)行用戶在用戶界面所實施的交互行為,如果用戶在用戶界面執(zhí)行了一個動作,這將導致一個事件的發(fā)生。事件是描述用戶所執(zhí)行的一個操作、所產(chǎn)生的一個行為,主要涉及以下三個概念:事件(Event):用來描述在用戶界面的用戶交互行為所產(chǎn)生的一種效果;事件源(EventSource):產(chǎn)生事件的組件對象;事件處理方法(EventHandler):負責解析處理事件的類對象,用以實現(xiàn)和用戶交互的方法。事件的類層次事件處理方法主要基于“事件授權模型”(EDM:EventDelegationModel)的處理機制,實現(xiàn)定義多種事件類型。事件源擁有自己的方法,通過它可以向其注冊事件監(jiān)聽器。事件監(jiān)聽器是一個實例,當事件源產(chǎn)生一個事件后,事件源就會通知相應的事件監(jiān)聽器,根據(jù)事件對象內(nèi)封裝的消息決定如何響應該事件。一個事件源可以注冊一個或多個監(jiān)聽器,一個監(jiān)聽器也可以被注冊到多個事件源。事件的接口及方法ActionEvent行為:點擊按鈕、文本框、列表及選擇菜單等接口名:ActionListener注冊方法:監(jiān)聽器接口所提供的事件方法:ItemEvent行為:點擊復選框選擇框列表及帶復選框的菜單項等接口名:ItemListener注冊方法:監(jiān)聽器接口所提供的事件方法KeyEvent行為:按下或釋放鍵盤addActionListener(ActionListenerListener)actionPerformed(ActionEvente)addItemListener(ItemListenerListener)itemStateChanged(ItemEvente)接口名:KeyListener注冊方法:監(jiān)聽器接口所提供的事件方法MouseEvent行為:鼠標單擊或鼠標移動接口名:鼠標單擊:MouseListener鼠標移動:MouseMotionListener注冊方法:鼠標單擊:鼠標移動:addKeyListener(KeyListenerListener)keyPressed(KeyEvente)keyReleased(KeyEvente)keyTyped(KeyEvente)getModified()addMouseListener(MouseListenerListener)addMouseMotionListener(MouseMotionListenerListener)監(jiān)聽器接口所提供的事件方法:鼠標單擊鼠標移動WindowEvent行為:激活、打開、關閉窗口或窗口失去焦點及收到窗口級事件接口名:WindowListener注冊方法:mousePressed(MouseEvente)mouseReleased(MouseEvente)mouseEntered(MouseEvente)mouseExited(MouseEvente)mouseClicked(MouseEvente)mouseMoved(MouseEvente)mouseDragged(MouseEvente)addWindowListener(WindowListenerListener)監(jiān)聽器接口所提供的事件方法:TextEvent行為:文本框、文本域發(fā)生改變接口名:TextListener注冊方法:監(jiān)聽器接口所提供的事件方法:windowClosing(WindowEvente)windowClosed(WindowEvente)windowOpened(WindowEvente)windowIconified(WindowEvente)windowDeiconified(WindowEvente)windowActivated(WindowEvente)windowDeactivated(WindowEvente)addTextListener(TextListenerListener)textValueChanged(TextEvente)FocusEvent行為:組件獲得或失去焦點接口名:FocusListener注冊方法:監(jiān)聽器接口所提供的事件方法:ComponentEvent行為:移動、隱藏、顯示組件和改變組件大小等。接口名:ComponentListener注冊方法:監(jiān)聽器接口所提供的事件方法:addComponentListener(監(jiān)聽者)ComponentMoved(ComponentEvente)ComponentHidden(ComponentEvente)ComponentResized(ComponentEvente)ComponentShown(ComponentEvente)addFocusListener(FocusListenerListener)FocusGained(FocusEvente)FocusLost(FocusEvente)ContainerEvent行為:添加、移動組件等接口名:ContainerListener注冊方法:監(jiān)聽器接口所提供的事件方法:AdjustmentEvent行為:調(diào)節(jié)滾動條或滑塊等接口名:AdjustmentListener注冊方法:監(jiān)聽器接口所提供的事件方法:addContainerListener(監(jiān)聽者)ContainerAdded(ContainerEvente)ContainerRemoved(ContainerEvente)addAdjustmentListener(監(jiān)聽者)AdjustmentValueChange(AdjustmentEvente)Java針對大多數(shù)事件監(jiān)聽器接口定義了相應的實現(xiàn)類來實現(xiàn)接口中的所有方法。事件處理主要步驟步驟:選擇組件作為事件源,不同類型的組件會產(chǎn)生特定類型的事件,假設該事件類型為XXXEvent;定義要接收并處理某種類型的事件,注冊相應的事件監(jiān)聽器類,通過調(diào)用組件方法向組件注冊事件監(jiān)聽器。實現(xiàn)XXXListener類的實例對象,據(jù)此可作為事件的監(jiān)聽器對象。監(jiān)聽器的注冊與注銷如下:eventsourceObject.addXXXListener(XXXListenerListener);publicvoidaddXXXListener(XXXListenerlistener);publicvoidremoveXXXListener(XXXListenerlistener);事件源通過實例化事件類激發(fā)并產(chǎn)生事件,事件將被傳送給已注冊的一個或多個監(jiān)聽器。監(jiān)聽器在接收到激發(fā)事件信號后負責實現(xiàn)相應的事件處理方法。以按鈕組件作為事件源的簡單范例選擇按鈕組件作為事件源:定義要接受并處理的事件ActionEvent,通過下面的語句注冊事件監(jiān)聽器:按下按鈕組件bton對象會產(chǎn)生一個ActionEvent實例對象,事件源通過實例化事件類激發(fā)事件并傳送給已注冊的監(jiān)聽器;監(jiān)聽器對象listener所屬的類MyActionListener需通過方法actionPerformed實現(xiàn)相應的接口以響應事件:鍵盤事件KeyEvent類在java.awt.event包中,提供的主要方法:getKeyChar():判斷被按下的鍵的字符;getKeyCode():判斷哪個鍵被按下、點擊或釋放并獲取其鍵碼值。Java語言的部分鍵碼表鍵碼鍵鍵碼鍵VK_CANCEL/CLEAR/COMMA取消/清除/逗號VK_F1~VK_F2F1~F12VK_UNMPAD0~VK_UNMPAD9小鍵盤0~9VK_0~VK_90~9VK_LEFT/RIGHT/UP/DOWN左右上下鍵VK_A~VK_Za~zVK_KP_LEFT/RIGHT/UP/DOWN小鍵盤左右上下鍵VK_HOME/ENDHOME/ENDVK_BACK_SLASH/QUOTE“\”/單引號VK_CAPS_LOCK大寫鎖定VK_ALT/CONTROL/SHIFT/ESCAPEAlt/Ctrl/Shift/EscVK_NUM_LOCK數(shù)字鎖定VK_SEMICOLON/PERIOD/SLASH分號/點/“/”VK_SPACE/TAB空格/制表符VK_OPEN/CLOSE_BRACKET[/]VK_QUOTE單引號VK_INSERT/DELETE/ENTER/PAUSE插入/刪除/回車/暫停VK_PAGE_UP/DOWN前后翻頁簡單鍵盤事件的使用組件使用addKeyListener()方法獲得監(jiān)視器。監(jiān)視器是一個對象,創(chuàng)建該對象的類必然通過以下三種方法來實現(xiàn)接口:publicvoidkeyPressed(KeyEvente);按下鍵盤上的某個鍵publicvoidkeyTyped(KeyEvente);當鍵被按下又釋放publicvoidKeyReleased(KeyEvente);釋放鍵盤上的某個鍵示例:將鍵盤輸入字符的鍵碼、名稱和按鍵顯示出來。設置用來顯示的面板:注冊鍵盤事件監(jiān)聽器允許面板獲得焦點對鍵盤事件進行響應(即實現(xiàn)接口方法)鍵盤釋放時重繪窗口:將KeyPanel實例加入到容器中:復合鍵盤事件的使用KeyEvent類對象可調(diào)用getModifiers()方法返回以下整數(shù)值:CTRL_MASKALT_MASKSHIFT_MASK以上是InputEvent類的類常量,根據(jù)返回值對復合鍵事件做處理。當使用Ctrl+C復合鍵時,下面的邏輯表達式為真:示例:利用對組合鍵事件的響應來處理復制、剪切與粘貼對復制、剪切、粘貼的處理窗口組件安放:文本事件TextArea或TextField信息發(fā)生改變時會觸發(fā)TextEvent事件。需要在程序中將TextEvent事件注冊給監(jiān)聽器TextListener,并實現(xiàn)TextListener接口中的textValueChanged方法。示例:改變TextArea中的文字,并在標簽中回顯安放組件,并注冊監(jiān)聽器:響應文本事件(即實現(xiàn)接口方法)鼠標事件MouseListener觸發(fā)鼠標事件的四種操作:鼠標指針進入組件或退出組件mouseEntered(MouseEvente)mouseExited(MouseEvente)鼠標指針停留在組件上時按下鼠標mousePressed(MouseEvente)鼠標指針停留在組件上時釋放鼠標mouseReleased(MouseEvente)鼠標指針停留在組件上時單擊或連續(xù)單擊鼠標mouseClicked(MouseEvente)MouseMotionListener觸發(fā)鼠標事件的兩種操作:在組件上拖動鼠標指針mouseDragged(MouseEvente)在組件上運動鼠標指針mouseMoved(MouseEvente)由于處理鼠標事件的接口中的方法較多,Java提供了相應的適配器類MouseAdapter和MouseMotionAdapter,據(jù)此分別實現(xiàn)了MouseListener接口和MouseMotionListener。獲取鼠標的具體信息的方法:getX()返回鼠標事件發(fā)生時坐標點的x值getY()返回鼠標事件發(fā)生時坐標點的y值getSource()返回觸發(fā)當前鼠標事件的事件源getPointer()返回鼠標事件發(fā)生時的坐標點(Point類型)getClickCount()返回鼠標被連續(xù)點擊的次數(shù)getModifiers()如果是鼠標左鍵觸發(fā),則返回值為BUTTON1_MASK;如果是鼠標右鍵觸發(fā),則返回值為BUTTON3_MASK,以上兩個整數(shù)值都是In
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專業(yè)軟件銷售協(xié)議條款范本(2024年度)版B版
- 2025年度快遞業(yè)務運費標準合同范本3篇
- 北京市中考語文模擬試卷二套【附參考答案】
- 3 認識方向(說課稿)-2023-2024學年二年級上冊數(shù)學 蘇教版
- 2024招投標法規(guī)與協(xié)議管理實務操作指南版
- 2024毛竹山竹林碳匯項目承包合作協(xié)議3篇
- 16《新年的禮物》第一課時(說課稿)-2023-2024學年道德與法治一年級上冊統(tǒng)編版
- 2024版買賣合同協(xié)議書
- 4 說說我們的學校(說課稿)2024-2025學年統(tǒng)編版道德與法治三年級上冊
- 醫(yī)院內(nèi)分泌科改善護理服務行動用“心”控糖 共筑健康
- 城市軌道交通安全防范系統(tǒng)技術要求
- 電科院:儲能構網(wǎng)控制及并網(wǎng)測試
- 廣東省初級中學學生學籍表
- 生鮮超市供貨超市供貨服務方案
- 銀行營銷拆遷戶活動方案
- 智能養(yǎng)老app項目商業(yè)計劃書
- 25道長江存儲固件工程師崗位常見面試問題含HR常問問題考察點及參考回答
- 《交通規(guī)劃原理》課件
- (完整版)四年級口算題大全100道
- 警察急救能力培訓課件模板
- 倍加福-KFU8-UFC-信號隔離或轉(zhuǎn)換模塊中文操作指導
評論
0/150
提交評論