溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用java怎么實現一個計算器功能

發布時間:2020-12-15 14:43:52 來源:億速云 閱讀:193 作者:Leah 欄目:開發技術

利用java怎么實現一個計算器功能?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

思路:定義一個主框架Frame,我們對原設計的草圖進行劃分,以方便后面的布局

下面我們來對主框架進行劃分

利用java怎么實現一個計算器功能

如圖,我們將主框架劃分為四個JPanel,其中panel1,2,3使用GridLayout布局,GridLayout(1,2),

利用java怎么實現一個計算器功能

對于panel4我們使用流式布局,主框架設置為FlowLayout,

利用java怎么實現一個計算器功能

由此我們把主要的布局設計好了,接下來我們將個標簽,文本框,按鈕對應按鈕按如上設計圖依次放入各個panel中,忘了說了,我們還有對各個按鈕注冊事件監聽器

利用java怎么實現一個計算器功能

接著我們就要在actionPerformed()函數中對事件源(e.getSource())方法中對相應的事件進行處理,我們以加法為列,我們的設計思路是:從數字一,數字二對應的文本框接收數據,由于使用JTextField的方法getText()返回的是一個String,所以我們要將其轉化為十進制實數,所以我們使用了Double.parseDouble()函數將從文本框接收到的String轉化為一個實數,數字一和數字二現在變成了實數,接著根據事件源不同就行對應不同的運算,接著結果繼續轉化為字符串(String.valueOf()函數),并且設置數字三對應的文本框的內容為相應的結果即:jt3.setText();結束。

利用java怎么實現一個計算器功能

圖例 :乘法運算處理

特別的,在做除法運算時我們要對第二個操作數進行零操作檢查,如果除數為零,我們將數字三對應的文本區設置為”除數不能為零”提示用戶,除數不能為0

利用java怎么實現一個計算器功能

圖例:除數不能為零

程序運行結果:輸出1,2

加法

利用java怎么實現一個計算器功能

減法 

利用java怎么實現一個計算器功能

乘法 

利用java怎么實現一個計算器功能

除法

利用java怎么實現一個計算器功能

除數不能為0:

利用java怎么實現一個計算器功能

實現源碼

import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
public class MyCalc extends JFrame implements ActionListener {
 JFrame jf;
 
 JLabel jl1;
 JLabel jl2;
 JLabel jl3;
 
 JButton jb1;
 JButton jb2;
 JButton jb3;
 JButton jb4;
 
 JTextField jt1;
 JTextField jt2;
 JTextField jt3;
 JPanel jp1;
 JPanel jp2;
 JPanel jp3;
 JPanel jp4;
 Container con;
 
 public void go() {
 
  //窗口設置
  this.setLayout(new FlowLayout());
  this.setTitle("計算");
  this.setSize(150,200);
  
  con=this.getContentPane();
  //標簽設置
  jl1=new JLabel("數字一");
  jl2=new JLabel("數字二");
  jl3=new JLabel("數字三");
  //按鈕設置,及其注冊事件監聽
  jb1=new JButton("+");
  jb1.addActionListener(this);
  jb2=new JButton("-");
  jb2.addActionListener(this);
  jb3=new JButton("*");
  jb3.addActionListener(this);
  jb4=new JButton("/");
  jb4.addActionListener(this);
  //添加到面板
  jp1=new JPanel(new GridLayout(1,2));
  jp2=new JPanel(new GridLayout(1,2));
  jp3=new JPanel(new GridLayout(1,2));
  jp4=new JPanel(new GridLayout(1,2));
  //穿件文本框
  jt1=new JTextField();
  jt2=new JTextField();
  jt3=new JTextField(); 
  jp1.setVisible(true);
  
  jp1.add(jl1);
  jp1.add(jt1);
  con.add(jp1);
  
  jp2.add(jl2);
  jp2.add(jt2);
  con.add(jp2);
  
  jp3.add(jl3);
  jp3.add(jt3); 
  con.add(jp3);
  
  jp4.add(jb1);
  jp4.add(jb2);
  jp4.add(jb3);
  jp4.add(jb4);
  con.add(jp4);
  
  this.setVisible(true);
   
 }
 public static void main(String [] args) {
 MyCalc a= new MyCalc();
 
 a.go();
 
 }
 @Override
 public void actionPerformed(ActionEvent e) {
 // TODO Auto-generated method stub
 if(e.getSource()==jb1) {
 jt3.setText(String.valueOf(Double.parseDouble(jt1.getText())+Double.parseDouble(jt2.getText())));
 }else if(e.getSource()==jb2) {
 jt3.setText(String.valueOf(Double.parseDouble(jt1.getText())-Double.parseDouble(jt2.getText())));
 }else if(e.getSource()==jb3) {
  jt3.setText(String.valueOf(Double.parseDouble(jt1.getText())*Double.parseDouble(jt2.getText())));
 }else {
 if(Double.parseDouble(jt2.getText())==0.0) {
  jt3.setText("除數不能為零");
 }else
 jt3.setText(String.valueOf(Double.parseDouble(jt1.getText())/Double.parseDouble(jt2.getText())));
 }
 
 }
}

關于利用java怎么實現一個計算器功能問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女