《實(shí)驗(yàn)4 圖形用戶界面設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《實(shí)驗(yàn)4 圖形用戶界面設(shè)計(4頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、實(shí)驗(yàn)四 圖形用戶界面設(shè)計
一、實(shí)驗(yàn)?zāi)康?
1、了解圖形用戶界面的基本組件、窗口、按鈕、文本框、選擇框、滾動條等的使用方法。
2、了解如何使用布局管理器對組件進(jìn)行管理。
3、掌握如何使用 Java 的事件處理機(jī)制。
二、實(shí)驗(yàn)要求
1、能夠編寫圖形用戶界面,使用最基本的Swing組件(JFrame、JTextField、JTextArea、JLabel、JPanel、JButton、JOptionPane)。
2、能夠針對具體界面分析其布局。
3、為界面添加事件處理。
三、實(shí)驗(yàn)內(nèi)容
1、復(fù)習(xí)課堂上及書上的例子。
2、分析圖1所示界面的布局,生成同樣的界
2、面。(考點(diǎn):布局管理器)
圖1 布局管理器的嵌套
3、生成一個登錄界面,如圖2所示。(考點(diǎn):界面設(shè)計+事件處理)
l 實(shí)驗(yàn)要求:
1) 密碼框的回顯字符設(shè)為’*’;
2) 當(dāng)用戶輸入的用戶名與密碼均為“admin”時,點(diǎn)“確定”按鈕后程序正常退出(利用System.exit(int)語句);
3) 當(dāng)用戶輸入的用戶名與密碼不同為“admin”時,點(diǎn)“確定”按鈕后彈出如圖3所示的消息框;
4) 若點(diǎn)擊“重置”按鈕,可將文本框和密碼框同時清空。
l 實(shí)驗(yàn)提示:
1) 密碼框?yàn)閖ava.awt.JPasswordField類對象
public void setEch
3、oChar(char?c)
設(shè)置此 JPasswordField 的回顯字符。
public char[] getPassword()
返回此 TextComponent 中所包含的文本。
2) java.lang.System類
public static void exit(int?status)
終止當(dāng)前正在運(yùn)行的 Java 虛擬機(jī)。參數(shù)用作狀態(tài)碼;根據(jù)慣例,非 0 的狀態(tài)碼表示異常終止。
3) 對于“確定”按鈕有兩種處理方式,分別對應(yīng)于正確與錯誤的用戶名密碼對。
4) java.awt.event.ActionEvent類
public String g
4、etActionCommand()
返回與此動作相關(guān)的命令字符串。
public Object getSource() //從類 java.util.EventObject 繼承的方法
最初發(fā)生 Event 的對象。
圖3 用戶名與密碼不正確
時顯示的消息框
圖2 登錄界面
4、做一個類似五子棋的游戲,并實(shí)現(xiàn)簡單的下棋功能。(考點(diǎn):界面設(shè)計+事件處理)
l 實(shí)驗(yàn)要求:
1) 棋盤為10行10列,棋盤底色為黃色(也可自己設(shè)定),棋盤格子間有一定間隙。如圖4所示。
2) 本游戲?yàn)閱螜C(jī)版,故而為了模擬雙方下棋的效果,
5、可一人下棋時顯示“O”,另一人下棋時顯示“X”,以示區(qū)分并相互交替。并且,一個格子如果已經(jīng)下過棋子,則不可再改變它上的棋子,即不能再更改其上顯示的字符,或者說按鈕變得不可用。如圖4所示。
3) 游戲規(guī)則:當(dāng)同一行或同一列或同一條對角線上有連續(xù)的五個相同棋子時判贏。若最終棋盤滿了仍未有五個相同棋子連成一線,則判輸。若未有這兩種情況,則繼續(xù)下棋。(注:此功能需要一定的算法設(shè)計和數(shù)據(jù)結(jié)構(gòu)知識,如果時間不足,可不做)
4) 無論最終是贏或輸,都自動彈出一個消息框,并給出相應(yīng)的提示,如圖5和圖6所示。(注:可將本要求簡化為,針對棋盤中的某兩個特定格子(自己設(shè)定),一個格子單擊后彈出成功對話框,一個格
6、子彈出失敗對話框)
圖4 五子棋界面
圖5 贏局時的提示 圖6 輸局時的提示
l 本題中使用到的部分相關(guān)類及方法提示:
1) java.awt.GridLayout
GridLayout(int?rows, int?cols, int?hgap, int?vgap)
??????????創(chuàng)建具有指定行數(shù)和列數(shù)的網(wǎng)格布局。此外,將水平和垂直間距設(shè)置為指定值。
2) java.awt.Container
public Component add(Component?comp)
將指定組件追加到此容器的尾部。
3) javax.sw
7、ing.JButton
//下述三個方法均從類 javax.swing.AbstractButton 繼承而來,請思考這其中的關(guān)系。
public void setText(String?text)
設(shè)置按鈕的文本。
public String getText()
返回按鈕的文本。
public void setEnabled(boolean?b)
啟用(或禁用)按鈕。
public void addActionListener(ActionListener?l)
將一個 ActionListener 添加到按鈕中。
4) javax.swing.JOptionPane
public static void showMessageDialog(Component?parentComponent,
Object?message) throws HeadlessException
調(diào)出標(biāo)題為 "Message" 的信息消息對話框
5) javax.swing.JDialog
public JDialog(Dialog?owner, String?title, boolean?modal)
創(chuàng)建一個具有指定標(biāo)題、模式和指定所有者 Dialog 的對話框。
4