13.SWING的用戶界面組件_第1頁(yè)
13.SWING的用戶界面組件_第2頁(yè)
13.SWING的用戶界面組件_第3頁(yè)
13.SWING的用戶界面組件_第4頁(yè)
13.SWING的用戶界面組件_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Swing,2,目標(biāo),描述 Swing 的結(jié)構(gòu) 使用 Swing GUI 的容器 使用Swing文本組件 使用Swing中用于選擇性輸入的常用組件 使用Swing菜單,3,Swing介紹,Java1.2引入稱為Swing的新的GUI組件庫(kù)。 Swing包括javax.swing包及其子包。 Swing有一個(gè)與平臺(tái)無(wú)關(guān)的實(shí)現(xiàn),而且具有一個(gè)藝術(shù)狀態(tài)的屬性集。 盡管Swing獨(dú)立于AWT,但它是依照基本的 AWT類實(shí)現(xiàn)的。,4,Swing 結(jié)構(gòu),Object,Component,JFrame,Container,Window,Frame,Dialog,JDialog,JText,JComboBox,

2、JLabel,JList,JMenuBar,JOptionPane,JPanel,JScrollBar,AbstractButton,JToggleButton,JMenuItem,JButton,JCheckBox,JRadioButton,JComponent,JMenu,5,Swing 組件,Swing 組件獨(dú)立于本地窗口系統(tǒng)。 Swing組件除了 AbstractButton 類之外都以 J 開(kāi)頭。 Swing 組件是基于 AWT 構(gòu)建。 包含 AWT 可視化組件的替代組件,也包含復(fù)雜組件 - 樹(shù)和表,J,6,Swing 應(yīng)用程序的容器層次,設(shè)計(jì) GUI 時(shí),都有用于放置可視化組件的主

3、窗口。 Container 對(duì)象可用于將組件組合在一起。 容器中的組件根據(jù)特定布局排列。 Swing 中的容器有兩類: - 頂級(jí)容器 - 中間容器,Java Swing,JLabel 標(biāo)簽 JTextField 文本框 JTextArea 文本域 JButton 按鈕 JComboBox 選擇框 JCheckBox 單選框,Java Swing,JRadioButton 選擇按鈕 ButtonGroup 按鈕組 JMenuBar菜單條 JMenu菜單 JMenuItem菜單欄 ImageIcon 圖像 JTree JTable,9,頂級(jí)容器,JFrame:用于框架窗口的類,此窗口帶有邊框、標(biāo)題

4、、用于關(guān)閉和最小化窗口的圖標(biāo)等。帶 GUI 的應(yīng)用程序通常至少使用一個(gè)框架窗口。 JDialog:用于對(duì)話框的類。 JApplet:用于使用 Swing 組件的 Java Applet 的類。,10,中間容器,JPanel:最靈活、最常用的中間容器。 JScrollPane:與 JPanel 類似,但還可在大的組件或可擴(kuò)展組件周圍提供滾動(dòng)條。 JTabbedPane:包含多個(gè)組件,但一次只顯示一個(gè)組件。用戶可在組件之間方便地切換。 JToolBar:按行或列排列一組組件(通常是按鈕)。,11,Swing GUI框架,你好,世界,菜單欄,頂級(jí)容器,GUI組件,GUI組件,內(nèi)容窗格,12,基本的

5、Swing 應(yīng)用程序,import javax.swing.*; public class HelloSwing public static void main(String args) JFrame frame = new JFrame(HelloSwing); JLabel label = new JLabel(你好,Swing); frame.getContentPane().add(label); frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); frame.setSize(300,200); frame.setVisible

6、(true); ,導(dǎo)入必要的包,一般還需導(dǎo)入: import java.awt.*; import java.awt.event.*;,設(shè)置一個(gè) 頂級(jí)容器,創(chuàng)建一個(gè) Swing組件,將組件添加到 容器內(nèi)容窗格,實(shí)現(xiàn)了在單擊“關(guān)閉”按鈕時(shí), 可以關(guān)閉窗口。如果使用的 早期版本的平臺(tái),則需要通過(guò)事件監(jiān)聽(tīng)器實(shí)現(xiàn),13,JFrame,是放置其他 Swing 組件的頂級(jí)容器 JFrame 組件用于在 Swing 程序中創(chuàng)建窗體 它的構(gòu)造函數(shù): JFrame() JFrame(String Title) 組件必須添加至內(nèi)容窗格,而不是直接添加至 JFrame 對(duì)象,示例: frame.getContent

7、Pane().add(b);,14,JPanel,JPanel 組件是一個(gè)中間容器 用于將小型的輕量級(jí)組件組合在一起 JPanel 的缺省布局為 FlowLayout JPanel 具有下列構(gòu)造函數(shù): JPanel() JPanel(LayoutManager lm),15,JButton,Swing 的按鈕相對(duì)于AWT中Button類提供了更多的功能。 JButton類允許用圖標(biāo)、字符串或兩者同時(shí)構(gòu)造一個(gè)按鈕。 構(gòu)造函數(shù)如下: JButton() JButton(Icon icon):icon表示使用的圖標(biāo) JButton(String text):text表示使用的字符串 JButton(

8、String text, Icon icon), ImageIcon buttonIcon1 = new ImageIcon(on.gif); JButton b1 = new JButton(First Button, buttonIcon1); b1.setMnemonic(KeyEvent.VK_F); ,設(shè)置鍵盤 快捷方式,創(chuàng)建一個(gè)帶圖標(biāo)的JButton,16,JPanel和JButton使用示例,import java.awt.*; import javax.swing.*; class PanelDemo extends JFrame public PanelDemo( Strin

9、g title) super(title); Container c=getContentPane(); JPanel cpane = new JPanel(); JButton ok = new JButton(確定); cpane.add(ok); JButton cancel = new JButton(取消); cpane.add(cancel); c.add(cpane,BorderLayout.SOUTH); ,public static void main(String args) PanelDemo pd=new PanelDemo(JPanel測(cè)試); pd.setSize(

10、300,200); pd.setVisible(true); ,17,JLabel,它既可以顯示文本也可以顯示圖像 構(gòu)造函數(shù)如下: JLabel(Icon icon):icon表示使用的圖標(biāo) JLabel(String text,Icon icon,int align):text表示使用的字符串; icon表示使用的圖標(biāo);align表示水平對(duì)齊方式,其值可以為:LEFT、RIGHT、CENTER。, ImageIcon icon = new ImageIcon(Calv.gif); JLabel calv_label = new JLabel(這是 Calvin, icon, SwingCon

11、stants.LEFT); ,18,文本組件,JtextComponent 為所有 Swing 文本組件的根類,19,JTextField,JTextField 組件允許輸入或編輯單行文本 此類的構(gòu)造函數(shù)包括: JTextField() JTextField(Document doc, String text, int columns) JTextField(int columns) JTextField(String text) JTextField(String text, int columns), Container con = getContentPane(); con.setLay

12、out(new FlowLayout(); JLabel jl = new JLabel(“文本域”); con.add(jl); JTextField tf = new JTextField(20); con.add(tf); ,20,JTextArea,JTextArea 組件用于接受來(lái)自用戶的多行文本 它可實(shí)現(xiàn)可滾動(dòng)界面 JTextArea 組件可使用下列構(gòu)造函數(shù)創(chuàng)建: JTextArea() JTextArea(int rows, int cols) JTextArea(String text) JTextArea(String text, int rows, int cols) JT

13、extArea(Document doc) JTextArea(Document doc, String text, int rows, int cols), JLabel jl = new JLabel(“文本區(qū)”); con.add(jl); JTextArea ta = new JTextArea(5,10); con.add(ta); ,21,選擇性輸入,為了簡(jiǎn)化表單填寫(xiě)過(guò)程,通常為用戶提供多種可供選擇的選項(xiàng),而無(wú)需用戶寫(xiě)出他們的響應(yīng)。常用于選擇性輸入的組件有: 復(fù)選框 單選按鈕 列表框 組合框,22,復(fù)選框,復(fù)選框用于為用戶提供一組選項(xiàng) JCheckBox 類具有下列構(gòu)造函數(shù): JC

14、heckBox() JCheckBox(Icon icon) JCheckBox(Icon icon, boolean selected) JCheckBox(String text) JCheckBox(String text, boolean selected) JCheckBox(String text, Icon icon) JCheckBox(String text, Icon icon, boolean selected),23,單選按鈕,單選按鈕允許用戶從多個(gè)選項(xiàng)中選擇其中一個(gè) ButtonGroup 用于在 Swing 中創(chuàng)建組 JRadioButton 對(duì)象可使用下列構(gòu)造函數(shù)

15、創(chuàng)建: JRadioButton() JRadioButton(Icon icon) JRadioButton(Icon, boolean selected) JRadioButton(String text) JRadioButton(String text, boolean selected) JRadioButton(String text, Icon icon) JRadioButton(String text, Icon icon, boolean selected),24,JCheckBox和JRadioButton使用示例,import java.awt.*; import ja

16、vax.swing.*; class Hobby extends JPanel JCheckBox c1 = new JCheckBox(閱讀,false); JCheckBox c2 = new JCheckBox(音樂(lè),false); JCheckBox c3 = new JCheckBox(繪畫(huà),false); JRadioButton rad1 = new JRadioButton(大專); JRadioButton rad2 = new JRadioButton(本科); JRadioButton rad3 = new JRadioButton(碩士); JLabel jl = ne

17、w JLabel(您有什么愛(ài)好? ); JLabel j2 = new JLabel(您的最高學(xué)歷? ); JButton exitbtn = new JButton(退出); public Hobby( ) setLayout(new GridLayout(9,1); add(jl); add(c1); add(c2); add(c3); add(j2); add(rad1); add(rad2); add(rad3); add(exitbtn); ,public class Hobbytest extends JFrame Hobbytest() super(); getContentPa

18、ne().add(new Hobby(); setSize(300,200); setVisible(true); public static void main(String args) new Hobbytest(); ,25,列表,在可供選擇的選項(xiàng)很多時(shí),可向用戶呈現(xiàn)一個(gè)列表來(lái)供他們選擇 JList 組件依次排列項(xiàng)目列表,這些項(xiàng)目可以單選或多選 JList 類既可顯示字符串,也可顯示圖標(biāo) JList 不支持雙擊 MouseListener 可用于解決雙擊問(wèn)題,26,JList 構(gòu)造函數(shù),public JList() : 使用空模型構(gòu)造 JList public JList(ListMod

19、el dataModel) :構(gòu)造一個(gè)列表,用它顯示指定模型中的元素。 public JList (Object listData) :構(gòu)造一個(gè)列表以顯示指定數(shù)組listData的元素。 JList 不支持滾動(dòng)。要啟用滾動(dòng),可使用下列代碼: JScrollPane myScrollPane=new JScrollPane(); myScrollPane.getViewport().setView(dataList);, String stars = 安東尼奧.班德拉斯,來(lái)昂納多.迪卡普尼奧, 桑德拉.布洛克,休.格蘭特,朱莉亞.羅伯茨; JList moviestars = new JList

20、(stars); ,27,組合框,文本域和下拉列表的組合 在 Swing 中,組合框由 JComboBox 表示 構(gòu)造函數(shù)如下: public JComboBox() : 此構(gòu)造函數(shù)使用缺省數(shù)據(jù)模型創(chuàng)建 JComboBox public JComboBox(ComboBoxModel asModel) : 使用現(xiàn)有 ComboBoxModel 中的項(xiàng)目的組合框 public JComboBox(Object items) : 包含指定數(shù)組元素的組合框, String names = 弗雷德里克.福西斯, 約翰.克里沙姆, 瑪麗.希金斯.克拉克,帕特麗夏.康威爾; JComboBox autho

21、rs = new JComboBox(names); ,28,菜單顯示項(xiàng)目列表,指明各種任務(wù)。 選擇或單擊某個(gè)選項(xiàng)時(shí)會(huì)打開(kāi)另一個(gè)列表或子菜單。 Swing 菜單由菜單欄、菜單和菜單項(xiàng)構(gòu)成。 菜單欄是所有菜單和菜單項(xiàng)的根,菜單,29,JFC 菜單組件,30,JMenuBar,JMenuBar 是可通過(guò) JFrame、JWindow 或 JInternalFrame 的根窗格添加至容器的組件。 由多個(gè) JMenu 組成,每個(gè) JMenu 在 JMenubar 中都表示為字符串。 JMenuBar 需要兩個(gè)附加類: SingleSelectionModel類 : 跟蹤當(dāng)前選定的菜單 LookAndF

22、eel類 :負(fù)責(zé)繪制菜單欄以及對(duì)在其中發(fā)生的事件作出響應(yīng),31,JMenu,JMenu 在 JMenuBar 下以文本字符串形式顯示,而在用戶單擊它時(shí),則以彈出式菜單顯示。 JMenu 具有兩個(gè)附加類: JPopupMenu :用于顯示 JMenu 的菜單項(xiàng) LookAndFeel :負(fù)責(zé)繪制菜單欄中的菜單以及對(duì)在其中發(fā)生的所有事件作出響應(yīng),32,JPopupMenu 的函數(shù),33,JMenuItem,JMenu 或 JPopupMenu 中的一個(gè)組件,以文本字符串形式顯示,可以具有圖標(biāo) JMenuItem 的外觀可以修改,如字體、顏色、背景、邊框等 除字符串外,在 JMenuItem 中還可以添加圖標(biāo),34,JCheckBoxMenuItem,將復(fù)選框作為其項(xiàng)目 復(fù)選框是使用 JCheckBox 類創(chuàng)建的 可有文本字符串和(或)圖標(biāo) 在單擊并釋放 JCheckBoxMenuItem 時(shí),菜單項(xiàng)的狀態(tài)會(huì)變?yōu)檫x定或取消選定,35,JRadioButtonMenuItem,除了在任何時(shí)間點(diǎn)都只能選擇一個(gè)單選按鈕外,其他的與復(fù)選框類似 可有文本字符串和(或)圖標(biāo) 單擊選定的單選

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論