九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

swing用戶界面組件.ppt

  • 資源ID:6314819       資源大小:416.50KB        全文頁數(shù):66頁
  • 資源格式: PPT        下載積分:14.9積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要14.9積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號:
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

swing用戶界面組件.ppt

第十四講 Swing用戶界面組件 2 目標(biāo) 了解Swing的結(jié)構(gòu)了解SwingGUI的容器掌握J(rèn)frame和Jpanel的使用掌握用戶界面組件的使用方法掌握常用Swing布局管理器的使用 3 Swing結(jié)構(gòu) Object Component JFrame Container Window Frame Dialog JDialog JText JComboBox JLabel JList JMenuBar JOptionPane JPanel JScrollBar AbstractButton JToggleButton JMenuItem JButton JCheckBox JRadioButton JComponent JMenu 4 文本組件 JtextComponent是所有Swing文本組件的根類 Javax swing text JtextComponent類的常用方法 voidsetText Stringt 改變一個(gè)文本組件中的文本StringgetText 返回一個(gè)文本組件中的文本voidsetEditable booleanb 決定用戶能否編輯文本組件的內(nèi)容 5 文本框JTextField 1 JTextField組件允許輸入或編輯單行文本此類的構(gòu)造函數(shù)包括 JTextField JTextField Documentdoc Stringtext intcolumns JTextField intcolumns 建立一個(gè)指定列寬度的空白文本框JTextField Stringtext 建立一個(gè)帶有初始文本的文本框JTextField Stringtext intcolumns 把文本框添加到窗口的通常辦法是把它先添加到面板或者其它容器中 示例 Containercon getContentPane con setLayout newFlowLayout JLabeljl newJLabel 文本域 con add jl JTextFieldtf newJTextField 20 con add tf 6 文本框JTextField 2 在實(shí)踐中 應(yīng)該把文本框的最大列寬多設(shè)1到2個(gè)字符 輸入文本的長度可以超過最大列寬 這時(shí)文本框就會卷動 如果你需要在運(yùn)行時(shí)重新設(shè)置列寬 應(yīng)聯(lián)合使用setColumns方法和包含該文本框的容器的validate方法 textFiled setColumns 10 panel validate 布局管理器重新繪制容器可以在任何時(shí)候改變文本框的內(nèi)容 textFiled setText hello 獲取文本框中的內(nèi)容并去掉前后空格 textFiled getText trim intadd1 Integer parseInt textFiled getText trim 7 文本框JTextField 3 所有文本組件的模型都由Document接口說明 這既包括無格式的文本 也包括格式化的文本 如html 當(dāng)數(shù)據(jù)改變后 可以要求文檔 而非文本組件 通知你 這需要安裝一個(gè)文檔監(jiān)聽器 新建文檔監(jiān)聽器DocumentListenerresultListener newResultListener 為第一個(gè)文本域安裝一個(gè)文檔監(jiān)聽器originText getDocument addDocumentListener resultListener 當(dāng)文本發(fā)生改變后 下面三個(gè)方法之一會被調(diào)用 voidinsertUpdate DocumentEvente voidremoveUpdate DocumentEvente voidchangedUpdate DocumentEvente 改變格式時(shí)你的文檔監(jiān)聽器必須實(shí)現(xiàn)這三個(gè)方法如果你使用一個(gè)動作監(jiān)聽器的話 只有當(dāng)用戶按下ENTER鍵時(shí) 該動作監(jiān)聽器才會得到通知 8 文本框使用示例 獲取兩個(gè)文本框的輸入并求和 然后顯示在第三個(gè)文本框中 程序代碼見TextFieldTest java 運(yùn)行結(jié)果如下 初始狀態(tài) 改變輸入 9 密碼框JPasswordField 特殊的文本框 在密碼框中輸入時(shí) 用戶的輸入并不會真正顯示出來 而是顯示回顯字符 如 以防止被他人看見用戶輸入的密碼 構(gòu)造函數(shù) JPasswordField Stringtext intcolumns 參數(shù) text顯示的文本 如果沒有則為nullcolumns列大小其它方法voidsetEchoChar charecho 設(shè)置密碼框的回顯字符 0表示設(shè)置為默認(rèn)回顯字符char getPassword 返回包含在密碼框中的文本 10 密碼框使用示例 將密碼框的輸入顯示在文本框中程序代碼見PasswordFieldTest java 運(yùn)行結(jié)果如下 11 文本區(qū)JTextArea3 1 在一個(gè)文本區(qū)里 用戶可以輸入多行文本它可實(shí)現(xiàn)可滾動界面JTextArea組件可使用下列構(gòu)造函數(shù)創(chuàng)建 JTextArea JTextArea introws intcols 建立一個(gè)指定行列的文本區(qū)JTextArea Stringtext 建立一個(gè)帶初始化文本的文本區(qū)JTextArea Stringtext introws intcols JTextArea Documentdoc JTextArea Documentdoc Stringtext introws intcols 例 JLabeljl newJLabel 文本區(qū) con add jl JTextAreata newJTextArea 5 10 con add ta 12 文本區(qū)JTextArea3 2 多行文本之間的換行可以采用兩種方式 1 手動換行 即輸入ENTER鍵 這將在文本中插入換行符 n 2 通過設(shè)置換行屬性來避免手動換行 由文本區(qū)組件自動處理 textArea setLineWrap true 對長的行換行設(shè)置為真但是這樣的設(shè)置并沒有真正在文本中插入換行符 n 在Swing中 文本區(qū)沒有滾動條 要給文本區(qū)增加滾動條 可以通過把文本區(qū)插入到一個(gè)滾動窗格中 然后把該滾動窗格插入進(jìn)內(nèi)容窗格中 textArea newJTextArea 8 40 JScrollPanescrollPane newJScrollPane textArea contentPane add scrollPane BorderLayout CENTER 在Swing中 給組件添加滾動條的通用處理方法是 把組件添加進(jìn)一個(gè)滾動窗格中 滾動由滾動窗格內(nèi)部處理 滾動條會自動出現(xiàn)或消失 13 文本區(qū)JTextArea3 3 Javax swing JTextArea類的常用方法 VoidsetColumns intcols 設(shè)置文本區(qū)的列數(shù)VoidsetRows introws設(shè)置文本區(qū)的行數(shù)Voidappend StringnewText 把指定文本追加到文本區(qū)文本的末尾VoidsetLineWrap打開或關(guān)閉換行VoidsetTabSize intc 設(shè)置TAB鍵的列數(shù)為cJavax swing JScrollPane類的構(gòu)造函數(shù)JScrollPane Componentc 創(chuàng)建一個(gè)顯示指定組件c的滾動窗格 當(dāng)組件內(nèi)容超過顯示范圍時(shí) 滾動條會自動出現(xiàn) 14 文本區(qū)使用示例 文本區(qū)的三種顯示方式程序代碼見TextAreaTest java 運(yùn)行結(jié)果如下 15 標(biāo)簽JLabel3 1 標(biāo)簽是容納文本的組件 這種組件沒有修飾 例如 沒有邊界 它們也不響應(yīng)用戶輸入 標(biāo)簽常用來標(biāo)識組件 如文本組件 給組件設(shè)置標(biāo)簽的方法如下 使用正確的文本構(gòu)造一個(gè)JLable組件把該標(biāo)簽組件放置到同需要標(biāo)識的組件足夠的地方 這樣用戶能夠看到該標(biāo)簽標(biāo)識了哪個(gè)組件標(biāo)簽同任何其它組件一樣 可以定位在一個(gè)容器中 你可以把它放在你需要的地方 16 標(biāo)簽JLabel3 2 它既可以顯示文本也可以顯示圖像構(gòu)造函數(shù)如下 JLabel Iconicon 使用左對齊圖標(biāo)來構(gòu)造一個(gè)標(biāo)簽JLabel Stringtext 使用左對齊字符串來構(gòu)造一個(gè)標(biāo)簽JLabel Stringtext intalign 使用字符串及指定的對齊方式來構(gòu)造一個(gè)標(biāo)簽JLabel Stringtext Iconicon intalign 同時(shí)使用字符串和圖標(biāo)及指定的對齊方式來構(gòu)造一個(gè)標(biāo)簽參數(shù) text表示使用的字符串 icon表示使用的圖標(biāo) align表示水平對齊方式 其值可以為 SwingConstants LEFT SwingConstants RIGHT SwingConstants CENTER SwingConstants NORTH SwingConstants EAST等說明 JLable實(shí)現(xiàn)了SwingConstants接口 該接口定義了很多有用的常量 SwingConstants LEFT也可以寫成JLable LEFT 17 標(biāo)簽JLabel3 3 SetText和SetIcon方法可以在運(yùn)行時(shí)設(shè)定標(biāo)簽的文本和圖標(biāo)VoidsetText Stringtext VoidsetIcon Iconicon 例 JLablelable newJLable text SwingConstants RIGHT 或JLablelable newJLable text JLable RIGHT 18 按鈕JButton2 1 JButton類允許用圖標(biāo) 字符串或兩者同時(shí)構(gòu)造一個(gè)按鈕 構(gòu)造函數(shù)如下 JButton Iconicon icon表示使用的圖標(biāo)JButton Stringtext text表示使用的字符串JButton Stringtext Iconicon 例 loginButton newJButton 登錄 newImageIcon login gif 19 按鈕JButton2 2 當(dāng)希望按鈕對單擊動作有所反應(yīng)時(shí) 我們需要為按鈕注冊一個(gè)事件監(jiān)聽器 并且實(shí)現(xiàn)這個(gè)事件監(jiān)聽器 就可以完成所需要的按鈕功能 注冊事件監(jiān)聽器loginButton addActionListener newLoginAction 實(shí)現(xiàn)事件監(jiān)聽器privateclassLoginActionimplementsActionListener 20 按鈕使用示例 密碼驗(yàn)證示例當(dāng)用戶輸入密碼后 按下 登錄 按鈕 然后我們將密碼輸入是否正確的結(jié)果顯示在文本域中 程序代碼見Login java 運(yùn)行結(jié)果如下 21 選擇性輸入組件 為了簡化表單填寫過程 通常為用戶提供多種可供選擇的選項(xiàng) 而無需用戶寫出他們的響應(yīng) 常用于選擇性輸入的組件有 復(fù)選框單選按鈕列表框組合框 22 單選按鈕JRadioButton2 1 單選按鈕組件是一組互斥按鈕 即我們一次只能選擇其中的一個(gè)選項(xiàng) 選項(xiàng)的選取只需要單擊即可 ButtonGroup用于創(chuàng)建按鈕組JRadioButton對象可使用下列構(gòu)造函數(shù)創(chuàng)建 JRadioButton JRadioButton Iconicon JRadioButton Icon booleanselected JRadioButton Stringtext JRadioButton Stringtext booleanselected JRadioButton Stringtext Iconicon JRadioButton Stringtext Iconicon booleanselected 23 單選按鈕JRadioButton2 2 例 使用按鈕組ButtonGroupgroup newButtonGroup JRadioButtonbutton1 newJRadioButton EAST true JRadioButtonbutton4 newJRadioButton NORTH false 為了指定單選按鈕的初始選項(xiàng) 我們在新建JRadioButton對象時(shí) 將其構(gòu)造函數(shù)的第二個(gè)參數(shù)設(shè)置為 true 同時(shí) 其他按鈕對象的第二個(gè)參數(shù)被設(shè)置為 false 24 單選按鈕使用示例 通過選擇單選按鈕中的選項(xiàng)來設(shè)置標(biāo)簽組件的內(nèi)容 由標(biāo)簽組件顯示我們的選擇 程序代碼見RadioButtonExample java 運(yùn)行結(jié)果如下 25 復(fù)選框JCheckBox2 1 復(fù)選框組件可以進(jìn)行多重選擇 即我們能夠選擇其中的多個(gè)選項(xiàng) 如果要取消或選取某選項(xiàng) 可以單擊此選項(xiàng) 和單選按鈕不同 復(fù)選框允許用戶選擇多個(gè)選項(xiàng) 我們通過單擊復(fù)選框來選取該選項(xiàng) 再單擊一下 則取消選取 建立復(fù)選框組件對象需要使用標(biāo)簽來表明該復(fù)選框的含義 標(biāo)簽在復(fù)選框構(gòu)造器里進(jìn)行設(shè)置 對復(fù)選框是否被選取可以通過isSelected方法進(jìn)行狀態(tài)判斷 例 boldCheck newJCheckBox Bold 新建復(fù)選框 italicCheck newJCheckBox Italic 新建復(fù)選框 boldCheck isSelected 判斷 mathCheck 復(fù)選框是否被選定 26 復(fù)選框JCheckBox2 2 當(dāng)用戶點(diǎn)擊一個(gè)復(fù)選框時(shí) 就會觸發(fā)一個(gè)動作事件 你可以設(shè)置動作監(jiān)聽器 例如 兩個(gè)按鈕共享同一個(gè)動作監(jiān)聽器 ActionListenerlistener Bold addActionListener listener italic addActionListener listener 監(jiān)聽器的actionperformed方法 publicvoidactionperformed ActionEventevent intmode 0 if bold isSelected mode Font BOLDif italic isSelected mode Font ITALIClabel setFont newFont Serif mode FONTSIZE 27 復(fù)選框使用示例 選擇字體風(fēng)格 程序代碼見CheckBoxExample java 運(yùn)行結(jié)果如下 28 列表框組件JList3 1 列表框組件允許用戶從一個(gè)列表中選擇一個(gè)或多個(gè)條目 選擇列表框中的多個(gè)條目有兩種方式 續(xù)條目選擇和間斷條目選擇 JList類既可顯示字符串 也可顯示圖標(biāo)JList不支持雙擊 MouseListener可用于解決雙擊問題構(gòu)造函數(shù) publicJList 使用空模型構(gòu)造JListpublicJList ListModeldataModel 構(gòu)造一個(gè)列表 用它顯示指定模型中的元素 publicJList Object listData 構(gòu)造一個(gè)列表以顯示指定數(shù)組listData的元素 29 列表框組件JList3 2 建立列表框前 需要指定所顯示的列表?xiàng)l目 String courses Math English Physics Chemic Biology Politics JListcourseList newJList courses JList本身不支持滾動 如果列表框比較長 而顯示屏幕比較小 可以設(shè)置列表中顯示的行數(shù) 同時(shí)使用滾動條 courseList setVisibleRowCount 4 JScrollPanelistScrollPane newJScrollPane courseList 30 列表框組件JList3 3 用戶選擇列表框條目時(shí) 列表框就會產(chǎn)生選擇事件 將列表選擇監(jiān)聽器ListSelectionListener添加給列表組件 并在該監(jiān)聽器中實(shí)現(xiàn)valueChanged方法 courseList addListSelectionListener newcourseListener privateclasscourseListenerimplementsListSelectionListener publicvoidvalueChanged ListSelectionEventevent 獲得用戶所選擇的列表框條目以及條目所在的索引號需要使用getSelectedValues方法和getSelectedIndices方法 Object selectedCourses courseList getSelectedValues int selectedIndexCourses courseList getSelectedIndices 31 列表框組件使用示例 在給定的科目中選擇多門課程 程序代碼見ListExample java 運(yùn)行結(jié)果如下 32 組合框JComboBox3 1 組合框?qū)⑽谋究蚝拖吕斜砜蚪Y(jié)合起來 使得用戶可以在一組預(yù)定義的選項(xiàng)中選擇一個(gè)條目 而且能夠修改選項(xiàng)內(nèi)容 構(gòu)造函數(shù)如下 publicJComboBox 此構(gòu)造函數(shù)使用缺省數(shù)據(jù)模型創(chuàng)建JComboBoxpublicJComboBox ComboBoxModelasModel 使用現(xiàn)有ComboBoxModel中的項(xiàng)目創(chuàng)建組合框publicJComboBox Object items 用指定數(shù)組元素創(chuàng)建組合框新建一個(gè)有內(nèi)容的組合框既可以象列表框那樣指定數(shù)組 也可以采用向組合框?qū)ο罄锛尤霔l目的方法 對組合框是否能夠被編輯也可以進(jìn)行設(shè)置 新建組合框 jobsBox newJComboBox jobsBox setEditable true 設(shè)置組合框是否能夠被編輯 jobsBox addItem job1 jobsBox addItem job2 33 組合框JComboBox3 2 組合框的內(nèi)容是可以動態(tài)變化的 addItem Objectitem 方法能夠把條目添加到列表的末尾 insertItermAt Objectitem intindex 方法將把新條目添加到列表的任何位置 removeItem Objectitem 方法和removeItemAt intindex 方法將能夠刪除指定條目 removeAllItems 方法將刪除所有條目 getSelectedItem 方法返回當(dāng)前被選擇的條目jobsBox insertItermAt job7 6 在第7個(gè)位置增加 job7 條目 jobsBox removeItem job7 刪除 job7 條目 jobsBox removeItemAt 5 刪除第6個(gè)條目 即 job6 jobsBox removeAllItems 刪除所有條目 34 組合框JComboBox3 3 當(dāng)選擇一個(gè)條目時(shí) 組合框就產(chǎn)生一個(gè)事件 對事件的監(jiān)聽需要添加事件監(jiān)聽器 并實(shí)現(xiàn)actionPerformed方法 增加事件監(jiān)聽器 jobsBox addActionListener newjobsListener privateclassjobsListenerimplementsActionListener publicvoidactionPerformed ActionEventevent 當(dāng)組合框的選擇事件發(fā)生時(shí) 可以通過getSelectedItem方法來獲取當(dāng)前被選擇的條目 ObjectselectedJob jobsBox getSelectedItem 35 組合框使用示例 應(yīng)用組合框來進(jìn)行選擇職業(yè) 程序代碼見ComboBoxExample java 運(yùn)行結(jié)果如下 36 滑塊JSlider3 1 滑塊組件一般有一個(gè)連續(xù)區(qū)間和可拖動的滑塊 用戶可以通過拖動滑塊在一個(gè)區(qū)間范圍里進(jìn)行選擇 構(gòu)造函數(shù)如下 JSlider JSlider intdirection JSlider intmin intmax JSlider intmin intmax intinitialValue JSlider intmin intmax intinitialValue JSlider intdirection intmin intmax intinitialValue 使用給定方向 最小值 最大值和初始值來構(gòu)造一個(gè)水平滑塊參數(shù) direction下面幾個(gè)常量之一 SwingConstants HORIZONTAL或者SwingConstants VERTICAL 默認(rèn)為前者M(jìn)in max滑塊的最小值和最大值 默認(rèn)分別為0和100initialValue滑塊的初始值 默認(rèn)為50JSliderageSlider newJSlider ageSlider newJSlider SwingConstants VERTICAL 0 120 20 37 滑塊JSlider3 2 可以為滑塊增加標(biāo)尺 setMajorTickSpacing intunits 為滑塊設(shè)置一個(gè)大標(biāo)尺setMinorTickSpacing intunits 為滑塊設(shè)置一個(gè)小標(biāo)尺大標(biāo)尺和小標(biāo)尺是獨(dú)立的 Units指滑塊值而非像素值顯示標(biāo)尺 setPaintTicks booleanb b為true時(shí)顯示強(qiáng)制滑塊對齊標(biāo)尺 setSnapToTicks booleanb b為true時(shí)強(qiáng)制對齊 38 滑塊JSlider3 3 當(dāng)滑塊被拖動時(shí) 滑塊的值將發(fā)生變化 觸發(fā)ChangeEvent事件 滑塊組件的事件監(jiān)聽器要實(shí)現(xiàn)ChangeListener接口 并實(shí)現(xiàn)此接口中的stateChanged方法 AgeListenermyAgeListener newAgeListener ageSlider addChangeListener myAgeListener privateclassAgeListenerimplementsChangeListener publicvoidstateChanged ChangeEventevent 滑塊值發(fā)生變化時(shí) 使用getValue方法來獲得滑塊值 myTextField setText sourceSlider getValue 39 滑塊使用示例 在進(jìn)行年齡輸入時(shí) 使用滑塊進(jìn)行直觀的選擇 程序代碼見SliderExample java 運(yùn)行結(jié)果如下 40 邊界Border 當(dāng)界面中的組件比較多時(shí) 需要從視覺上將組件分隔 通用的辦法是為面板設(shè)置邊界 并將需要分隔的組件添加到該面板中 可選的邊界風(fēng)格包括 低斜面 凸斜面 蝕刻 直線 不光滑 空 只是在組件周圍創(chuàng)建一些空白地方 創(chuàng)建邊界需要調(diào)用BorderFactory類的靜態(tài)方法 當(dāng)需要給邊界增加標(biāo)題以提示時(shí) 可以使用BorderFactory的createTitledBorder方法 初始化帶標(biāo)題的空邊界 Borderborder BorderFactory createEmptyBorder Bordertitled BorderFactory createTitledBorder border Bordertypes 當(dāng)創(chuàng)建好需要的邊界后 就可以把邊界對象添加到組件中 buttonPanel setBorder titled 41 邊界使用示例 各種邊界的不同效果 程序代碼見BorderExample java 運(yùn)行結(jié)果如下 42 菜單 菜單顯示項(xiàng)目列表 指明各種任務(wù) 選擇或單擊某個(gè)選項(xiàng)時(shí)會打開另一個(gè)列表或子菜單 Swing菜單由菜單欄 菜單和菜單項(xiàng)構(gòu)成 菜單欄 位于窗口頂部 是所有菜單和菜單項(xiàng)的根 43 典型的菜單 44 Swing菜單組件 45 菜單欄JMenuBar JMenuBar是可通過JFrame JWindow或JInternalFrame的根窗格添加到容器中的組件 由多個(gè)菜單JMenu組成 每個(gè)JMenu在JMenubar中都表示為字符串 JMenuBar需要兩個(gè)附加類 SingleSelectionModel類 跟蹤當(dāng)前選定的菜單LookAndFeel類 負(fù)責(zé)繪制菜單欄以及對在其中發(fā)生的事件作出響應(yīng)構(gòu)造函數(shù)只有一個(gè) JMenuBar add JMenuc 將菜單添加到菜單欄中 46 菜單JMenu2 1 JMenu在JMenuBar下以文本字符串形式顯示 而在用戶單擊它時(shí) 則以彈出式菜單顯示 JMenu具有兩個(gè)附加類 JPopupMenu 用于顯示JMenu的菜單項(xiàng)LookAndFeel 負(fù)責(zé)繪制菜單欄中的菜單以及對在其中發(fā)生的所有事件作出響應(yīng)構(gòu)造函數(shù) JMenu JMenu Actiona JMenu Strings 以給定的字符串構(gòu)造一個(gè)菜單對象JMenu Strings booleanb 47 菜單JMenu2 2 JMenu類的常用方法 add JMenuItemitem 添加一個(gè)菜單項(xiàng) 或菜單 add Stringlabel 添加一個(gè)菜單項(xiàng)到菜單中add Actiona 添加一個(gè)菜單項(xiàng)并且為其關(guān)聯(lián)一個(gè)動作addSeparator 添加一個(gè)分割符到菜單中inset JMenuItemmenu intindex 把一個(gè)菜單項(xiàng) 或子菜單 添加到菜單的指定位置處insertSeparator intindex 添加一個(gè)分割符到菜單中的指定位置上remove intindex 從菜單中刪除指定的菜單項(xiàng)remove JMenuItemitem 從菜單中刪除指定的菜單項(xiàng) 48 彈出式菜單JPopupMenu2 1 是一種不固定在菜單欄中 可以隨處浮動的菜單構(gòu)造函數(shù)JPopupMenu JPopupMenu Stringlabel 指定標(biāo)題創(chuàng)建必須明確調(diào)用show方法來顯示彈出式菜單show Componentinvoker intx inty 參數(shù) invoker彈出式菜單在其內(nèi)顯示的組件x y左上角的坐標(biāo) 使用invoker的坐標(biāo) popup show panel x y 49 彈出式菜單JPopupMenu2 2 通常當(dāng)用戶點(diǎn)擊某個(gè)鼠標(biāo)鍵時(shí) 彈出菜單就會出現(xiàn) 這就是所謂的彈出觸發(fā)器 在WINDOWS中 彈出觸發(fā)器通常是鼠標(biāo)右鍵 建立彈出觸發(fā)器的步驟 安裝一個(gè)鼠標(biāo)監(jiān)聽器在鼠標(biāo)監(jiān)聽器中添加如下代碼 PublicvoidmousePressed MouseEventevent If event isPopupTrigger popup show event getComponet event getx event gety 當(dāng)用戶點(diǎn)擊鼠標(biāo)右鍵時(shí) 會在鼠標(biāo)位置處顯示彈出菜單 50 菜單項(xiàng)JMenuItem 菜單項(xiàng)JMenuItem是JMenu或JPopupMenu中的一個(gè)組件 以文本字符串形式顯示 可以具有圖標(biāo) 它同按鈕非常相似JMenuItem的外觀可以修改 如字體 顏色 背景 邊框等構(gòu)造函數(shù) JMenuItem JMenuItem Actiona JMenuItem Iconicon JMenuItem Stringtext JMenuItem Stringtext Iconicon JMenuItem Stringtext intmnemonic 例 JMenuItemcutItem newJMenuItem Cut newImageIcon cut gif 51 復(fù)選框菜單項(xiàng)JCheckBoxMenuItem2 1 這種菜單項(xiàng)在文本旁邊顯示一個(gè)復(fù)選框 當(dāng)用戶選擇該菜單項(xiàng)時(shí) 該菜單項(xiàng)會自動在選擇和未選擇之間切換構(gòu)造函數(shù) JCheckBoxMenuItem JCheckBoxMenuItem Iconicon JCheckBoxMenuItem Stringtext JCheckBoxMenuItem Stringtext booleanb JCheckBoxMenuItem Stringtext Iconicon JCheckBoxMenuItem Stringtext Iconicon booleanb JCheckBoxMenuItem Actiona 例 JCheckBoxMenuItemmyitem newJCheckBoxMenuItem read only menu add myitem 52 復(fù)選框菜單項(xiàng)JCheckBoxMenuItem2 2 使用這種菜單項(xiàng) 你應(yīng)該使用isSelected方法來測試菜單項(xiàng)的當(dāng)前狀態(tài) 這意味著你應(yīng)該保留一個(gè)實(shí)例變量保存該菜單項(xiàng)的引用 設(shè)置狀態(tài)的方法是setSelectedbooleanisSelected 返回該條項(xiàng)的選擇狀態(tài) true為被選定 voidsetSelected booleanstate 設(shè)置該條項(xiàng)的選擇狀態(tài) 53 單選按鈕菜單項(xiàng)JRadioButtonMenuItem2 1 這種菜單項(xiàng)在文本旁邊顯示一個(gè)單選按鈕構(gòu)造函數(shù) JRadioButtonMenuItem JRadioButtonMenuItem Iconicon JRadioButtonMenuItem Stringtext JRadioButtonMenuItem Stringtext booleanb JRadioButtonMenuItem Stringtext Iconicon JRadioButtonMenuItem Stringtext Iconicon booleanb 你必須把它們添加到一個(gè)按鈕組中 當(dāng)組中的一個(gè)按鈕被選擇以后 所有的其它按鈕都自動成為未選擇項(xiàng)例 ButtonGroupgroup newButtonGroup JRadioButtonMenuIteminsitem newJRadioButtonMenuItem Insert Insitem setSelected true JRadioButtonMenuItemovrtype newJRadioButtonMenuItem Overtype group add insitem group add ovrtype menu add insitem menu add ovrtype 54 單選按鈕菜單項(xiàng)JRadioButtonMenuItem2 2 使用這種菜單項(xiàng) 你應(yīng)該使用isSelected方法來測試菜單項(xiàng)的當(dāng)前狀態(tài) 這意味著你應(yīng)該保留一個(gè)實(shí)例變量保存該菜單項(xiàng)的引用 設(shè)置狀態(tài)的方法是setSelectedbooleanisSelected 返回該條項(xiàng)的選擇狀態(tài) true為被選定 voidsetSelected booleanstate 設(shè)置該條項(xiàng)的選擇狀態(tài) 55 創(chuàng)建菜單2 1 四個(gè)步驟 創(chuàng)建菜單欄 創(chuàng)建菜單以及子菜單 創(chuàng)建菜單項(xiàng) 并將菜單項(xiàng)加入到子菜單或菜單中 將子菜單加入到菜單中 將菜單加入到菜單欄中 a 創(chuàng)建菜單欄 并將菜單欄加入到框架中 JMenuBarmenuBar newJMenuBar Frame setJMenuBar menuBar b 創(chuàng)建 File 菜單 Edit 菜單和 View 菜單 JMenufileMenu newJMenu File JMenueditMenu newJMenu Edit JMenuviewMenu newJMenu View b 創(chuàng)建子菜單 JMenuoptionMenu newJMenu Option 56 創(chuàng)建菜單2 2 c 通過Action對象新建 New 菜單項(xiàng) 并添加事件監(jiān)聽器 newItem fileMenu add newShowAction New c 通過指定菜單項(xiàng)對象新建 Paste 菜單項(xiàng) pasteItem newJMenuItem Paste P d 將菜單項(xiàng)加入到子菜單或菜單中 將子菜單加入到菜單中 將菜單加入到菜單欄中 fileMenu add newItem editMenu add pasteItem viewMenu add optionMenu menuBar add fileMenu menuBar add editMenu menuBar add viewMenu 57 創(chuàng)建復(fù)選框和單選按鈕菜單項(xiàng) 和創(chuàng)建一般的菜單項(xiàng)幾乎一樣 只需要注意一下復(fù)選框和單選按鈕的不同構(gòu)造函數(shù)以及單選按鈕組的構(gòu)建 創(chuàng)建單選按鈕菜單項(xiàng) Forward 并將 Forward 菜單項(xiàng)加入到 Search 菜單中 ButtonGroupgroup newButtonGroup forwardItem newJRadioButtonMenuItem Forward group add forwardItem searchMenu add forwardItem 創(chuàng)建復(fù)選框菜單項(xiàng) ToolBar 并加入到子菜單中 JCheckBoxMenuItemtoolItem newJCheckBoxMenuItem ToolBar optionMenu add toolItem 58 快捷鍵和加速器 快捷鍵顯示為帶有下劃線的字母 加速器則顯示為菜單項(xiàng)旁邊的組合鍵 快捷鍵用來從當(dāng)前打開的菜單中選擇一個(gè)子菜單或菜單項(xiàng) 而加速器是在不打開菜單的情況下選擇菜單項(xiàng)的快捷鍵 例 設(shè)置菜單的快捷鍵 fileMenu setMnemonic F 設(shè)置 Exit 菜單項(xiàng)的快捷鍵為 T JMenuItemexitItem newJMenuItem Exit T 設(shè)置 Exit 菜單項(xiàng)的加速器為 Ctrl T exitItem setAccelerator KeyStroke getKeyStroke KeyEvent VK T InputEvent CTRL MASK 加速器只能關(guān)聯(lián)到菜單項(xiàng) 而不是菜單 加速器鍵實(shí)際上只是直接激活同菜單項(xiàng)關(guān)聯(lián)的事件而已 59 啟用和禁用菜單項(xiàng) 一個(gè)菜單項(xiàng)能否被選取取決于菜單項(xiàng)的啟用或禁用狀態(tài)啟用或禁用菜單項(xiàng)需要使用setEnabled方法 saveItem setEnabled false 啟用或禁用菜單項(xiàng)用兩種策略 第一種是每當(dāng)環(huán)境發(fā)生改變 你就對相關(guān)的菜單項(xiàng)和動作調(diào)用setEnabled方法 例如 只要一個(gè)文檔以只讀形式打開 你就要禁用Save和Saveas菜單項(xiàng)另外一種方法是 你可以在顯示菜單之前為它們進(jìn)行設(shè)置 你必須為 menuselected 事件注冊一個(gè)監(jiān)聽器 javax swing event包定義了一個(gè)MenuListener接口 它有如下3個(gè)方法 voidmenuSelected MenuEvente 在菜單被選擇但尚未打開之前被調(diào)用voidmenuDeselected MenuEvente 在菜單被取消選擇并且已被關(guān)閉之后被調(diào)用voidmenuCanceled MenuEvente 在菜單被取消時(shí)被調(diào)用 如點(diǎn)擊菜單以外的區(qū)域時(shí) 60 彈出式菜單 彈出式菜單的創(chuàng)建和菜單的創(chuàng)建基本相同 也需要新建一個(gè)彈出式菜單后再加入菜單項(xiàng) 例 創(chuàng)建彈出式菜單 popup newJPopupMenu 新建彈出式菜單中的 Cut 菜單項(xiàng)和監(jiān)聽器 cutItemPop newJMenuItem Cut C popup add cutItemPop 61 菜單使用示例 菜單的用法 程序代碼見MenuExample java 運(yùn)行結(jié)果如下 62 對話框2 1 對話框用于顯示信息或從用戶收集信息對話框分為模式對話框和無模式對話框模式對話框必須在用戶處理完后才允許用戶與主窗口繼續(xù)進(jìn)行交互 無模式對話框允許用戶同時(shí)在對話框和程序剩余部分中輸入信息 Swing有一個(gè)方便的類JOptionPane 該類能夠讓你在不編寫任何專門對話框代碼的情況下彈出一個(gè)簡單的對話框 JOptionPane有以下4種靜態(tài)方法來顯示這些簡單的對話框 showMessageDialog 顯示一條消息等待用戶點(diǎn)擊OK showConfirmDialog 顯示一條消息并等待確認(rèn) showOptionDialog 顯示一條消息并等待用戶在一組自定義選項(xiàng)中的選擇 showInputDialog 顯示一條消息并等待用戶的輸入 63 對話框2 2 以showConfirmDialog為例 intselection JOptionPane showConfirmDialog DialogFrame this 父窗口 Areyousure Logout 消息以及對話框標(biāo)題JOptionPane OK CANCEL OPTION 底部按鈕類型JOptionPane WARNING MESSAGE 消息類型底部按鈕的類型和對話框有密切的關(guān)系 對于showMessageDialog和showInputDialog對話框來說 只能有一組標(biāo)準(zhǔn)按鈕 分別是OK和OK CANCEL 對于showConfirmDialog 按鈕可以包括四種 DEFAULT OPTIONYES NO OPTIONYES NO CANCEL OPTIONOK CANCEL OPTION 64 對話框使用示例 對話框的使用 當(dāng)單擊 退出 按鈕時(shí) 將彈出對話框 同時(shí)原先的框架窗口將不能被激活 必須選擇對話框中的一個(gè)選項(xiàng)才能夠退出對話框 程序代碼見DialogExample java 運(yùn)行結(jié)果如下 65 創(chuàng)建自己的對話框 步驟 寫一個(gè)類繼承JDialog類 在你的對話框類的構(gòu)造函數(shù)中 調(diào)用基類JDialog的構(gòu)造函數(shù) 你需要告訴它擁有者框架 對話框顯示在其上的一個(gè)框架窗口 對話框的標(biāo)題 以及一個(gè)指明對話框是模式的還是無模式的布爾標(biāo)志 如果你不在乎對話框的顯示位置 那么擁有者框架的值可設(shè)為null 典型的窗口系統(tǒng)都要求每個(gè)彈出窗口都為另一個(gè)框架所擁有 因此 Swing構(gòu)造了一個(gè)公用的隱藏框架作為所有擁有者為null的對話框的擁有者 添加該對話框的用戶界面組件 添加事件處理器 設(shè)置對話框的大小 66 總結(jié)

注意事項(xiàng)

本文(swing用戶界面組件.ppt)為本站會員(za****8)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(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),我們立即給予刪除!