Transparancy 9Java語言概述(benet).ppt_第1頁
Transparancy 9Java語言概述(benet).ppt_第2頁
Transparancy 9Java語言概述(benet).ppt_第3頁
Transparancy 9Java語言概述(benet).ppt_第4頁
Transparancy 9Java語言概述(benet).ppt_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Swing,第九章,2,回顧,Graphics 類用于在屏幕上繪制諸如文本、線條、矩形和橢圓的對象。 Font 類用于使 Java 程序輸出結(jié)果中的文本顯得更生動。 FontMetrics 類用于獲得關(guān)于字體的信息。 Color 類用于向應(yīng)用程序或小應(yīng)用程序組件添加顏色。 繪圖模式?jīng)Q定了對象如何被畫在窗口中。,3,目標(biāo),描述 Swing 的結(jié)構(gòu) 使用 Swing GUI 的容器 使用Swing文本組件 使用Swing中用于選擇性輸入的常用組件 使用Swing菜單,4,簡介,許多軟件平臺都提供“基本類庫”(FC) 基本類庫簡化了設(shè)計(jì)過程,并減少了在編寫代碼上花費(fèi)的時間 Microsoft 基本類

2、 (MFC) 和 Java 基本類 (JFC) 是兩個使用廣泛的類庫,5,Java 基本類庫 (JFC),JFC 通過添加一組 GUI 類庫擴(kuò)展了原始 AWT JFC提供附加的可視化組件類以及屏幕設(shè)計(jì)的獨(dú)特方式 JFC 是一組 API,包括以下的一些模塊: Swing 組件集 可訪問性 API 拖放 API Java 2D API,6,Swing介紹,Java1.2引入稱為Swing的新的GUI組件庫。 Swing包括javax.swing包及其子包。 Swing有一個與平臺無關(guān)的實(shí)現(xiàn),而且具有一個藝術(shù)狀態(tài)的屬性集。 盡管Swing獨(dú)立于AWT,但它是依照基本的 AWT類實(shí)現(xiàn)的。,7,MVC設(shè)

3、計(jì)模式,8,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,9,Swing 組件,Swing 組件獨(dú)立于本地窗口系統(tǒng)。 Swing組件除了 AbstractButton 類之外都以 J 開頭。 S

4、wing 組件是基于 AWT 構(gòu)建。 包含 AWT 可視化組件的替代組件,也包含復(fù)雜組件 - 樹和表,J,10,Swing 應(yīng)用程序的容器層次,設(shè)計(jì) GUI 時,都有用于放置可視化組件的主窗口。 Container 對象可用于將組件組合在一起。 容器中的組件根據(jù)特定布局排列。 Swing 中的容器有兩類: - 頂級容器 - 中間容器,11,頂級容器,JFrame:用于框架窗口的類,此窗口帶有邊框、標(biāo)題、用于關(guān)閉和最小化窗口的圖標(biāo)等。帶 GUI 的應(yīng)用程序通常至少使用一個框架窗口。 JDialog:用于對話框的類。 JApplet:用于使用 Swing 組件的 Java Applet 的類。,1

5、2,中間容器,JPanel:最靈活、最常用的中間容器。 JScrollPane:與 JPanel 類似,但還可在大的組件或可擴(kuò)展組件周圍提供滾動條。 JTabbedPane:包含多個組件,但一次只顯示一個組件。用戶可在組件之間方便地切換。 JToolBar:按行或列排列一組組件(通常是按鈕)。,13,Swing GUI框架,你好,世界,菜單欄,頂級容器,GUI組件,GUI組件,內(nèi)容窗格,14,基本的 Swing 應(yīng)用程序,import javax.swing.*; public class HelloSwing public static void main(String args) JFra

6、me 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(true); ,導(dǎo)入必要的包,一般還需導(dǎo)入: import java.awt.*; import java.awt.event.*;,設(shè)置一個 頂級容器,創(chuàng)建一個 Swing組件,將組件添加到

7、容器內(nèi)容窗格,實(shí)現(xiàn)了在單擊“關(guān)閉”按鈕時, 可以關(guān)閉窗口。如果使用的 早期版本的平臺,則需要通過事件監(jiān)聽器實(shí)現(xiàn),15,JFrame,是放置其他 Swing 組件的頂級容器 JFrame 組件用于在 Swing 程序中創(chuàng)建窗體 它的構(gòu)造函數(shù): JFrame() JFrame(String Title) 組件必須添加至內(nèi)容窗格,而不是直接添加至 JFrame 對象,示例: frame.getContentPane().add(b);,16,JPanel,JPanel 組件是一個中間容器 用于將小型的輕量級組件組合在一起 JPanel 的缺省布局為 FlowLayout JPanel 具有下列構(gòu)造函

8、數(shù): JPanel() JPanel(LayoutManager lm),17,JButton,Swing 的按鈕相對于AWT中Button類提供了更多的功能。 JButton類允許用圖標(biāo)、字符串或兩者同時構(gòu)造一個按鈕。 構(gòu)造函數(shù)如下: JButton() JButton(Icon icon):icon表示使用的圖標(biāo) JButton(String text):text表示使用的字符串 JButton(String text, Icon icon), ImageIcon buttonIcon1 = new ImageIcon(on.gif); JButton b1 = new JButton(F

9、irst Button, buttonIcon1); b1.setMnemonic(KeyEvent.VK_F); ,設(shè)置鍵盤 快捷方式,創(chuàng)建一個帶圖標(biāo)的JButton,18,JPanel和JButton使用示例,import java.awt.*; import javax.swing.*; class PanelDemo extends JFrame public PanelDemo( String title) super(title); Container c=getContentPane(); JPanel cpane = new JPanel(); JButton ok = new

10、 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測試); pd.setSize(300,200); pd.setVisible(true); ,19,JLabel,它既可以顯示文本也可以顯示圖像 構(gòu)造函數(shù)如下: JLabel(Icon icon):icon表示使用的圖標(biāo) JL

11、abel(String text,Icon icon,int align):text表示使用的字符串; icon表示使用的圖標(biāo);align表示水平對齊方式,其值可以為:LEFT、RIGHT、CENTER。, ImageIcon icon = new ImageIcon(Calv.gif); JLabel calv_label = new JLabel(這是 Calvin, icon, SwingConstants.LEFT); ,20,文本組件,JtextComponent 為所有 Swing 文本組件的根類,21,JTextField,JTextField 組件允許輸入或編輯單行文本 此類的

12、構(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.setLayout(new FlowLayout(); JLabel jl = new JLabel(“文本域”); con.add(jl); JTextField tf = new JTextField(2

13、0); con.add(tf); ,22,JTextArea,JTextArea 組件用于接受來自用戶的多行文本 它可實(shí)現(xiàn)可滾動界面 JTextArea 組件可使用下列構(gòu)造函數(shù)創(chuàng)建: JTextArea() JTextArea(int rows, int cols) JTextArea(String text) JTextArea(String text, int rows, int cols) JTextArea(Document doc) JTextArea(Document doc, String text, int rows, int cols), JLabel jl = new JL

14、abel(“文本區(qū)”); con.add(jl); JTextArea ta = new JTextArea(5,10); con.add(ta); ,23,選擇性輸入,為了簡化表單填寫過程,通常為用戶提供多種可供選擇的選項(xiàng),而無需用戶寫出他們的響應(yīng)。常用于選擇性輸入的組件有: 復(fù)選框 單選按鈕 列表框 組合框,24,復(fù)選框,復(fù)選框用于為用戶提供一組選項(xiàng) JCheckBox 類具有下列構(gòu)造函數(shù): JCheckBox() JCheckBox(Icon icon) JCheckBox(Icon icon, boolean selected) JCheckBox(String text) JChec

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

16、g text) JRadioButton(String text, boolean selected) JRadioButton(String text, Icon icon) JRadioButton(String text, Icon icon, boolean selected),26,JCheckBox和JRadioButton使用示例,import java.awt.*; import javax.swing.*; class Hobby extends JPanel JCheckBox c1 = new JCheckBox(閱讀,false); JCheckBox c2 = new

17、 JCheckBox(音樂,false); JCheckBox c3 = new JCheckBox(繪畫,false); JRadioButton rad1 = new JRadioButton(大專); JRadioButton rad2 = new JRadioButton(本科); JRadioButton rad3 = new JRadioButton(碩士); JLabel jl = new JLabel(您有什么愛好? ); JLabel j2 = new JLabel(您的最高學(xué)歷? ); JButton exitbtn = new JButton(退出); public Ho

18、bby( ) 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(); getContentPane().add(new Hobby(); setSize(300,200); setVisible(true); public static void main(String args) new

19、 Hobbytest(); ,27,列表,在可供選擇的選項(xiàng)很多時,可向用戶呈現(xiàn)一個列表來供他們選擇 JList 組件依次排列項(xiàng)目列表,這些項(xiàng)目可以單選或多選 JList 類既可顯示字符串,也可顯示圖標(biāo) JList 不支持雙擊 MouseListener 可用于解決雙擊問題,28,JList 構(gòu)造函數(shù),public JList() : 使用空模型構(gòu)造 JList public JList(ListModel dataModel) :構(gòu)造一個列表,用它顯示指定模型中的元素。 public JList (Object listData) :構(gòu)造一個列表以顯示指定數(shù)組listData的元素。 JLis

20、t 不支持滾動。要啟用滾動,可使用下列代碼: JScrollPane myScrollPane=new JScrollPane(); myScrollPane.getViewport().setView(dataList);, String stars = 安東尼奧.班德拉斯,來昂納多.迪卡普尼奧, 桑德拉.布洛克,休.格蘭特,朱莉亞.羅伯茨; JList moviestars = new JList(stars); ,29,組合框,文本域和下拉列表的組合 在 Swing 中,組合框由 JComboBox 表示 構(gòu)造函數(shù)如下: public JComboBox() : 此構(gòu)造函數(shù)使用缺省數(shù)據(jù)模

21、型創(chuàng)建 JComboBox public JComboBox(ComboBoxModel asModel) : 使用現(xiàn)有 ComboBoxModel 中的項(xiàng)目的組合框 public JComboBox(Object items) : 包含指定數(shù)組元素的組合框, String names = 弗雷德里克.福西斯, 約翰.克里沙姆, 瑪麗.希金斯.克拉克,帕特麗夏.康威爾; JComboBox authors = new JComboBox(names); ,30,菜單顯示項(xiàng)目列表,指明各種任務(wù)。 選擇或單擊某個選項(xiàng)時會打開另一個列表或子菜單。 Swing 菜單由菜單欄、菜單和菜單項(xiàng)構(gòu)成。 菜單欄

22、是所有菜單和菜單項(xiàng)的根,菜單,31,JFC 菜單組件,32,JMenuBar,JMenuBar 是可通過 JFrame、JWindow 或 JInternalFrame 的根窗格添加至容器的組件。 由多個 JMenu 組成,每個 JMenu 在 JMenubar 中都表示為字符串。 JMenuBar 需要兩個附加類: SingleSelectionModel類 : 跟蹤當(dāng)前選定的菜單 LookAndFeel類 :負(fù)責(zé)繪制菜單欄以及對在其中發(fā)生的事件作出響應(yīng),33,JMenu,JMenu 在 JMenuBar 下以文本字符串形式顯示,而在用戶單擊它時,則以彈出式菜單顯示。 JMenu 具有兩個附

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

溫馨提示

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

最新文檔

評論

0/150

提交評論