掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流
我們將完成Netbeans 6.5 GUI 布局和設計工作并添加幾個按鈕和文本字段。這些文本字段用于接收用戶輸入和顯示程序輸出。這些按鈕用于啟動前端的內(nèi)置功能。我們創(chuàng)建的應用程序是一個非常簡單但功能完善的計算器。

成都創(chuàng)新互聯(lián)客戶idc服務中心,提供成都天府聯(lián)通服務器托管、成都服務器、成都主機托管、成都雙線服務器等業(yè)務的一站式服務。通過各地的服務中心,我們向成都用戶提供優(yōu)質(zhì)廉價的產(chǎn)品以及開放、透明、穩(wěn)定、高性價比的服務,資深網(wǎng)絡工程師在機房提供7*24小時標準級技術保障。
有關更全面的Netbeans 6.5 GUI 生成器設計功能指南(包括各種設計功能的視頻演示),請參見在Netbeans 6.5IDE 中設計 Swing GUI。
要學完本教程,您需要具備以下軟件和資源。
| 軟件或資源 | 要求的版本 |
|---|---|
| NetBeans IDE | 版本 6.5 |
| Java Development Kit (JDK) | 版本 6 或 版本 5 |
練習 1:創(chuàng)建項目
第一步是為要開發(fā)的應用程序創(chuàng)建 IDE 項目。我們將項目命名為 NumberAddition。
NumberAddition,然后指定項目位置路徑(例如,在主目錄中)。 練習 2:生成前端
要繼續(xù)生成界面,我們需要創(chuàng)建一個 Java 容器,以便放置所需的其他 GUI 組件。在此步驟中,我們將使用 JFrame 組件創(chuàng)建一個容器。我們將該容器放在新包中,該包將顯示在“源包”節(jié)點中。
創(chuàng)建 JFrame 容器
my.numberaddition。 IDE 將在 NumberAddition 應用程序中創(chuàng)建 NumberAdditionUI 窗體和 NumberAdditionUI 類,然后在 GUI 生成器中打開 NumberAdditionUI 窗體。my.NumberAddition 包將替代缺省包。
添加組件:生成前端
接下來,我們將通過組件面板使用 JPanel 填充應用程序前端。然后,添加三個 JLabel、三個 JTextField 和三個 JButton。如果以前沒有用過 GUI 生成器,您可能會發(fā)現(xiàn)在 NetBeans IDE 中設計 Swing GUI 教程中有關組件放置的信息非常有用。
在拖動并放置完上述組件后,JFrame 應類似于以下屏幕快照。
如果在 IDE 右上角未看到“組件面板”窗口,則選擇“窗口”>“組件面板”。
Number Addition。單擊“確定”保存更改并退出該對話框。 重命名組件
在該步驟中,我們將重命名剛添加到 JFrame 中的這些組件的顯示文本。
jLabel1 并將文本屬性更改為 First Number。 jLabel2 并將文本更改為 Second Number。 jLabel3 并將文本更改為 Result。 jTextField1 中的樣例文本??赏ㄟ^以下方法使顯示文本處于可編輯狀態(tài):單擊文本字段,稍等片刻,然后再次單擊文本字段??赡苄枰獙?jTextField1 調(diào)整為原始大小。對于 jTextField2 和 jTextField3,重復此步驟。 jButton1 顯示文本重命名為 Clear。(可以通過右鍵單擊按鈕并選擇“編輯文本”來編輯按鈕的文本?;蛘?,也可以單擊按鈕,稍等片刻,然后再次單擊按鈕。) jButton2 顯示文本重命名為 Add。 jButton3 顯示文本重命名為 Exit。 現(xiàn)在,完成的 GUI 應類似于以下屏幕快照:
練習 3:添加功能
在本練習中,我們將為 "Add"、"Clear" 和 "Exit" 按鈕添加功能。jTextField1 和 jTextField2 框用于用戶輸入,jTextField3 用于程序輸出;我們要創(chuàng)建的應用程序是一個非常簡單的計算器。我們現(xiàn)在就開始吧。
使 "Exit" 按鈕正常工作
要為這些按鈕添加功能,必須為每個按鈕指定事件處理程序以響應事件。在本示例中,我們需要了解何時通過鼠標單擊或鍵盤按下了按鈕。因此,我們使用 ActionListener 來響應 ActionEvent。
- private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
- //TODO: Add your handling code here:
- }
- private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
- System.exit(0);
- }
使 "Clear" 按鈕正常工作
jButton1)。從彈出式菜單中選擇“事件”> "Action" > "actionPerformed"。
- private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
- jTextField1.setText("");
- jTextField2.setText("");
- jTextField3.setText("");
- }
上面的代碼將所有三個 JTextField 中的文本更改為空,實際就是使用空白覆蓋現(xiàn)有文本。
使 "Add" 按鈕正常工作
"Add" 按鈕用于執(zhí)行三個操作:
jTextField1 和 jTextField2 中的用戶輸入,并將輸入類型由字符串轉(zhuǎn)換為浮點。 TextField3 中。我們現(xiàn)在就開始吧!
jButton2)。從彈出式菜單中選擇“事件”> "Action" > "actionPerformed"
- 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)在可以生成并運行該程序以查看其運行情況。
練習 4:運行程序
在 IDE 中運行程序:
在 IDE 外部運行程序:
NumberAddition/dist 目錄。 NumberAddition.jar 文件。 幾秒鐘后,將會啟動應用程序。
注意:如果在雙擊 JAR 文件時沒有啟動應用程序,請參見本文以了解在操作系統(tǒng)中設置 JAR 文件關聯(lián)的相關信息。
也可以通過命令行啟動應用程序。
通過命令行啟動應用程序:
NumberAddition/dist 目錄。
- java -jar NumberAddition.jar
事件處理的工作方式
本教程已介紹了如何響應簡單的按鈕事件。還可以讓應用程序響應很多其他事件。IDE 可以幫助您查找 GUI 組件可處理的可用事件列表:
NumberAdditionUI.java 文件。單擊“設計”標簽以在 GUI 生成器中查看 GUI 布局。 事件處理是如何工作的呢?每次從“事件”菜單中選擇事件時,IDE 都會自動創(chuàng)建一個所謂的事件偵聽程序,并將其與組件關聯(lián)。請完成以下步驟以查看事件處理的工作方式。
NumberAdditionUI.java 文件。單擊“源”標簽以查看 GUI 源代碼。 jButton1ActionPerformed()、jButton2ActionPerformed() 和 jButton3ActionPerformed()。這些方法稱為事件處理程序。 initComponents() 的方法。如果未看到該方法,請查找顯示 Generated Code 的行;單擊該行旁邊的 + 號以展開折疊的 initComponents() 方法。 initComponents() 方法周圍的藍色塊。此代碼是由 IDE 自動生成的,無法對其進行編輯。 initComponents() 方法。此外,該方法還包含用于初始化 GUI 組件并將其放置在窗體上的代碼。在“設計”視圖中放置和編輯組件時,將會自動生成和更新該代碼。 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í)行在該事件的事件處理程序中提供的代碼。
一般來說,要能夠進行響應,每個交互式 GUI 組件需要在事件偵聽程序中進行注冊,并且需要實現(xiàn)事件處理程序。正如您所看到的一樣,NetBeans IDE 可處理關聯(lián)事件偵聽程序的工作,因此,您可以集中精力實現(xiàn)應由事件觸發(fā)的實際業(yè)務邏輯。

我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流