欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java圖形界面之加法計算器

 更新時間:2022年04月26日 18:18:54   作者:「已注銷」  
這篇文章主要為大家詳細介紹了java圖形界面之加法計算器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

JAVA用于開發(fā)圖形界面應用的 SWING 組件包功能強大,使用方便。接下來我們就使用其寫一個簡單的圖形界面小程序:加法計算器。

第一步:

首先得構思,我們要做什么。加法計算器的話,做出來之后大概是這個樣子的。

如上圖所示,這個程序的界面在我們腦海中已經成型了:程序頂部有一個標題,這里用來交代我們程序的名字;功能上用戶可以在方框 1 和方框 2 中放入想要進行相加的數值,然后我們點擊下方的 “計算” 按鈕,結果就會顯示在方框 3 中。

第二步:

分析界面,我們該怎么做。從上圖可以看出,界面中包含 7 個控件 : 標題,方框 1 ,方框 2 ,方框 3,加號,等于號,還有一個 “計算” 按鈕。
此時我們腦海中應該已經有了相應的對策 :
方框 1 , 方框 2 用來接收用戶動態(tài)輸入的值,方框 3 用來顯示計算的結果;我們可以使用三個文本框來完成,其中方框 3 并不需要用戶輸入,我們可以給其設置用戶不可編輯屬性。
標題,加號和等于號,這三個控件始終不變,我們選擇靜態(tài)的標簽來完成。
“計算” 按鈕,當然得用按鈕控件來完成,但是如果只是一個平平無奇的按鈕,那可就沒有用了,我們需要為這個按鈕添加一個計算加法的事件響應,以便我們在單擊這個按鈕時,計算結果會出現在方框 3 中。

控件的使用選擇好了。我們還需要分析分析,想要實現如上圖所示的界面,我們需要幾個模塊。

兩個模塊:

1)標題 為一個模塊。
2)方框 1, 方框 2,方框 3,加號,等于號為一個模塊。

這是因為 方框 1, 方框 2,方框 3,加號,等于號 處于同一水平線上,而 標題 處于另一個水平線上。所以我們需要將其分為兩個模塊。(也許會感覺有點多此一舉,但程序設計就是這樣,死板且靈活,方法是固定的,但卻可以實現各種各樣的效果)。
在分為兩個水平模塊后,事情還沒有結束,我們還需要將這兩個水品模塊組合為一個垂直模塊(從上到下排列)。
按鈕我們待會兒隨意設置其位置,這里就不將其作為一個模塊了。

這樣,準備工作算是完成了。著手寫代碼吧。

代碼實現:

import java.awt.Color;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class MyWin extends JFrame implements ActionListener{
?? ?JTextField rValue = new JTextField(8);
?? ?JTextField lValue = new JTextField(8);
?? ?JTextField result = new JTextField(8);
?? ?JButton calcul = new JButton("計算");
?? ?
?? ?MyWin() {
?? ??? ?/**布局設計**/
?? ??? ?setTitle("加法計算器");
?? ??? ?setLayout(null);
?? ??? ?setBounds(680, 300, 512, 380);
?? ??? ?setVisible(true);
?? ??? ?setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
?? ??? ?
?? ??? ?JPanel myTitle = new JPanel();
?? ??? ?myTitle.add(new JLabel("加法計算器 - v1.0"));
?? ??? ?JPanel myText = new JPanel();
?? ??? ?myText.add(rValue);
?? ??? ?myText.add(new JLabel(" + "));
?? ??? ?myText.add(lValue);
?? ??? ?myText.add(new JLabel(" = "));
?? ??? ?result.setEditable(false);
?? ??? ?result.setBackground(Color.LIGHT_GRAY);
?? ??? ?myText.add(result);
?? ??? ?
?? ??? ?Box myMain = Box.createVerticalBox();
?? ??? ?Component strut1 = Box.createVerticalStrut(20);
?? ??? ?Component strut2 = Box.createVerticalStrut(200);
?? ??? ?myMain.add(strut1);
?? ??? ?myMain.add(myTitle);
?? ??? ?myMain.add(myText);
?? ??? ?myMain.add(strut2);
?? ??? ?myMain.setBounds(0, 0, 512, 380);
?? ??? ?add(myMain);
?? ??? ?
?? ??? ?calcul.setBounds(200, 220, 100, 60);
?? ??? ?add(calcul);
?? ??? ?
?? ??? ?/**事件監(jiān)聽**/
?? ??? ?calcul.addActionListener(new ActionListener() {

?? ??? ??? ?@Override
?? ??? ??? ?public void actionPerformed(ActionEvent e) {
?? ??? ??? ??? ?// TODO Auto-generated method stub
?? ??? ??? ??? ?
?? ??? ??? ??? ?try {
?? ??? ??? ??? ??? ?int rVal = Integer.valueOf(rValue.getText());
?? ??? ??? ??? ??? ?int lVal = Integer.valueOf(lValue.getText());
?? ??? ??? ??? ??? ?int res = rVal + lVal;
?? ??? ??? ??? ??? ?result.setText(String.valueOf(res));
?? ??? ??? ??? ?} catch (Exception e1) {
?? ??? ??? ??? ??? ?System.out.println(e1);
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?
?? ??? ?});
?? ?}

?? ?@Override
?? ?public void actionPerformed(ActionEvent e) {
?? ??? ?// TODO Auto-generated method stub

?? ?}
}

上述代碼中:

1 ~ 5 行,導入了需要使用到的包。

想要實現窗口界面,首先我們需要一個窗口。

7 ~ 70 行,定義了一個窗口類并在其構造函數中具體實現了控件的初始化。該窗口類繼承自 JAVA 提供的JFrame 窗口類,并實現了JAVA 提供的 ActionListener 事件響應接口(我們使用該窗口類作為自己的事件監(jiān)聽器)。

8 ~ 11 行,將文本框與按鈕控件作為類的成員屬性,因為在程序運行時他們的狀態(tài)需要保存下來,如果將其定義在某個函數中,該函數結束時,控件的生命周期也會結束,控件的狀態(tài)已經其中的值無法保存,我們便無法完成后序的其他操作。其中 8,9,10 行文本框控件使用有參構造定義,表示該文本框控件最大可顯示 8 位字符。

13 ~ 63 行,實現窗口類的構造函數。

15 行,設置窗口標題。

16 行,設置窗口布局為 null 布局,即我們需要設置每一個控件的位置。

17 行,設置窗口程序運行時出現在屏幕上時的初始位置和窗口大小。

18 行,設置窗口可見。若設置為 false ,則窗口不可見(你什么也看不到)。

19 行,設置點擊窗口右上角叉叉時程序的事件響應。我這里設置為 EXIT_ON_CLOSE ,即點擊后退出程序。

21 行,定義一個 myTitle 面板(即為上文中第一個模塊),用來存放我們的標題。
22 行,往 mytitle 面板中增加了我們的標題文本標簽。

23 ~ 30,定義 myText 面板(第二個模塊)并往其中添加了類成員屬性中的三個文本框控件。其中 28 行設置接受結果的文本框的屬性為不可編輯,29 行設置其顏色為亮灰色。

32 ~ 39 行,我們將上面定義的兩個面板(兩個模塊)放入了一個垂直盒子中(將兩個模塊組合)。
其中 33,34 行我設置了兩個支撐體,用來控制兩個模塊之間的距離。

40 行,將裝有兩個面板的盒子添加到當前窗口。

42 行,設置 “計算” 按鈕出現在窗口中的位置和按鈕的大小。
43 行,將按鈕添加到當前窗口。

46 ~ 62 行,為 “計算” 按鈕注冊監(jiān)聽器并實現事件響應函數(將兩個文本框內的字符串轉化為整形數據進行加法計算后,將結果輸出在接收結果的文本框中)。

在相同包下的 Test 文件中測試一下程序。

public class Test {

?? ?public static void main(String[] args) {
?? ??? ?// TODO Auto-generated method stub
?? ??? ?MyWin a = new MyWin();
?? ?}

}

運行效果:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 新手入門Jvm--Jvm垃圾回收

    新手入門Jvm--Jvm垃圾回收

    JVM是Java Virtual Machine(Java虛擬機)的縮寫,JVM是一種用于計算設備的規(guī)范,它是一個虛構出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現的
    2021-06-06
  • 深入理解Maven環(huán)境搭建和介紹

    深入理解Maven環(huán)境搭建和介紹

    這篇文章主要介紹了深入理解Maven環(huán)境搭建和介紹,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • java語言與平臺基礎知識點

    java語言與平臺基礎知識點

    在本篇文章里小編給大家整理的是一篇關于java語言與平臺基礎知識點內容,有需要的朋友們跟著學習下。
    2019-11-11
  • Springboot 全局時間格式化三種方式示例詳解

    Springboot 全局時間格式化三種方式示例詳解

    時間格式化在項目中使用頻率是非常高的,當我們的 API? 接口返回結果,需要對其中某一個 date? 字段屬性進行特殊的格式化處理,通常會用到 SimpleDateFormat? 工具處理,這篇文章主要介紹了3 種 Springboot 全局時間格式化方式,需要的朋友可以參考下
    2024-01-01
  • Java詳細分析LCN框架分布式事務

    Java詳細分析LCN框架分布式事務

    這篇文章主要介紹了Java LCN框架分布式事務,分布式事務是指事務的參與者、支持事務的服務器、資源服務器以及事務管理器分別位于不同的分布式系統(tǒng)的不同節(jié)點之上
    2022-07-07
  • 圖文并茂講解RocketMQ消息類別

    圖文并茂講解RocketMQ消息類別

    這篇文章主要介紹了圖文并茂講解RocketMQ消息類別,RocketMQ對于消息提供了很多用法,包括:同步消息、異步消息、單向發(fā)送、順序消息、延時消息、批量消息、過濾消息、事務消息等
    2022-12-12
  • spring cloud 使用Hystrix 實現斷路器進行服務容錯保護的方法

    spring cloud 使用Hystrix 實現斷路器進行服務容錯保護的方法

    本篇文章主要介紹了spring cloud 使用Hystrix 實現斷路器進行服務容錯保護的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • java 多態(tài)性詳解及簡單實例

    java 多態(tài)性詳解及簡單實例

    這篇文章主要介紹了java 多態(tài)性詳解及簡單實例的相關資料,需要的朋友可以參考下
    2017-02-02
  • Java8中 LocalDate和java.sql.Date的相互轉換操作

    Java8中 LocalDate和java.sql.Date的相互轉換操作

    這篇文章主要介紹了Java8中 LocalDate和java.sql.Date的相互轉換操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Java序列化中子類、父類構造函數問題實例分析

    Java序列化中子類、父類構造函數問題實例分析

    這篇文章主要介紹了Java序列化中子類、父類構造函數問題,結合實例形式分析了java父類與子類構造函數中序列化接口調用相關操作技巧與使用注意事項,需要的朋友可以參考下
    2019-09-09

最新評論