資源描述:
《java中的swing常用組件講解》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、在Java1.0中,已經(jīng)有一個(gè)用于GUI編程的類庫(kù)AWT,稱之為抽象窗口工具箱。遺憾的是,AWT中的組件(例如按鈕,類名為Button)在實(shí)現(xiàn)中使用了本地代碼(NativeCode),這些組件的創(chuàng)建和行為是由應(yīng)用程序所在平臺(tái)上的本地GUI工具來(lái)處理的。因此,AWT組件要在不同的平臺(tái)上提供給用戶一致的行為就受到了很大的限制。同時(shí),AWT組件中還存在很多bug,這就使得使用AWT來(lái)開(kāi)發(fā)跨平臺(tái)的GUI應(yīng)用程序困難重重?! ?996年,SUN公司和Netsacpe公司在一個(gè)稱為Swing的項(xiàng)目中合作完善了Netsa
2、cpe公司原來(lái)開(kāi)發(fā)的一套GUI庫(kù),也就是現(xiàn)在所謂的Swing組件。Swing組件和原來(lái)的AWT組件完全不同,最大的區(qū)別就是Swing組件的實(shí)現(xiàn)中沒(méi)有使用本地代碼,這樣對(duì)底層平臺(tái)的依賴型就大為降低,并且可以給不同平臺(tái)的用戶一致的感覺(jué)。此外,和原來(lái)的AWT相比,Swing中提供了內(nèi)容更多、使用更為方便的組件?! ≡陂喿x一些書(shū)籍時(shí),常會(huì)遇到名詞JFC(JavaFoundationClass)。JFC的概念是在1997年的JavaOne開(kāi)發(fā)者大會(huì)上首次提出的,是指用于構(gòu)建GUI的一組API。實(shí)際上,Swing只是J
3、FC的一部分,其它的還有二維圖形(Java2D)API以及拖放(DragandDrop)API等等。 Swing并不是完全取代了AWT,Swing只是使用更好的GUI組件(如JButton)代替AWT中相應(yīng)的GUI組件(如Button),并且增加了一些AWT中原來(lái)所沒(méi)有的GUI組件。并且,Swing仍使用AWT1.1的事件處理模型?! ‰m然現(xiàn)在AWT組件仍得到支持,但是建議在你的應(yīng)用程序中盡量使用Swing組件和1.1的事件模型?! ?.標(biāo)簽(JLabel) 標(biāo)簽(JLabel)通常是用來(lái)標(biāo)識(shí)另外一個(gè)組
4、件的含義。以在標(biāo)簽上顯示文字、圖象或是文字圖象的組合?! LabellabText=newJLabel(“文本標(biāo)簽”); labText.setText("文本標(biāo)簽"); ImageIconicon=newImageIcon("image/greenflag20.gif"); JLabellabImage=newJLabel(icon); labImage.setIcon(icon); 2.密碼框(JPasswordField) 密碼框?qū)嶋H上是一種特殊類型的文本框,用戶可以向其中輸入文本并加以
5、編輯。和文本框不同的是,向密碼框中輸入文本時(shí),顯示的不是實(shí)際輸入的文本,而是特殊的回顯字符(通常是'*')??梢允褂胹etEchoChar(charc)方法來(lái)改變?nèi)笔〉幕仫@字符?! ⌒枰⒁獾氖?,取得文本框中的文本時(shí),使用方法getText(),該方法返回的是一個(gè)String類型的對(duì)象;而要取得密碼框中的文本,使用方法getPassword(),該方法返回的是一個(gè)char數(shù)組?! ±?,創(chuàng)建了一個(gè)密碼框: JPasswordFieldtxtPwd=newJPasswrodField(20); 設(shè)定該密碼
6、框的回顯字符為'#': txtPwd.setEchoChar('#'); 取得密碼框中的內(nèi)容: char[]pwd=txtPwd.getPassword(); 也可以方便地將char數(shù)組轉(zhuǎn)化為String類型的對(duì)象: StringpwdStr=newString(txtP.getPassword()); 3.菜單 (1)菜單也是一種常用的GUI組件,菜單采用的是一種層次結(jié)構(gòu),最頂層是菜單欄(JMenuBar);在菜單欄中可以添加若干個(gè)菜單(JMenu),每個(gè)菜單中又可以添加若干個(gè)菜單選項(xiàng)(JM
7、enuItem)、分隔線(Separator)或是菜單(稱之為子菜單)?! ?2)構(gòu)建應(yīng)用程序的菜單時(shí),先創(chuàng)建一個(gè)菜單欄: JMemuBarmenuBar=newJMenuBar(); 通常使用框架的setJMenuBar(JMenuBaraMenuBar)方法將菜單欄置于框架中: frame.setJMenuBar(menuBar); 隨后,創(chuàng)建所需要的各菜單并逐個(gè)添加到菜單欄中,例如: JMenumenuDBAccount=newJMenu("電表出帳(C)"); ... JMenumen
8、uSysConfig=newJMenu("系統(tǒng)設(shè)置(X)"); menuBar.add(menuDBAccount); ... menuBar.add(menuSysConfig); 最后,向各個(gè)菜單中添加菜單選項(xiàng)、分隔線或是子菜單,如圖所示的系統(tǒng)設(shè)置菜單為例: //創(chuàng)建菜單選項(xiàng)或是子菜單 JMenuItemsysConfigItem=newJMenuItem("參數(shù)設(shè)置(S)..."); JMen