![語言程序設計資料:NetBeans學習筆記_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-12/27/cc0dc916-8e3b-43cc-af6b-9cdd190d51ca/cc0dc916-8e3b-43cc-af6b-9cdd190d51ca1.gif)
![語言程序設計資料:NetBeans學習筆記_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-12/27/cc0dc916-8e3b-43cc-af6b-9cdd190d51ca/cc0dc916-8e3b-43cc-af6b-9cdd190d51ca2.gif)
![語言程序設計資料:NetBeans學習筆記_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-12/27/cc0dc916-8e3b-43cc-af6b-9cdd190d51ca/cc0dc916-8e3b-43cc-af6b-9cdd190d51ca3.gif)
![語言程序設計資料:NetBeans學習筆記_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-12/27/cc0dc916-8e3b-43cc-af6b-9cdd190d51ca/cc0dc916-8e3b-43cc-af6b-9cdd190d51ca4.gif)
![語言程序設計資料:NetBeans學習筆記_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-12/27/cc0dc916-8e3b-43cc-af6b-9cdd190d51ca/cc0dc916-8e3b-43cc-af6b-9cdd190d51ca5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、NetBeans學習筆記第一章 NetBeans集成開發(fā)環(huán)境創(chuàng)建第一個NetBeans項目打開NetBeans,新建項目應用程序項目名稱:firstexample,設定存儲位置在main函數(shù)下輸入代碼:System.out.println(“歡迎使用NetBeans5.0,這是第一個例子?!?;保存運行。源代碼編輯器盡管可視化開發(fā)大大縮短了開發(fā)人員的時間,但是代碼的編寫還是不可被取代的,代碼的編寫仍然是整個程序的核心部分。一個程序的好壞,很大程度上取決于代碼的編寫。NetBeans提供的代碼編輯器十分好用,對于代碼的整體性,自動查找錯誤和修復上面,有了很好的幫助。第二章 Swing概述Swin
2、g是SUN MicroSystem建立的新一代GUI工具包,允許用戶進行企業(yè)級的開發(fā)。Swing的開發(fā)需要許多的包,這里不再一一介紹,當開發(fā)的時候,NetBeans會提醒你添加需要的包,通過修復添加就可以。下面,我們來進行一個簡單得Swing程序。再使用了JDK以后,我們對java語言已經(jīng)有了一定的認識和了解。雖然NetBeans可以使用控件來進行開發(fā),但是必要的代碼開發(fā),還是不可少的。在沒有習慣以及熟練掌握控件的托拽開發(fā)以前,讓我們先利用代碼來編寫一個小的程序。步驟如下:建立一個項目,創(chuàng)建一個擴展Jframe的類FirstSwing用來存放各個組件。在main()方法中新建一個FirstSw
3、ing的實例mySwing。在FirstSwing 類中聲明各個組件:private JLabel jLabelUserName; private JLabel jLabelPassword;private JTextField jTextFieldUserName;private JPasswordField jpfPassword;private JButton jButtonEnter;private JButton jButtonCancel;將FirstSwing的布局管理器設置為null:this.setLayout(null);/在FirstSwing方法中定義。為聲明的每個組件
4、創(chuàng)建實例對象: jLabelUserName=new JLabel(用戶名:); jLabelPassword=new JLabel(密碼:); jTextFieldUserName=new JTextField(); jpfPassword=new JPasswordField(); jButtonEnter=new JButton(確定); jButtonCancel=new JButton(取消);設置控件的位置,并且添加到容器中:jLabelUserName.setBounds(10,20,80,20); jLabelPassword.setBounds(10,50,80,20); j
5、TextFieldUserName.setBounds(100,20,150,20); jpfPassword.setBounds(100,50,150,20); jButtonEnter.setBounds(80,90,60,20); jButtonCancel.setBounds(160,90,60,20); this.add(jLabelUserName); this.add(jLabelPassword); this.add(jTextFieldUserName); this.add(jpfPassword); this.add(jButtonEnter); this.add(jBut
6、tonCancel);設置FirstSwing的大小、標題和可見性:this.setBounds(330,250,300,150); this.setTitle(這是第一個Swing程序!); this.setVisible(true);這樣,整個程序就完成了,下面給出完整的代碼:import java.awt.*;import javax.swing.*; class FirstSwing extends JFrameprivate JLabel jLabelUserName; private JLabel jLabelPassword;private JTextField jTextFie
7、ldUserName;private JPasswordField jpfPassword;private JButton jButtonEnter;private JButton jButtonCancel; public FirstSwing() this.setLayout(null); jLabelUserName=new JLabel(用戶名:); jLabelPassword=new JLabel(密碼:); jTextFieldUserName=new JTextField(); jpfPassword=new JPasswordField(); jButtonEnter=new
8、 JButton(確定); jButtonCancel=new JButton(取消); jLabelUserName.setBounds(10,20,80,20); jLabelPassword.setBounds(10,50,80,20); jTextFieldUserName.setBounds(100,20,150,20); jpfPassword.setBounds(100,50,150,20); jButtonEnter.setBounds(80,90,60,20); jButtonCancel.setBounds(160,90,60,20); this.add(jLabelUse
9、rName); this.add(jLabelPassword); this.add(jTextFieldUserName); this.add(jpfPassword); this.add(jButtonEnter); this.add(jButtonCancel); this.setBounds(330,250,300,150); this.setTitle(這是第一個Swing程序!); this.setVisible(true); public class Main public static void main(String args) FirstSwing mySwing=new
10、FirstSwing(); 開發(fā)后的圖像如下:通過上面的例子,我們已經(jīng)能夠利用NetBeans編寫一個簡單的,具有GUI界面的程序了,但是,純粹的利用代碼來編寫,十分費力,所以,我們接下來講的就是如何利用NetBeans來開發(fā)一個Swing應用程序。步驟如下:創(chuàng)建項目將工程的名字修改為addstudentinfo,并且設置包的位置,一般設置位beans,選中左方窗口的源代碼包下的netbeans節(jié)點,鼠標右擊,新建JFrame,并且修改名字為AddStudentFrame,然后確定。打開GUI設計器。向窗體上添加一個Jlabel,鼠標右擊改變變量名稱:jLabelStudentN
11、ame,屬性:text :姓名。然后依次再添加4個Jlabel,名稱分別為jLabelStudentID(學號:),jLabelGender(性別:),jLabelGrade(班級:),jLabelPhoneNum(聯(lián)系電話:)。添加四個JtextField,分別為jTextFieldStudentID,jTextFieldGrade,jTextFieldPhoneNum,還有jTextFieldName。全部設置為空。兩個JradioButton,JradioButtonMale(男),JRadioButtonFemale(女);兩個JButton,JbuttonEnter(確定),Jbut
12、tonCancel(取消);運行后的圖像如下:第三章 Swing/JFC的事件模型基礎任何支持GUI的操作環(huán)境都會不斷地監(jiān)聽事件。當按下鍵盤或者單擊鼠標的時候,便會觸發(fā)一個相應的事件,操作環(huán)境把這些事件報告給正在運行的程序,接著程序決定如何響應這些事件。在java中,開發(fā)人員能夠控制各種事件,可以把迅速響應事件的對象指派成一個事件監(jiān)聽器。下面介紹一下常用事件對象及其作用。AWTEvent:所有AWT事件的根事件類。ConnectionEvent:封裝與連接有關信息的事件。ChangeEvent :封裝狀態(tài)改變信息的事件。ListSelectionEvent:表示當前選擇中更改的特征事件。Car
13、etEvent:封裝文本區(qū)中的光標改變信息的事件。ListDataEvent:定義一個封裝列表更改的事件。HyperlinkEvent:封裝與超文本連接有關的事件。TableColumnModelEvent:某一個表的列模型已發(fā)生改變。TableModelEvent:通知偵聽器某一個表模型已發(fā)生改變。TreeExpansionEvent:用于表示樹中的單個路徑的事件。TreeModelEvent:封裝描述樹模型更改的信息。TreeSelectionEvent:描述當前選擇的更改事件。上面所述的,只是一些常用的事件對象和作用,當遇到那些不常用的時,應該第一時間查閱JDK。在了解了事件處理的工作機
14、制以后,現(xiàn)在深入討論java中的事件處理。Java中的事件處理是面向對象的,所有事件都是從java.util包中的EventObject類擴展來的。EventObject有一個子類AWTEvent,它是所有AWT事件的父類。對于java開發(fā)人員來說,有些AWT事件在實際中應用不多。我們所講述的,只是在實際中會被傳到艦艇氣得AWT事件類型。常用的事件類型和接口事件類型接口名稱接口中聲明的方法作用ActionEventActionEventListeneractionPerformed(ActionEvent e)監(jiān)聽組件的某個動作AdjustmentEventAdjustmentEventLis
15、teneradjustmentValueChanged(AdjustmentEvent e)監(jiān)聽調整事件ComponentEventComponentListenercomponentHidden(ComponentEvent e)監(jiān)聽組件隱藏事件同上同上Moved移動事件同上同上Resized調整尺寸同上同上Shown顯示事件ContainerEventContainerEventListenercomponentAdded(ContainerEvent e)監(jiān)聽容器添加組件事件同上同上Removed移除事件FocusEventFocusListenerfocusGained(FocusEv
16、ent e)監(jiān)聽鍵盤獲得焦點事件同上同上Lost失去焦點HierarchyEventHierarchyBoundsListenerancestorMoved(HierarchyEvent e)監(jiān)聽父窗口的移動事件同上同上Resized調整尺寸InoputMethodEventInputMethodListenerinputMethodTextChanged(InoputMethodEven)監(jiān)聽輸入方式改變事件ItemEventItemListeneritemStateChanged(ItemEvent e)是否選種狀態(tài)的改變KeyEventKeyListenerkeyPressed(KeyE
17、vent e)監(jiān)聽鍵盤按下事件同上同上Released釋放事件同上同上Typed單擊事件MouseEventMouseListenermouseClicked(MouseEvent e)監(jiān)聽鼠標的單擊事件同上同上Entered移入同上同上Exited移出同上同上Pressed按下同上同上Released釋放同上MouseMotionLisenermouseDragged(Event e)鼠標在組件內的托拽事件同上同上WheelMoved同上以上就是幾種最常用的事件及監(jiān)聽器,此外,還有窗口事件(WindowEvent)。第四章 Swing常用基本控件JLabe類JLabel myjLabel=n
18、ew JLabel();構造器JLabel():創(chuàng)建無圖像并且標題為空的JLabelJLabel(Icon image): 創(chuàng)建具有指定圖像的JLabelJLabel(String text):創(chuàng)建具有指定文本的JLabeJLabel(String text,Icon image,int horizontalAlignment():具有指定文本,圖像,水平對齊德JLabelJLabel(String text,int horizontalAlignment():具有指定文本和水平對齊的JLabel常用方法getText():獲取該標簽所顯示的文本字符串。setText(String text)
19、:設置字符串。getIcon():獲取該標簽所顯示的圖像。setIcon(Icon icon):定義此組件將要現(xiàn)實的圖標。getVerticalAlignment():獲取標簽內容沿y軸的對齊方式。setVerticalAlignment(int alignment):設置。getHorizontalAlignment():獲取,x軸。setHorizontalAlignment(int alignment):設置。getLabelFor():獲取將標簽添加到的組件。setLabelFor(Component c):設置將標簽添加到的組件。在NetBeans中使用JLabel項目新建Jfram
20、e(DemoJlabelFrame)添加JLabel(jLabelImage),text:演示圖片。單擊Icon屬性右側的按鈕,添加圖片。右擊,選擇“事件/Mouse/mouseClicked”,然后添加如下代碼:This.jLabelImage.setVerticalTextPosition(SwingConstants.TOP);運行即可。運行圖象如下:JButton介紹Swing中最簡單的按鈕類型,可以包含文本或圖標,能夠響應單擊事件。創(chuàng)建十分簡單:JButton myButton=new JButton(“確定”);構造器:JButton():創(chuàng)建沒有文本或圖標的按鈕。JButton(
21、String s):有文本。JButton(Icon icon):有圖標。JButton(String s,Icon icon)常用方法addActionListener()removeActionListener(ActionListener l)getAction()getModel()setModel(ButtonModel newModel)getMargin()setMargin(Insets m)getSelectedIcon()setSelectedIcon(Icon selectedIcon)在NetBeans中JButton的使用新建JFrame(DemoJButtonFra
22、me)添加2個JButton,1個JLabel,分別修改變量名稱為jButtonEnter,jButtonCancel,jLabelMessage。Test屬性分別為:確定,取消,用戶沒有按下按鈕。分別為兩個按鈕添加ActionEvent 事件。jButtonEnter:This.jLabelMessage.setText(“你單擊了確定按鈕”);jButtonCancel:This.jLabelMessage.setText(“你單擊了取消按鈕”);效果圖:Swing文本框JtextField用于輸入單行的文字。創(chuàng)建很簡單:JtextField jTextFieldOne=new Jtext
23、Field(“你好”);構造器:JTextField()JTextField(Document doc,String text,int columns):給定存儲類型和列數(shù),還有相應的文本。JTextField(int columns)JTextField(String text)JTextField(String text,int columns)常用方法:setDocument(Document doc)createDefaultModel()getColumns()setColumns(int columns)setFont(Font f)addActionListener(Action
24、Listener l)removeActionListener(ActionListener l)getText()setText(String t)在NetBeans中使用添加JTextField(jTextFieldTest),JLabel(jLabelMessage)在jTextFieldTest的ActionEvent下輸入代碼:String getMessage=jTextFieldTest.getText();If(getMessage.equals(“”)this.jLabelMessage.setText(“你沒有輸入任何內容”);Elsethis.jLabelMessage.
25、setText(“你輸入的內容是:”+ getMessage)效果圖:Swing文本區(qū)JTextArea是一種非常重要的文本輸入控件。能夠顯示多行文本。構造器:JTextArea()JTextArea(String text)JTextArea(int rows,int columns)JTextArea(String text,int rows,int columns)JTextArea(Document doc)JTextArea本身不具有滾動功能,如要實現(xiàn)該功能,需要將其添加到JScrollPane中,下面是代碼:JScrollPane myScrollPane=new JScrollP
26、ane(myTextArea);常用方法:setLineWrap(Boolean wrap)getLineWrap()insert(String str,int pos)append(String str)getRows()setRows(int rows)getColumns()setColumns(int columns)還有其他的一些方法,可以查閱API,在練習的過程中,也需要一點點體會。在NetBeans中使用代碼和運行圖如下:private void jButtonNoWrapActionPerformed(java.awt.event.ActionEvent evt) / TODO
27、 將在此處添加您的處理代碼: this.jTextAreaTest.setLineWrap(false); private void jButtonWrapActionPerformed(java.awt.event.ActionEvent evt) / TODO 將在此處添加您的處理代碼: this.jTextAreaTest.setLineWrap(true); Swing 單選按鈕(JRadioButton)與復選框(JCheckBox)JCheckBox構造器JCheckBox(Icon icon)JCheckBox(Icon icon,Boolean selected)JCheckB
28、ox(String text)JCheckBox(String text,Boolean selected)JCheckBox(String text,Icon icon)常用方法:isSelected()setSelected(Boolean b)JRadioButton構造器JRadioButton(Icon icon)JRadioButton(Icon icon,Boolean selected)JRadioButton(String text)JRadioButton(String text,Boolean selected)JRadioButton(String text,Icon
29、icon)因為單選按鈕在某一時刻,一組單選按鈕中只能有一個被選中,所以需要添加ButtonGroup, 然后將相應的一組單選按鈕添加到ButtonGroup中。這樣才可以滿足在一個時刻,只有一個被選中。在NetBeans中使用代碼和運行圖如下/定義一些方法和成員變量private int style = java.awt.Font.PLAIN; private int fontSize = 18; private void setStyle(int style) this.style=this.style+style; private int getStyle() return this.st
30、yle; private void setFontSize(int fontSize) this.fontSize=fontSize; private int getFontSize() return this.fontSize; private void setLableFont() this.jLabel1.setFont(new java.awt.Font(宋體,this.getStyle(),this.getFontSize(); /事件中的代碼 private void jCheckBox2ItemStateChanged(java.awt.event.ItemEvent evt)
31、/ TODO 將在此處添加您的處理代碼: if(this.jCheckBox2.isSelected() this.setStyle(java.awt.Font.ITALIC); else this.setStyle(-java.awt.Font.ITALIC); this.setLableFont(); private void jRadioButton3ItemStateChanged(java.awt.event.ItemEvent evt) / TODO 將在此處添加您的處理代碼: this.setFontSize(18); this.setLableFont(); private v
32、oid jRadioButton2ItemStateChanged(java.awt.event.ItemEvent evt) / TODO 將在此處添加您的處理代碼: this.setFontSize(22); this.setLableFont(); private void jRadioButton1ItemStateChanged(java.awt.event.ItemEvent evt) / TODO 將在此處添加您的處理代碼: this.setFontSize(14); this.setLableFont(); private void jCheckBox1ItemStateCha
33、nged(java.awt.event.ItemEvent evt) / TODO 將在此處添加您的處理代碼: if(this.jCheckBox1.isSelected() this.setStyle(java.awt.Font.BOLD); else this.setStyle(-java.awt.Font.BOLD); this.setLableFont(); 編輯器面板(JEditorPane)他是JTextComPonent的子類,可以顯示多種格式內容,例如HTML、RTF,可以做簡單的HTML瀏覽器的工具。構造器:JEditorPane()JEditorPane(.
34、URL initialPage)JEditorPane(String url)JEditorPane(String type,String text)常用方法:addHyperlinkListener(HyperlinkListener listener)getHyperlinkListeners()getPage()setPage(String url)setPage(.URL page)getStream(.UAL page)在NetBeans中使用代碼和運行圖如下private void jButtonGoActionPerformed(java.awt.
35、event.ActionEvent evt) /按鈕事件 / TODO 將在此處添加您的處理代碼: String myURL=this.jTextFieldAddress.getText().trim(); try if(myURL != null &! myURL.equals() jEditorPaneHTML.setPage(myURL); catch(java.io.IOException e) e.printStackTrace(); private void jEditorPaneHTMLHyperlinkUpdate(javax.swing.event.HyperlinkEven
36、t evt) /顯示頁面/ TODO 將在此處添加您的處理代碼: try if(evt.getEventType()=javax.swing.event.HyperlinkEvent.EventType.ACTIVATED) jEditorPaneHTML.setPage(evt.getURL(); catch(java.io.IOException e) e.printStackTrace(); 第五章 5.1 Swing列表JList創(chuàng)建代碼:String fruit=“apple”,”pear”,”orange”,”banana”JList myJList=new JList(fruit
37、);構造器:JList()JList(Object listData)JList(ListModel dataModel)JList(Vector listData)常見方法:getSelecttionForegroud()setSelectionForeGroud(Color selectionForegroud)getSelectionBackgroud()setSelectionBackgroud(Color selectionBackgroud)getModel()setModel(ListModel model)setListData(Object listData)setListD
38、ata(Vector listData)setSelectionMode(int selectionMode)getSelectionMode()getMaxSelectionIndex()getMinSelectionIndex()isSelectedeIndex(int index)isSelectionEmpty()clearSelection()getSelectedValues()在NetBeans中使用代碼和運行圖如下private void jTextFieldCountryNameActionPerformed(java.awt.event.ActionEvent evt) /
39、 TODO 將在此處添加您的處理代碼: String countryName=this.jTextFieldCountryName.getText().trim(); if(countryName !=null &! countryName.equals() this.imageVector.add(countryName); this.jLabelActionMessage.setText(你將+countryName+添加到列表中); this.jListCountryList.setListData(this.imageVector); elsethis.jLabelActionMess
40、age.setText(請先輸入內容再添加); private void jButtonDeleteActionPerformed(java.awt.event.ActionEvent evt) / TODO 將在此處添加您的處理代碼: String countryName=(String)this.jListCountryList.getSelectedValue(); if(countryName !=null) this.imageVector.remove(countryName); this.jListCountryList.setListData(imageVector); thi
41、s.jLabelActionMessage.setText(你將+countryName+從列表中刪除); else this.jLabelActionMessage.setText(請先選擇一個選項); private void jButtonAddActionPerformed(java.awt.event.ActionEvent evt) / TODO 將在此處添加您的處理代碼: String countryName=this.jTextFieldCountryName.getText().trim(); if(countryName !=null &! countryName.equa
42、ls() this.imageVector.add(countryName); this.jLabelActionMessage.setText(你將+countryName+添加到列表中); this.jListCountryList.setListData(this.imageVector); else this.jLabelActionMessage.setText(請先輸入內容再添加); private void jListCountryListValueChanged(javax.swing.event.ListSelectionEvent evt) / TODO 將在此處添加您的處
43、理代碼: String choosedCountry=(String)this.jListCountryList.getSelectedValue(); this.jLabelActionMessage.setText(你從列表中選擇+choosedCountry+選項); 這是設計圖Swing組合框(JComboBox)構造器:JComboBox()JComboBox(Object items)JComboBox(Vector items)JComboBox(ComboBoxModel model)常用方法:setModel(ComboBoxModel aModel)getModel()se
44、tSelectedItem(Object anObject)getSelectedItem()setSelectedIndex(int anIndex)getSelectedIndex()addItem(Object anObject)removeItem(Object anObject)removeItemAt(int anIndex)removeAllItems()showPopup()hidePopup()setPopupVisible(Boolean v)isPopupVisible()getItemCount()getItemAt(int index)在NetBeans中使用代碼和運
45、行圖如下/先添加一個JComboBox,然后選擇model屬性,刪除原來的項,添加新的項。private void jComboBoxLoverItemStateChanged(java.awt.event.ItemEvent evt) / TODO 將在此處添加您的處理代碼: String favor=(String)this.jComboBoxLover.getSelectedItem(); this.jLabel1.setText(你喜歡+favor); Swing分割窗口(JSplitPane)用于將一個窗口分割成兩個部分。構造器JSplitPane() JSplitPane(int newOrientation)JSplitPane( int newOrientation
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 文明督導部申請書
- 工傷款申請書
- DB37-T 4691-2024 農業(yè)面源污染負荷估算技術規(guī)程
- 大學小班申請書
- 電商行業(yè)人才培訓的國際化視野與戰(zhàn)略
- 2024年高考歷史藝體生文化課第十三單元西方人文精神的起源及發(fā)展13.33啟蒙運動練習
- 2024-2025學年高中歷史課時作業(yè)2思想家柏拉圖岳麓版選修4
- 2024-2025學年新教材高中歷史第四單元明清中國版圖的奠定與面臨的挑戰(zhàn)第13課從明朝建立到清軍入關學案新人教版必修中外歷史綱要上
- 參加選舉的申請書
- 二零二五體育館物業(yè)管理與健身設施維護協(xié)議書
- 光纜線路施工安全協(xié)議書范本
- 成本合約規(guī)劃培訓
- 山東省濟寧市2025屆高三歷史一輪復習高考仿真試卷 含答案
- 五年級數(shù)學(小數(shù)乘法)計算題專項練習及答案
- 交通法規(guī)教育課件
- 產(chǎn)前診斷室護理工作總結
- 6S管理知識培訓課件
- 小學校長任期五年工作目標(2024年-2029年)
- 醫(yī)院培訓課件:《猴痘流行病學特點及中國大陸首例猴痘病例調查處置》
- 氫氣-安全技術說明書MSDS
- 產(chǎn)科護士臨床思維能力培養(yǎng)
評論
0/150
提交評論