日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java 写一个计算器_java编写一个计算器类

發(fā)布時(shí)間:2025/3/11 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 写一个计算器_java编写一个计算器类 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

展開(kāi)全部

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextField;

import javax.swing.SwingConstants;

public class Jisuanqi extends JFrame implements ActionListener {

/**

*

*/

private static final long serialVersionUID = 1L;

Result result = new Result(); // 定義text的面板

Number_Key number_key = new Number_Key(); // 定義按鈕面板

// 當(dāng)點(diǎn)擊按鈕+、-、*、/時(shí),com = true

boolean com = false;

// 當(dāng)i=0時(shí)說(shuō)明是我們第一次輸入62616964757a686964616fe78988e69d8331333337623430,字符串text不會(huì)累加

int i = 0;

// 存放text的內(nèi)容

String text = "";

// 存放點(diǎn)擊按鈕+、-、*、/之前的數(shù)值

double defbutton = 0;

// +、-、*、/的代號(hào)分別為1,2,3,4

int symbol = 0;

// 構(gòu)造函數(shù)

Jisuanqi() {

super("計(jì)算器"); // 設(shè)定標(biāo)題

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 設(shè)定關(guān)閉窗體時(shí)退出程序

JPanel pane = new JPanel(); // 定義主面板

pane.setLayout(new BorderLayout());

setBounds(380, 220, 30, 80); // 前兩個(gè)參數(shù)是在屏幕上顯示的坐標(biāo),后兩個(gè)是大小

// 替換圖標(biāo)

ImageIcon icon = new ImageIcon("F:1.GIF");

// Jisuanqi.class.getResource("APPLE.GIF")

// );

setIconImage(icon.getImage());

pane.add(result, BorderLayout.NORTH);

pane.add(number_key, BorderLayout.CENTER);

pane.add(number_key.equal, BorderLayout.SOUTH);

number_key.one.addActionListener(this); // 對(duì)1按鈕添加監(jiān)聽(tīng)事件

number_key.two.addActionListener(this); // 對(duì)2按鈕添加監(jiān)聽(tīng)事件

number_key.three.addActionListener(this); // 對(duì)3按鈕添加監(jiān)聽(tīng)事件

number_key.four.addActionListener(this); // 對(duì)4按鈕添加監(jiān)聽(tīng)事件

number_key.five.addActionListener(this); // 對(duì)5按鈕添加監(jiān)聽(tīng)事件

number_key.six.addActionListener(this); // 對(duì)6按鈕添加監(jiān)聽(tīng)事件

number_key.seven.addActionListener(this); // 對(duì)7按鈕添加監(jiān)聽(tīng)事件

number_key.eight.addActionListener(this); // 對(duì)8按鈕添加監(jiān)聽(tīng)事件

number_key.nine.addActionListener(this); // 對(duì)9按鈕添加監(jiān)聽(tīng)事件

number_key.zero.addActionListener(this); // 對(duì)0按鈕添加監(jiān)聽(tīng)事件

number_key.ce.addActionListener(this); // 對(duì)置零按鈕添加監(jiān)聽(tīng)事件

number_key.plus.addActionListener(this); // 對(duì)+按鈕添加監(jiān)聽(tīng)事件

number_key.equal.addActionListener(this); // 對(duì)=按鈕添加監(jiān)聽(tīng)事件

number_key.sub.addActionListener(this); // 對(duì)-按鈕添加監(jiān)聽(tīng)事件

number_key.mul.addActionListener(this); // 對(duì)*按鈕添加監(jiān)聽(tīng)事件

number_key.div.addActionListener(this); // 對(duì)/按鈕添加監(jiān)聽(tīng)事件

number_key.point.addActionListener(this); // 對(duì).按鈕添加監(jiān)聽(tīng)事件

setContentPane(pane);

pack(); // 初始化窗體大小為正好盛放所有按鈕

}

// 各個(gè)按鈕觸發(fā)的事件

public void actionPerformed(ActionEvent e) {

/*

* 如果是點(diǎn)擊數(shù)字按鈕那么先要判斷是否在此之前點(diǎn)擊了+、-、*、/、=,如果是那么com=true 如果沒(méi)有com=

* false;或者是否點(diǎn)擊數(shù)字鍵,如果是i = 1,如果沒(méi)有 i = 0;

*/

if (e.getSource() == number_key.one) {

if (com || i == 0) {

result.text.setText("1");

com = false;

i = 1;

} else {

text = result.text.getText();

result.text.setText(text + "1");

}

} else if (e.getSource() == number_key.two) {

if (com || i == 0) {

result.text.setText("2");

com = false;

i = 1;

} else {

text = result.text.getText();

result.text.setText(text + "2");

}

} else if (e.getSource() == number_key.three) {

if (com || i == 0) {

result.text.setText("3");

com = false;

i = 1;

} else {

text = result.text.getText();

result.text.setText(text + "3");

}

} else if (e.getSource() == number_key.four) {

if (com || i == 0) {

result.text.setText("4");

com = false;

i = 1;

} else {

text = result.text.getText();

result.text.setText(text + "4");

}

} else if (e.getSource() == number_key.five) {

if (com || i == 0) {

result.text.setText("5");

com = false;

i = 1;

} else {

text = result.text.getText();

result.text.setText(text + "5");

}

} else if (e.getSource() == number_key.six) {

if (com || i == 0) {

result.text.setText("6");

com = false;

i = 1;

} else {

text = result.text.getText();

result.text.setText(text + "6");

}

} else if (e.getSource() == number_key.seven) {

if (com || i == 0) {

result.text.setText("7");

com = false;

i = 1;

} else {

text = result.text.getText();

result.text.setText(text + "7");

}

} else if (e.getSource() == number_key.eight) {

if (com || i == 0) {

result.text.setText("8");

com = false;

i = 1;

} else {

text = result.text.getText();

result.text.setText(text + "8");

}

} else if (e.getSource() == number_key.nine) {

if (com || i == 0) {

result.text.setText("9");

com = false;

i = 1;

} else {

text = result.text.getText();

result.text.setText(text + "9");

}

}

/*

* 對(duì)于0這個(gè)按鈕有一定的說(shuō)法,在程序里不會(huì)出現(xiàn)如00000這樣的情況,加了判斷條件就是

* 如果text中的數(shù)值=0就要判斷在這個(gè)數(shù)值中是否有.存在?如果有那么就在原來(lái)數(shù)值基礎(chǔ)之上添 加0;否則保持原來(lái)的數(shù)值不變

*/

else if (e.getSource() == number_key.zero) { // result.text.getText()是得到text里內(nèi)容的意思

if (com || i == 0) {

result.text.setText("0");

com = false;

i = 1;

} else {

text = result.text.getText();

if (Float.parseFloat(text) > 0 || Float.parseFloat(text) < 0) { // Float.parseFloat(text)就是類型轉(zhuǎn)換了,下面都是一樣

result.text.setText(text + "0");

} else {

if (text.trim().indexOf(".") == -1) {

result.text.setText(text);

} else {

result.text.setText(text + "0");

}

}

}

} else if (e.getSource() == number_key.ce) {

result.text.setText("0");

i = 0;

com = true;

// text = "";

defbutton = 0;

}

/*

* 本程序不會(huì)讓一個(gè)數(shù)值中出現(xiàn)2個(gè)以上的小數(shù)點(diǎn).具體做法是:判斷是否已經(jīng)存在.存在就不添加, 不存在就添加.

*/

else if (e.getSource() == number_key.point) {

if (com || i == 0) {

result.text.setText("0.");

com = false;

i = 1;

} else {

text = result.text.getText();

if (text.trim().indexOf(".") == -1) {

result.text.setText(text + ".");

} else {

result.text.setText(text);

}

}

} // 獲得點(diǎn)擊+之前的數(shù)值

else if (e.getSource() == number_key.plus) {

com = true;

i = 0;

defbutton = Double.parseDouble(result.text.getText());

symbol = 1;

} // 獲得點(diǎn)擊-之前的數(shù)值

else if (e.getSource() == number_key.sub) {

com = true;

i = 0;

defbutton = Double.parseDouble(result.text.getText());

symbol = 2;

} // 獲得點(diǎn)擊*之前的數(shù)值

else if (e.getSource() == number_key.mul) {

com = true;

i = 0;

defbutton = Double.parseDouble(result.text.getText());

System.out.println(defbutton);

symbol = 3;

} // 獲得點(diǎn)擊/之前的數(shù)值

else if (e.getSource() == number_key.div) {

com = true;

i = 0;

defbutton = Double.parseDouble(result.text.getText());

symbol = 4;

} else if (e.getSource() == number_key.equal) {

switch (symbol) {

case 1: { // 計(jì)算加法

double ad = defbutton

+ Double.parseDouble(result.text.getText());

result.text.setText(ad + "");

i = 0;

text = "";

break;

}

case 2: { // 計(jì)算減法

double ad = defbutton

- Double.parseDouble(result.text.getText());

result.text.setText(String.valueOf(ad));

i = 0;

text = "";

break;

}

case 3: { // 計(jì)算乘法

double ad = defbutton

* Double.parseDouble(result.text.getText());

result.text.setText(ad + "");

i = 0;

text = "";

break;

}

case 4: { // 計(jì)算除法

double ad = defbutton

/ Double.parseDouble(result.text.getText());

result.text.setText(ad + "");

i = 0;

text = "";

break;

}

}

System.out.println(com);

}

System.out.println(result.text.getText());

}

@SuppressWarnings("deprecation")

public static void main(String[] args) {

Jisuanqi loveyou = new Jisuanqi();

loveyou.show();

}

}

// 計(jì)算器數(shù)字按鈕定義面板

class Number_Key extends JPanel {

/**

*

*/

private static final long serialVersionUID = 1L;

JButton zero = new JButton("0"); // 數(shù)字鍵0

JButton one = new JButton("1"); // 數(shù)字鍵1

JButton two = new JButton("2"); // 數(shù)字鍵2

JButton three = new JButton("3"); // 數(shù)字鍵3

JButton four = new JButton("4"); // 數(shù)字鍵4

JButton five = new JButton("5"); // 數(shù)字鍵5

JButton six = new JButton("6"); // 數(shù)字鍵6

JButton seven = new JButton("7"); // 數(shù)字鍵7

JButton eight = new JButton("8"); // 數(shù)字鍵8

JButton nine = new JButton("9"); // 數(shù)字鍵9

JButton plus = new JButton("+");

JButton sub = new JButton("-");

JButton mul = new JButton("*");

JButton div = new JButton("/");

JButton equal = new JButton("=");

JButton ce = new JButton("清零"); // 置零鍵

JButton point = new JButton(".");

Number_Key() {

setLayout(new GridLayout(4, 4, 1, 1)); // 定義布局管理器為網(wǎng)格布局

setBackground(Color.blue); // 設(shè)置背景顏色

// 添加按鈕

add(one);

add(two);

add(three);

add(four);

add(five);

add(six);

add(seven);

add(eight);

add(nine);

add(zero);

add(plus);

add(sub);

add(mul);

add(div);

add(point);

add(equal);

add(ce);

}

}

// 計(jì)算器顯示結(jié)果的窗體

class Result extends JPanel {

/**

*

*/

private static final long serialVersionUID = 1L;

// text先是輸入和結(jié)果

JTextField text = new JTextField("0");

@SuppressWarnings("deprecation")

Result() { // 講輸入的數(shù)字或得到的結(jié)果在text的右邊顯示

text.setHorizontalAlignment(SwingConstants.RIGHT);

text.enable(false); // 文本框不能編輯

setLayout(new BorderLayout()); // 設(shè)定布局管理器邊框布局

add(text, BorderLayout.CENTER); // text放置在窗體的中間

}

}

本回答由電腦網(wǎng)絡(luò)分類達(dá)人 董輝推薦

已贊過(guò)

已踩過(guò)<

你對(duì)這個(gè)回答的評(píng)價(jià)是?

評(píng)論

收起

總結(jié)

以上是生活随笔為你收集整理的java 写一个计算器_java编写一个计算器类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。