新聞中心
我們將完成Netbeans 6.5 GUI 布局和設(shè)計工作并添加幾個按鈕和文本字段。這些文本字段用于接收用戶輸入和顯示程序輸出。這些按鈕用于啟動前端的內(nèi)置功能。我們創(chuàng)建的應(yīng)用程序是一個非常簡單但功能完善的計算器。

成都創(chuàng)新互聯(lián)客戶idc服務(wù)中心,提供成都天府聯(lián)通服務(wù)器托管、成都服務(wù)器、成都主機(jī)托管、成都雙線服務(wù)器等業(yè)務(wù)的一站式服務(wù)。通過各地的服務(wù)中心,我們向成都用戶提供優(yōu)質(zhì)廉價的產(chǎn)品以及開放、透明、穩(wěn)定、高性價比的服務(wù),資深網(wǎng)絡(luò)工程師在機(jī)房提供7*24小時標(biāo)準(zhǔn)級技術(shù)保障。
有關(guān)更全面的Netbeans 6.5 GUI 生成器設(shè)計功能指南(包括各種設(shè)計功能的視頻演示),請參見在Netbeans 6.5IDE 中設(shè)計 Swing GUI。
要學(xué)完本教程,您需要具備以下軟件和資源。
| 軟件或資源 | 要求的版本 |
|---|---|
| NetBeans IDE | 版本 6.5 |
| Java Development Kit (JDK) | 版本 6 或 版本 5 |
練習(xí) 1:創(chuàng)建項目
第一步是為要開發(fā)的應(yīng)用程序創(chuàng)建 IDE 項目。我們將項目命名為 NumberAddition。
- 選擇“文件”>“新建項目”?;蛘撸部梢詥螕?IDE 工具欄中的“新建項目”圖標(biāo)。
- 在“類別”窗格中,選擇 "Java" 節(jié)點。在“項目”窗格中,選擇“Java 應(yīng)用程序”。單擊“下一步”。
- 在“項目名稱”字段中鍵入
NumberAddition,然后指定項目位置路徑(例如,在主目錄中)。 - (可選)選中“使用專用文件夾存儲庫”復(fù)選框,并指定庫文件夾的位置。有關(guān)此選項的詳細(xì)信息,請參見共享項目庫。
- 確保“設(shè)置為主項目”復(fù)選框處于選中狀態(tài)。
- 如果已選中“創(chuàng)建主類”復(fù)選框,請取消選中該復(fù)選框。
- 單擊“完成”。
練習(xí) 2:生成前端
要繼續(xù)生成界面,我們需要創(chuàng)建一個 Java 容器,以便放置所需的其他 GUI 組件。在此步驟中,我們將使用 JFrame 組件創(chuàng)建一個容器。我們將該容器放在新包中,該包將顯示在“源包”節(jié)點中。
創(chuàng)建 JFrame 容器
- 在“項目”窗口中,右鍵單擊 "NumberAddition" 節(jié)點并選擇“新建”>“JFrame 窗體”。
- 在“類名”中輸入 NumberAdditionUI。
- 在“包”中輸入
my.numberaddition。 - 單擊“完成”。
IDE 將在 NumberAddition 應(yīng)用程序中創(chuàng)建 NumberAdditionUI 窗體和 NumberAdditionUI 類,然后在 GUI 生成器中打開 NumberAdditionUI 窗體。my.NumberAddition 包將替代缺省包。
添加組件:生成前端
接下來,我們將通過組件面板使用 JPanel 填充應(yīng)用程序前端。然后,添加三個 JLabel、三個 JTextField 和三個 JButton。如果以前沒有用過 GUI 生成器,您可能會發(fā)現(xiàn)在 NetBeans IDE 中設(shè)計 Swing GUI 教程中有關(guān)組件放置的信息非常有用。
在拖動并放置完上述組件后,JFrame 應(yīng)類似于以下屏幕快照。
如果在 IDE 右上角未看到“組件面板”窗口,則選擇“窗口”>“組件面板”。
- 先從組件面板中選擇一個 JPanel,然后將其拖放到 JFrame 上。
- 在突出顯示該 JPanel 時,轉(zhuǎn)至“屬性”窗口,然后單擊 "Border" 旁邊的省略號 (...) 按鈕以選擇邊框樣式。
- 在 "Border" 對話框中,從列表中選擇“帶標(biāo)題的邊框”,然后在“標(biāo)題”字段中鍵入
Number Addition。單擊“確定”保存更改并退出該對話框。 - 現(xiàn)在,將會看到一個標(biāo)題為 Number Addition 的空 JFrame,它與屏幕快照類似。按照上面的屏幕快照所示,添加三個 JLabel、三個 JTextField 和三個 JButton。
重命名組件
在該步驟中,我們將重命名剛添加到 JFrame 中的這些組件的顯示文本。
- 雙擊
jLabel1并將文本屬性更改為First Number。 - 雙擊
jLabel2并將文本更改為Second Number。 - 雙擊
jLabel3并將文本更改為Result。 - 刪除
jTextField1中的樣例文本。可通過以下方法使顯示文本處于可編輯狀態(tài):單擊文本字段,稍等片刻,然后再次單擊文本字段??赡苄枰獙?jTextField1調(diào)整為原始大小。對于jTextField2和jTextField3,重復(fù)此步驟。 - 將
jButton1顯示文本重命名為Clear。(可以通過右鍵單擊按鈕并選擇“編輯文本”來編輯按鈕的文本?;蛘撸部梢詥螕舭粹o,稍等片刻,然后再次單擊按鈕。) - 將
jButton2顯示文本重命名為Add。 - 將
jButton3顯示文本重命名為Exit。
現(xiàn)在,完成的 GUI 應(yīng)類似于以下屏幕快照:
練習(xí) 3:添加功能
在本練習(xí)中,我們將為 "Add"、"Clear" 和 "Exit" 按鈕添加功能。jTextField1 和 jTextField2 框用于用戶輸入,jTextField3 用于程序輸出;我們要創(chuàng)建的應(yīng)用程序是一個非常簡單的計算器。我們現(xiàn)在就開始吧。
使 "Exit" 按鈕正常工作
要為這些按鈕添加功能,必須為每個按鈕指定事件處理程序以響應(yīng)事件。在本示例中,我們需要了解何時通過鼠標(biāo)單擊或鍵盤按下了按鈕。因此,我們使用 ActionListener 來響應(yīng) ActionEvent。
- 右鍵單擊 "Exit" 按鈕。從彈出式菜單中選擇“事件”> "Action" > "ActionPerformed"。請注意,該菜單中還包含很多其他可響應(yīng)的事件!在選擇 actionPerformed 事件時,IDE 自動在 "Exit" 按鈕中添加 ActionListener,并生成一種處理程序方法以處理偵聽程序的 actionPerformed 方法。
- IDE 將打開“源代碼”窗口并滾動至某一位置,在此將實現(xiàn)按下按鈕(通過鼠標(biāo)單擊或鍵盤)時希望其執(zhí)行的操作。源代碼窗口應(yīng)包含以下行:
- private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
- //TODO: Add your handling code here:
- }
- 現(xiàn)在,我們將為希望 "Exit" 按鈕執(zhí)行的操作添加代碼。必須在以上代碼中鍵入 System.exit(0); 以替換 TODO 行。完成的 "Exit" 按鈕代碼應(yīng)如下所示:
- private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
- System.exit(0);
- }
使 "Clear" 按鈕正常工作
- 單擊工作區(qū)域頂部的“設(shè)計”標(biāo)簽以返回到窗體設(shè)計區(qū)域
- 右鍵單擊 "Clear" 按鈕 (
jButton1)。從彈出式菜單中選擇“事件”> "Action" > "actionPerformed"。 - "Clear" 按鈕用于刪除 jTextField 中的所有文本。為此,將添加一些與以上代碼類似的代碼。完成的源代碼應(yīng)如下所示:
- private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
- jTextField1.setText("");
- jTextField2.setText("");
- jTextField3.setText("");
- }
上面的代碼將所有三個 JTextField 中的文本更改為空,實際就是使用空白覆蓋現(xiàn)有文本。
使 "Add" 按鈕正常工作
"Add" 按鈕用于執(zhí)行三個操作:
- 它接受
jTextField1和jTextField2中的用戶輸入,并將輸入類型由字符串轉(zhuǎn)換為浮點。 - 然后,它將兩個數(shù)相加;最后,
- 將兩個數(shù)之和的類型轉(zhuǎn)換為字符串,并將其放在
TextField3中。
我們現(xiàn)在就開始吧!
- 單擊工作區(qū)域頂部的“設(shè)計”標(biāo)簽以返回到窗體設(shè)計區(qū)域。
- 右鍵單擊 "Add" 按鈕 (
jButton2)。從彈出式菜單中選擇“事件”> "Action" > "actionPerformed" - 我們將添加一些代碼以使 "Add" 按鈕正常工作。完成的源代碼應(yīng)如下所示:
- private void jButton2ActionPerformed(java.awt.event.ActionEvent evt){
- // First we define float variables.
- float num1, num2, result;
- // We have to parse the text to a type float.
- num1 = Float.parseFloat(jTextField1.getText());
- num2 = Float.parseFloat(jTextField2.getText());
- // Now we can perform the addition.
- result = num1+num2;
- // We will now pass the value of result to jTextField3.
- // At the same time, we are going to
- // change the value of result from a float to a string.
- jTextField3.setText(String.valueOf(result)); }
程序已創(chuàng)建完畢,我們現(xiàn)在可以生成并運行該程序以查看其運行情況。
練習(xí) 4:運行程序
在 IDE 中運行程序:
- 選擇“運行”>“運行主項目”。
- 如果顯示的窗口通知您項目 NumberAddition 沒有設(shè)置主類,則應(yīng)在同一窗口中選擇 "my.NumberAddition.NumberAdditionUI" 作為主類,然后單擊“確定”按鈕。
在 IDE 外部運行程序:
- 選擇“運行”>“清理并生成主項目”(Shift-F11) 以生成應(yīng)用程序 JAR 文件。
- 通過使用系統(tǒng)的文件資源管理器或文件管理器,導(dǎo)航至
NumberAddition/dist目錄。 - 雙擊
NumberAddition.jar文件。
幾秒鐘后,將會啟動應(yīng)用程序。
注意:如果在雙擊 JAR 文件時沒有啟動應(yīng)用程序,請參見本文以了解在操作系統(tǒng)中設(shè)置 JAR 文件關(guān)聯(lián)的相關(guān)信息。
也可以通過命令行啟動應(yīng)用程序。
通過命令行啟動應(yīng)用程序:
- 在系統(tǒng)上,打開命令提示符或終端窗口。
- 在命令提示符中,轉(zhuǎn)至
NumberAddition/dist目錄。 - 在命令行中,鍵入以下語句:
- java -jar NumberAddition.jar
事件處理的工作方式
本教程已介紹了如何響應(yīng)簡單的按鈕事件。還可以讓應(yīng)用程序響應(yīng)很多其他事件。IDE 可以幫助您查找 GUI 組件可處理的可用事件列表:
- 返回至編輯器中的
NumberAdditionUI.java文件。單擊“設(shè)計”標(biāo)簽以在 GUI 生成器中查看 GUI 布局。 - 右鍵單擊任何 GUI 組件,然后從彈出式菜單中選擇“事件”。目前,僅瀏覽菜單以查看其中的內(nèi)容,而無需選擇任何內(nèi)容。
- 或者,也可以從“窗口”菜單中選擇“屬性”。在“屬性”窗口中,單擊“事件”標(biāo)簽。在“事件”標(biāo)簽中,可以查看和編輯與當(dāng)前活動 GUI 組件關(guān)聯(lián)的事件處理程序。
- 可以讓應(yīng)用程序響應(yīng)按鍵、鼠標(biāo)單擊、雙擊和三擊、鼠標(biāo)移動、窗口大小以及焦點變化??梢詮摹笆录辈藛沃袨樗羞@些內(nèi)容生成事件處理程序。最常用的事件是 Action 事件。(要了解事件處理的最佳做法,請參見 Sun 的 Java 事件教程。)
事件處理是如何工作的呢?每次從“事件”菜單中選擇事件時,IDE 都會自動創(chuàng)建一個所謂的事件偵聽程序,并將其與組件關(guān)聯(lián)。請完成以下步驟以查看事件處理的工作方式。
- 返回至編輯器中的
NumberAdditionUI.java文件。單擊“源”標(biāo)簽以查看 GUI 源代碼。 - 向下滾動并注意剛實現(xiàn)的方法
jButton1ActionPerformed()、jButton2ActionPerformed()和jButton3ActionPerformed()。這些方法稱為事件處理程序。 - 現(xiàn)在,滾動至名為
initComponents()的方法。如果未看到該方法,請查找顯示Generated Code的行;單擊該行旁邊的 + 號以展開折疊的initComponents()方法。 - 首先,請注意
initComponents()方法周圍的藍(lán)色塊。此代碼是由 IDE 自動生成的,無法對其進(jìn)行編輯。 - 現(xiàn)在,瀏覽
initComponents()方法。此外,該方法還包含用于初始化 GUI 組件并將其放置在窗體上的代碼。在“設(shè)計”視圖中放置和編輯組件時,將會自動生成和更新該代碼。 - 在
initComponents()中,向下滾動至顯示以下內(nèi)容的位置:- jButton3.setText("Exit");
- jButton3.addActionListener(new java.awt.event.ActionListener() {
- public void actionPerformed(java.awt.event.ActionEvent evt) {
- jButton3ActionPerformed(evt);
- }
- });
這是在 GUI 組件中添加事件偵聽程序?qū)ο蟮奈恢?;在本示例中,將?
jButton3中注冊 ActionListener。ActionListener 接口具有一個 actionPerformed 方法,該方法采用 ActionEvent 對象(只需調(diào)用jButton3ActionPerformed事件處理程序即可實現(xiàn))作為其參數(shù)?,F(xiàn)在,該按鈕將偵聽 action 事件。每次按下該按鈕時,都會生成 ActionEvent 并將其傳遞給偵聽程序的 actionPerformed 方法,而該方法又會執(zhí)行在該事件的事件處理程序中提供的代碼。
一般來說,要能夠進(jìn)行響應(yīng),每個交互式 GUI 組件需要在事件偵聽程序中進(jìn)行注冊,并且需要實現(xiàn)事件處理程序。正如您所看到的一樣,NetBeans IDE 可處理關(guān)聯(lián)事件偵聽程序的工作,因此,您可以集中精力實現(xiàn)應(yīng)由事件觸發(fā)的實際業(yè)務(wù)邏輯。
名稱欄目:生成Netbeans6.5GUI應(yīng)用程序簡介
網(wǎng)站URL:http://www.5511xx.com/article/cdjoojg.html


咨詢
建站咨詢
