?? java入門(9) java與gui.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0063)http://www.java-cn.com/technology/technology_detail.jsp?id=1664 -->
<HTML><HEAD><TITLE>歡迎光臨JAVA中文站-文章詳細信息</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312"><LINK
href="Java入門(9) JAVA與GUI.files/style.css" rel=stylesheet>
<STYLE type=text/css>TD {
FONT-SIZE: 9pt; FONT-FAMILY: 宋體
}
TH {
FONT-SIZE: 9pt; FONT-FAMILY: 宋體
}
INPUT {
FONT-SIZE: 9pt; FONT-FAMILY: 宋體
}
.menuStyle {
FONT-WEIGHT: bold; FONT-SIZE: 9pt; FONT-FAMILY: Arial,Geneva,Verdana,Helvetica
}
</STYLE>
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY text=#000000 bgColor=#ffffff>
<DIV align=center>
<CENTER><BR>
<TABLE style="BORDER-COLLAPSE: collapse" borderColor=#111111 height=149
cellSpacing=0 cellPadding=4 width=669 border=0>
<TBODY>
<TR bgColor=#f3fcf3>
<TD
style="BORDER-RIGHT: #c0c0c0 1px solid; BORDER-TOP: #c0c0c0 1px solid; BORDER-LEFT: #c0c0c0 1px solid; BORDER-BOTTOM: #c0c0c0 1px solid"
align=middle width=659 height=34>
<CENTER><IFRAME marginWidth=0 marginHeight=0
src="Java入門(9) JAVA與GUI.files/ad1.htm" frameBorder=0 width=440
scrolling=no height=59></IFRAME></CENTER></TD></TR>
<TR>
<TD
style="BORDER-RIGHT: #c0c0c0 1px solid; BORDER-TOP: #c0c0c0 1px solid; BORDER-LEFT: #c0c0c0 1px solid; BORDER-BOTTOM: #c0c0c0 1px solid"
vAlign=top width="100%" height=11>
<P align=left><FONT color=#7a7978>文摘分類>> </FONT><FONT
color=#999999>編程基礎 | </FONT><FONT color=#7a7978>閱讀次數>>
</FONT><FONT color=#999999>485 | </FONT><FONT
color=#7a7978>推薦人數>> </FONT><FONT color=#999999>0 |
</FONT><FONT color=#7a7978>整理日期>> </FONT><FONT
color=#999999>2003-03-07</FONT></P></TD></TR>
<TR bgColor=#f3fcf3>
<TD
style="BORDER-RIGHT: #c0c0c0 1px solid; BORDER-TOP: #c0c0c0 1px solid; BORDER-LEFT: #c0c0c0 1px solid; BORDER-BOTTOM: #c0c0c0 1px solid"
align=middle width=659 bgColor=#ffffff height=38><B>Java入門(9) JAVA與GUI</B>
<HR color=#999999 noShade SIZE=1>
<P align=left>摘要
<BR><BR> 通過本章的學習,讀者應能知道GUI(圖形用戶界面)的概念,并且能夠使用Java語言來構建一個令人賞心悅目的GUI界面,使你的程序更具有感召力。掌握標簽、按鈕、文本框、選擇框、滾動條……等等各種GUI部件的使用方法。
<BR><BR>(2002-09-06 14:15:06)
<BR><BR>--------------------------------------------------------------------------------
<BR>By Wing, 出處:fjxufeng <BR><BR><BR> 本章目標:
<BR><BR> 通過本章的學習,讀者應能知道GUI(圖形用戶界面)的概念,并且能夠使用Java語言來構建一個令人賞心悅目的GUI界面,使你的程序更具有感召力。掌握標簽、按鈕、文本框、選擇框、滾動條……等等各種GUI部件的使用方法。
<BR><BR> 9.1 用什么構建GUI <BR><BR> 傳授新知
<BR><BR> 早期,電腦向用戶提供的是單調、枯燥、純字符狀態的“命令行界面(CLI)”。就是到現在,我們還可以依稀看到它們的身影:在Windows中開個DOS窗口,就可看到歷史的足跡。
<BR><BR> 后來,Apple公司率先在電腦的操作系統中實現了圖形化的用戶界面(Graphical User
Interface,簡稱GUI),但由于Apple公司封閉的市場策略,自己完成電腦硬件、操作系統、應用軟件一條龍的產品,與其它PC不兼容。這使得Apple公司錯過了一次一統全球PC的好機會。
<BR><BR> 后來,著名的Microsoft公司推出了風靡全球的Windows操作系統,它憑借著優秀的圖形化用戶界面,一舉奠定了操作系統標準的地位。這也造就了世界首富---比爾.蓋茨和IT業的泰山北斗微軟公司。
<BR><BR> 在這圖形用戶界面風行于世的今天,一個應用軟件沒有良好的GUI是無法讓用戶接受的。而Java語言也深知這一點的重要性,它提供了一套可以輕松構建GUI的工具。在本章和下一章中,我們將向你充分證明這一點。
<BR><BR> 在Java語言提供的GUI構建工具中,可以分為“部件”(component)和“容器”(container)兩種。
<BR><BR> 在Java語言中,提供了以下部件: <BR><BR> § 按鈕 <BR><BR> § 標簽 <BR><BR> § 復選框
<BR><BR> § 單選按鈕 <BR><BR> § 選擇框 <BR><BR> § 列表框 <BR><BR> § 文本框
<BR><BR> § 滾動條 <BR><BR> § 畫布 <BR><BR> § 菜單
<BR><BR> 這些部件,我們在使用Windows操作系統時都遇到過,你通過操作它們來實現與程序的交互。
<BR><BR> 而光有“部件”就組不成程序,我們必須使用“容器”將這些“部件”裝配起來,使其成為一個整體。Java語言還提供了以下“容器”:
<BR><BR> § 程序的啟動封面 <BR><BR> § 窗體(form) <BR><BR> § 對話框(Dialog)
<BR><BR> Java語言是通過AWT(抽象窗口化工具包)和Java基礎類(JFC或更常用的Swing)來提供這些GUI部件的。
<BR><BR> 其中Java.awt是最原始的GUI工具包,存放在java.awt包中。現在有許多功能被已被Swing取代并得到了很大的增加與提高,因此一般我們很少再使用Java.awt,但是AWT中還是包含了最核心的功能,通常,一個Java的GUI程序至少還要使用下面幾個類:
<BR><BR> § java.awt.Color:基本顏色定義 <BR><BR> § java.awt.Font:基本字體定義
<BR><BR> § java.awt.Cursor:光標操作定義 <BR><BR> 而Swing則存放在javax.swing包中。
<BR><BR> 我們可以在Java的GUI程序的最前面加上以下兩句就可以了: <BR><BR><BR>import java.awt.*;
<BR>import javax.swing.*; <BR><BR><BR><BR> 這樣就可以一勞永逸了。
<BR><BR> 用Java開發一個GUI程序,通常需要以下幾步: <BR><BR> 1) 構建一個頂層容器; <BR><BR> 2)
構建一個部件; <BR><BR> 3) 用容器的add方法將部件加入到這個容器中; <BR><BR> 我們馬上就開始!
<BR><BR> 自測練習 <BR><BR> 1) 在Java語言中,用來構建GUI的工具可以分為________和__________。
<BR><BR> a.控件 b.部件 c.窗體 d.容器 <BR><BR> 2) 下面不屬于“部件”的是__________。
<BR><BR> a.選擇框 b.窗體 c.菜單 <BR><BR> 3) 下面不屬于“容器”的是__________。
<BR><BR> a.文本框 b.對話框 c.窗體 <BR><BR> 4) 容器可以被添加到其它容器中去。________
<BR><BR> a.正確 b.不正確 <BR><BR> 5) 部件可以被添加到容器中去。_______ <BR><BR> a.正確
b.不正確 <BR><BR> 6) 容器可以被添加到部件中去。_______ <BR><BR> a.正確 b.不正確 <BR><BR> 7)
部件可以被添加到其它部件中去。_______ <BR><BR> a.正確 b.不正確 <BR><BR> 練習答案 <BR><BR> 1)b、d
在Java語言中,GUI構建工具可以分為部件與容器。 <BR><BR> 2)b 窗體是一種容器,不是部件。 <BR><BR> 3)a
文本框是一種部件,不是容器。 <BR><BR> 4)a 有些容器可以被包含到其它容器中去。 <BR><BR> 5)a
容器就是用來放置各種部件的。 <BR><BR> 6)b 將部件裝到容器去,就象“把桶裝到水中”一樣可笑。 <BR><BR> 7)b
“把水裝到水中”也是可笑的呀。 <BR><BR> 9.2 使用Button(按鈕) <BR><BR> 實例說明
<BR><BR> 1.首先,我們使用文字編輯軟件輸入下源程序。 <BR><BR> 源程序:useButton.java
<BR><BR><BR>import javax.swing.*; <BR>import java.awt.*; <BR>import
java.awt.event.*; <BR>public class useButton extends JApplet <BR>{
<BR>JButton button1; <BR>public void init() <BR>{ <BR>JPanel
panel1=(JPanel)getContentPane(); <BR>panel1.setLayout(new FlowLayout());
<BR>button1=new JButton(“Beep!”); <BR>panel1.add(button1);
<BR>button1.addActionListener(new ActionListener() <BR>{ <BR>public void
actionPerformed(ActionEvent evt) <BR>{
<BR>Toolkit.getDefaultToolkit().beep(); <BR>} <BR>}); <BR>} <BR>}
<BR><BR><BR><BR> 2.執行以下命令,編譯這個程序: <BR><BR><BR>c:javastudy> javac
useButton.java <BR><BR><BR><BR> 由于,這是一個Java
Applet(小應用程序),需要在網頁上顯示,所以我們需要編輯一個包含這個小應用程序的HTML文件。形如:
<BR><BR> 源程序:useButton.html <BR><BR><BR><html><body>
<BR><applet code="useButton.class" WIDTH=150 HEIGHT=100>
<BR></applet> <BR></body></html>
<BR><BR><BR><BR> 3.然后使用appletviewer來運行這個程序: <BR><BR><BR>c:javastudy>
appletviewer useButton.html <BR><BR><BR><BR> 程序輸出如下圖所示:
<BR><BR><BR> 圖9-1 程序useButton的運行結果 <BR><BR> 你試著按一下“Beep!”這個按鈕,每按一下就會響一聲。
<BR><BR> 傳授新知 <BR><BR> 我們一起來看一下這個冗長而且令人費解的程序段。 <BR><BR> 1)
<BR><BR><BR>import javax.swing.*; <BR>import java.awt.*; <BR>import
java.awt.event.*; <BR><BR><BR><BR> 這一段程序是用來將構建GUI程序所需的包包含進來。 <BR><BR> 2)
<BR><BR><BR>public class useButton extends JApplet
<BR><BR><BR><BR> 這一句用來聲明類useButton,說明它是從JApplet中繼承而來的子類。JApplet是Applet類的一種增強類。因此,從這里可以看出這個程序是Java小應用程序,而不是Java應用程序。
<BR><BR> 3) <BR><BR><BR>JPanel panel1=(JPanel)getContentPane();
<BR>panel1.setLayout(new FlowLayout());
<BR><BR><BR><BR> 這一段程序創建了一個Jpanel(面板)容器:panel1,然后調用setLayout方法顯示它。
<BR><BR> 4) <BR><BR><BR>button1=new JButton(“Beep!”);
<BR>panel1.add(button1);
<BR><BR><BR><BR> 這一段程序創建了一個新的部件:button1按鈕,并將按鈕上顯示標簽“Beep!”。然后調用容器panel1的add方法將這個按鈕添加到這個面板上。
<BR><BR> 5) <BR><BR><BR>button1.addActionListener(new ActionListener()
<BR>{ <BR>public void actionPerformed(ActionEvent evt) <BR>{
<BR>Toolkit.getDefaultToolkit().beep(); <BR>} <BR>});
<BR><BR><BR><BR> 這是一個特殊的事件,它為按鈕buuton1添加上一個ActionListener(action:行動、事件;Listener:監聽者),也就是事件監視器。這個監視器做什么呢?
<BR><BR> 當actionPerformed(action:行動、事件;Performed:執行,表演),就是當這個事件執行時(什么事件呢?ActionEvent
evt,按下按鈕時),將執行:Toolkit.getDefaultToolkit().beep() <BR><BR> 也就是響鈴。
<BR><BR> 自測練習 <BR><BR> 1)按鈕類中提供了一個方法,可以修改按鈕文本的顏色。以下就是一個應用實例:
<BR><BR><BR>button1.setForeground(Color.green);
<BR><BR><BR><BR> 其中button1是按鈕名,setForeground則方法名,set就是設置,Foreground就是前景,也就是設置前景色。參數是Color.green,綠色。相對應的,紅色就是Color.red,藍色就是Color.blue。
<BR><BR> 請編寫一個程序,在面板上顯示三個按鈕,按鈕上的標簽分別是:set red,set green,set
blue(顏色為黑色)。當按下set red按鈕,則三個按鈕的標簽都變成紅色;而按下set green則變成綠色;按下set blue則變成藍色。
<BR><BR> ____________________________________________________________________
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -