java圖形用戶界面-文檔資料_第1頁
java圖形用戶界面-文檔資料_第2頁
java圖形用戶界面-文檔資料_第3頁
java圖形用戶界面-文檔資料_第4頁
java圖形用戶界面-文檔資料_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第十講 Java圖形界面目標目標本課中,你將學習:*識別用戶界面屏幕的組件*創(chuàng)建圖形用戶界面屏幕* 圖形用戶界面是用戶與程序交互的窗口,JAVA程序一般都需要設計、建立自己的用戶界面并利用它接受用戶的輸入,向用戶顯示運行結果。* 在JAVA語言中,為了方便圖形用戶界面的開發(fā),設計了專門的類庫來生成各種標準圖形元素和處理各種事件,這個類庫就是java.awt包。開始開始*用戶界面的需要用戶界面的需要: 3 接收用戶的輸入接收用戶的輸入 3 使應用用戶友善使應用用戶友善*用戶界面的類型用戶界面的類型: 3 字符用戶界面字符用戶界面 3 圖形用戶界面圖形用戶界面*設計和實現(xiàn)圖形用戶界面的工作主要有兩

2、個:3 創(chuàng)建組成界面的各成分和元素(容器、控制組件和用戶自定義成分),指定它們的屬性和位置關系,根據(jù)具體需要排列,從而構成完整的物理外觀。3 定義圖形用戶界面的事件和各界面元素對不同事件的響應,從而實現(xiàn)圖形用戶界面與用戶的交互功能。Java中構成圖形用戶界面的各種元素和成分可以被分為三類:* 容器:用來組織其他界面成分和元素的單元,一個圖形用戶界面首先對應一個復雜的容器,例如一個窗口或一個對話框。* GUI組件:是圖形用戶界面的最小單位之一,如按紐、文本框等,使用組件通常需要如下 步驟:(a)創(chuàng)建某控制組件類的對象,指定大小等屬性;(b)使用某種布局策略,將組件加入到容器的指定位置處;(c)將

3、該組件對象注冊給事件監(jiān)聽者。* 用戶自定義成分:利用java.awt.Graphics類提供的方法來繪制圖形和文字。*GUI的組件的組件:JMenuBarJTextFieldJComboBoxJListJCheckBoxJRadioButtonJButtonJLabel JFrame*GUI的組件的組件:3 可視化控件諸如文本框、組合框稱為組件3 存放這些組件的頂層窗口稱為容器3 組件繼承它的父容器的性質(zhì),如字體的設置等* 抽象窗口工具箱抽象窗口工具箱(AWT):3 Java 1.0版中,用它創(chuàng)建用戶接口版中,用它創(chuàng)建用戶接口* Java 基礎類基礎類(JFC):3 是是AWT的擴充,的擴充,

4、也稱為也稱為 Swing,是是Java基本類庫的一基本類庫的一部分部分* 用于圖形化界面編程的的包有三個:java.awt、javax.swing 、java.awt.event,可以在同一個界面中使用swing和awt組件,但在某些情況下不能共存,所以最好只使用swing例:例:CellGo已用已用Java開發(fā)了應用。開發(fā)了應用。 如下創(chuàng)建了如下創(chuàng)建了Customer 實體的類。實體的類。識別其用戶接口的控件和寫出接收客戶材料的代碼。識別其用戶接口的控件和寫出接收客戶材料的代碼。Customer customerName : String customerCellNo : String cu

5、stomerPackage : String customerAge : int *識別接收客戶材料的控件識別接收客戶材料的控件:3 用來簡化用戶交互用來簡化用戶交互3 Java中中可用控件是:標號、文本框、文本域、按鈕、單可用控件是:標號、文本框、文本域、按鈕、單選按鈕、復選按鈕、列表、及組合框選按鈕、復選按鈕、列表、及組合框。文本框接收單行字母入口,組合框?qū)蝹€項目選擇顯示下拉式列表,用控件接收客戶材料如下:AttributeControlscustomerNameLabel, TextFieldCustomerCellNoLabel, TextFieldcustomerPackageLa

6、bel, ComboBoxcustomerAgeLabel, TextField* 識別每個控件中要顯示的缺省值識別每個控件中要顯示的缺省值AttributeControlValuecustomerNameLabelTextField“Customer Name: ”nonecustomerCellNoLabelTextField“Cell Number: ”nonecustomerPackageLabelComboBox“Package: ”“Executive”, “Standard”customerAgeLabelTextField“Age: ”none*識別控件的大小識別控件的大小At

7、tributeControlValuecustomerNameTextField30 CharacterscustomerCellNoTextField15 CharacterscustomerPackageComboBox DefaultcustomerAgeTextField2 Characters*識別框架窗口的標題和大小識別框架窗口的標題和大小3 將顯示客戶材料框架窗口的標題是將顯示客戶材料框架窗口的標題是“Customer Details Form”.3 此窗口的大小是此窗口的大小是 300 x 300 象素象素.*創(chuàng)建框架窗口創(chuàng)建框架窗口javax.swing 包包: javax.

8、swing 包中 JComponent類是所有圖形用戶界面組件的基類,即所有的swing組件都是抽象類JComponent的子類 提供了組件類,如: JLabel, JTextField, JButton, JRadioButton, JList,JCheckBox,JMenuBar,JMenuItem及 JComboBox 提供了容器類,如:JFrame,JWindow,JDialog, JPanel 及 JApplet, 其中容器JPanel、 JApplet是無邊框的, JFrame,JWindow,JDialog是一組含有邊框、并可以移動、放大、縮小、關閉的容器* 創(chuàng)建一個圖形化用戶界

9、面的第一步是創(chuàng)建代表該界面的類,然后將這個類的對象用作容器。在很多工程中,主界面要么是一個簡單的窗口JWindow類,要么是一個叫做框架的窗口JFrame類,因此創(chuàng)建一個圖形化用戶界面的一種途徑是把該界面類作成JFrame類或JWindow類的子類。如:public class look extends JFrame或JWindow public look( ) public static void main(String arguments) look sf=new look( ); 一般地,在這個界面類的構造方法中需要做:3 調(diào)用超類的構造方法進行一些設置(如標題設置) JFrame的兩個

10、常用的構造函數(shù): JFrame( )、JFrame(String title)3 創(chuàng)建組件對象并按合理布局添加到界面容器上3 設置框架窗口的大小 setSize(int , int )3 判斷如果關閉窗口時的操作setDefaultCloseOperation() 在Java中,一個窗口被關閉時正常的情況是讓應用程 序也退出執(zhí)行,為做到這一點需調(diào)用框架的方法 setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE )3 最后顯示該框架窗口 setVisible(boolean) 或者 show( )public class look extends JFr

11、ame public look( ) super(“edit window”); setSize(300,100);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) show( ); Public static void main(String arguments) look sf=new look(); Swing組件的類層次結構組件的類層次結構:3 所有組件繼承大量的JComponent 類的功能,列表如下:方法方法描述描述void setBackground(Color bg) 設置組件的背景顏色設置組件的背景顏色. void setFont(

12、Font f) 設置在組件中顯示文本的字體設置在組件中顯示文本的字體*Swing組件的類層次結構組件的類層次結構(續(xù)續(xù).)方法方法描述描述void setToolTipText(String t) 設置在組件中顯示的工具箱文本void setVisible(boolean b) 支持組件是否將是可見的void setSize(int width, int height) 設置組件的高和寬* JFrame類類3 用構造符創(chuàng)建你應用的框架窗口3 包含 setVisible(), setSize (),及 getContentPane()方法3 可用帶EXIT_ON_CLOSE 選項的 setDef

13、aultCloseOperation() 方法將在關閉框架窗口時退出應用JFrame swingFrame=new JFrame(Frame)swingFrame.setDefaultCloseOperation (JFrame .EXIT_ON_CLOSE); JButton buttonObj=new JButton(Button)swingFrame.getContentPane().add(buttonObj) swingFrame.setContentPane(buttonObj); swingFrame.setVisible(); swingFrame.setSize(200,20

14、0); import javax.swing.*;public class Buttons extends JFrame static JFrame frameObject; public static void main(String args) frameObject=new JFrame(“customer details”) frameObject.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); frameObject.SetVisible(true); frameObject.SetSize(300,300); * 創(chuàng)建組件為了在某個

15、界面中使用某個組件,你必須創(chuàng)建該組件類的一個對象,以組件JButton為例進行說明JButton(String ):創(chuàng)建帶有指定文本的按鈕JButton(Icon ):創(chuàng)建帶有指定圖標的按鈕JButton(String , Icon ):創(chuàng)建帶有指定文本和圖標的按鈕JButton play= new JButton(“播放”);JButton stop= new JButton(“停止”);* 將組件添加到容器中可以調(diào)用容器的add(Component)方法,最簡單的容器是面板(JPanel)如: JButton quit= new JButton(“退出”); JPanel panel= n

16、ew JPanel( ); Panel.add(quit);* JFrame,JWindow,JDialog, JApplet 都不允許用這種方式加入組件,只有JPanel對象可以使用add(Component)方法加入組件。*通常情況下,加入組件到面板之后,在將面板加入到頂層容器的內(nèi)容窗格中setContentPane(Container),使用下面的步驟將組件加入到一個容器的內(nèi)容窗格中: 創(chuàng)建一個面板 使用它的方法add(Component)將組件加入到面板中 用面板作為參數(shù)調(diào)用方法setContentPane(面板Container);讓我們看下面的兩個例子: import javax.

17、swing.*;public class Buttons extends JFrame JButton abort = new JButton(Abort); JButton retry = new JButton(Retry); JButton fail = new JButton(Fail); public Buttons() super(Buttons); setSize(80, 140); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel pane = new JPanel(); pane.add(abort); pane.a

18、dd(retry); pane.add(fail); setContentPane(pane); show( );import javax.swing.*;public class mapbutton extends JFrame JButton buttons = new JButton24; public mapbutton( ) super(Icons); setSize(335, 318); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel pane = new JPanel(); ImageIcon icon = new I

19、mageIcon(3dman.gif); for (int i = 0; i 24; i+) buttonsi = new JButton(icon); pane.add(buttonsi); setContentPane(pane); show(); public static void main(String arguments) mapbutton ike = new mapbutton(); *JPanel 類類: 3 提供了加入組件到框架的更簡單的方法JFrame swingFrame=new JFrame(Frame); swingFrame.setDefaultCloseOpti

20、on(JFrame.EXIT_ON_CLOSE); JButton button1=new JButton(FirstButton)JButton button2=new JButton(SecondButton) JPanel panel=new JPanel(); panel.add(button1); panel.add(button2); swingFrame.getContentPane().add(panel);*JLabel 類類:Jlabel(String):創(chuàng)建帶有指定文本的標簽Jlabel(String,int):創(chuàng)建帶有指定文本和對齊方式的標簽Jlabel(String,

21、Icon,int):創(chuàng)建帶有指定文本、圖標和對齊方式的標簽例如:Jlable prompt=new Jlable(“請輸入一個數(shù)”);Jlable evers=new Jlable(“請輸入一個數(shù)”,SWingConstants.LEFT);If (prompt.getText()=“你好”) prompt.setText(“再見”)*JTextField 類類:3 JTextFiel( ):空的文本字段;3 JTextFiel(int):帶有指定寬度的文本字段3 JTextFiel(String,int) :一個指定字 符和寬度的文本字段; 3JTextField name= new JTe

22、xtFiels(“卡號”,8)3提供 getText() 和 setText() 方法*JPasswordField 類:是JTextField類的子類,其構造方法和其父類一樣,創(chuàng)建了密碼字段后,可以調(diào)用方法setEchoChar(char)用指定的字符來隱藏輸入的文本。例如:JPasswordField pass=new JPasswordField(20) Pass.setEchoChar(#);*JTextArea 類類:可以處理多行輸入的可編輯文本字段3JTextArea (int , int ):一個指定行和列的文本域;3 JTextArea (String ,int ,int) :

23、一個帶有指定文本、行和列的文本域 3提供 getText() 、 getSelectedText()和 setText() 方法3append( String ):可以將指定的文本加到當前文本的末尾3setLineWrap(boolean):判斷文本到達邊界時是否繞到下一行3setWrapStyleWord(boolean):判斷如何換行, 參數(shù)為true從當前單詞開始換行 參數(shù)為false從當前字符開始換行import javax.swing.*;public class Form extends JFrame JTextField username = new JTextField(15)

24、; JPasswordField password = new JPasswordField(15); JTextArea comments = new JTextArea(4, 15); public Form() super(Feedback Form); setSize(260, 160); setDefaultCloseOperation(EXIT_ON_CLOSE); JPanel pane = new JPanel(); JLabel usernameLabel = new JLabel(Username: ); JLabel passwordLabel=new JLabel(Pa

25、ssword: ); JLabel commentsLabel=new JLabel(Comments:) comments.setLineWrap(true); comments.setWrapStyleWord(true); pane.add(usernameLabel); pane.add(username); pane.add(passwordLabel); pane.add(password); pane.add(commentsLabel); pane.add(comments); setContentPane(pane); show(); public static void m

26、ain(String arguments) Form input = new Form(); JList 類:3 創(chuàng)建帶有一組值的列表框3 setSelectionMode( int )方法用于是否允許單行或多行進行選擇SINGLE_SELECTION 只能選擇一項SINGLE_INTERVAL_SELECTION可連續(xù)選擇多項MULTIPLE_INTERVAL_SELECTION任意次序選多項3 它提供了方法如:getSelectedValue(), getSelectedValues (), 及 setVisibleRowCount (int)3 Jlist Mylist=new JLis

27、t(Object listData) *JComboBox 類類:3只允許選擇單個元素3提供 setEditable()方法3組合框的方法addItem(Object)將表項加入到表中3在組合框里用戶可以在文本字段中輸入文本,也可以在下拉列表中選擇某項JComboBox monthBox = new JComboBox(); for (int i = 1; i 13; i+) monthBox.addItem(+i);import javax.swing.*;public class Expiration extends JFrame JComboBox monthBox = new JCom

28、boBox(); JComboBox yearBox = new JComboBox(); public Expiration() super(Expiration Date); setSize(220, 90); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel pane = new JPanel(); JLabel exp = new JLabel(Expiration Date:); pane.add(exp); for (int i = 1; i 13; i+) monthBox.addItem( + i); for (int i = 2000; i 2010; i+) yearBox.addItem( + i); pane.add(monthBox); pane.add(yearBox); setContentPane(pane); show(); public static void main(String arguments) Expiration ct = new Expiration(); *JCheckBox類和 JRadioButton類類 : 兩個組件僅僅在外觀上不同,兩者都可以成組地放在一起,這樣可以在任何時候該組里只有一個被選中*JCheckBox(String) 帶有指定文本

溫馨提示

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

評論

0/150

提交評論