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