資源簡(jiǎn)介
java做的計(jì)算器,有兩個(gè)模式:科學(xué)計(jì)算器,簡(jiǎn)單計(jì)算器

代碼片段和文件信息
package?com.chp01.test1;
import?java.awt.BorderLayout;
import?java.awt.Color;
import?java.awt.Font;
import?java.awt.GridLayout;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?javax.swing.JButton;
import?javax.swing.Jframe;
import?javax.swing.JMenu;
import?javax.swing.JMenuBar;
import?javax.swing.JMenuItem;
import?javax.swing.JPanel;
import?javax.swing.JTextField;
public?class?Calculator?extends?Jframe?implements?ActionListener?{
//?計(jì)算器上的鍵的顯示名字?*/
private?final?String[]?KEYS?=?{?“7“?“8“?“9“?“/“?“sqrt“?“4“?“5“?“6“
“*“?“%“?“1“?“2“?“3“?“-“?“1/x“?“0“?“+/-“?“.“?“+“?“=“?};
//?計(jì)算器上的功能鍵的顯示名字?*/
private?final?String[]?COMMAND?=?{?“←“?“CE“?“C“?};
//?計(jì)算器左邊的M的顯示名字?*/
private?final?String[]?M?=?{?“?“?“MC“?“MR“?“MS“?“M+“?};
//?計(jì)算器上鍵的按鈕?*/
private?JButton?keys[]?=?new?JButton[KEYS.length];
//?計(jì)算器上的功能鍵的按鈕?*/
private?JButton?commands[]?=?new?JButton[COMMAND.length];
//?計(jì)算器左邊的M的按鈕?*/
private?JButton?m[]?=?new?JButton[M.length];
//?計(jì)算結(jié)果文本框?*/
private?JTextField?resultText?=?new?JTextField(“0“);
//?標(biāo)志用戶按的是否是整個(gè)表達(dá)式的第一個(gè)數(shù)字或者是運(yùn)算符后的第一個(gè)數(shù)字
private?boolean?firstDigit?=?true;
//?計(jì)算的中間結(jié)果。
private?double?resultNum?=?0.0;
//?當(dāng)前運(yùn)算的運(yùn)算符
private?String?operator?=?“=“;
//?操作是否合法
private?boolean?operateValidFlag?=?true;
/**
?*?構(gòu)造函數(shù)
?*/
public?Calculator()?{
super();
//?初始化計(jì)算器
init();
JMenuBar?mb?=?new?JMenuBar();//創(chuàng)建菜單欄
JMenu?b1?=?new?JMenu(“操作“);
JMenu?b2?=?new?JMenu(“幫助“);
JMenuItem?c1?=?new?JMenuItem(“基本計(jì)算器“);
JMenuItem?c2?=?new?JMenuItem(“科學(xué)計(jì)算器“);
JMenuItem?c3?=?new?JMenuItem(“About...“);
setJMenuBar(mb);//添加菜單欄
mb.add(b1);
mb.add(b2);//添加菜單
b1.add(c2);
b1.add(c1);
b2.add(c3);
b1.setFont(new?Font(“宋體“?Font.PLAIN?17));
b2.setFont(new?Font(“宋?體“?Font.PLAIN?17));
c1.addActionListener(new?MenuItemListener());//監(jiān)聽簡(jiǎn)易計(jì)算
c2.addActionListener(new?MenuItemListener());//監(jiān)聽科學(xué)計(jì)算
c3.addActionListener(new?MenuItemListener());//監(jiān)聽關(guān)于
//?設(shè)置計(jì)算器的背景顏色
this.setBackground(Color.LIGHT_GRAY);
this.settitle(“計(jì)算器“);
//?在屏幕(300?200)坐標(biāo)處顯示計(jì)算器
this.setLocation(300?200);
//?不許修改計(jì)算器的大小
this.setResizable(false);
//?使計(jì)算器中各組件大小合適
setVisible(true);
this.pack();
}
/**
?*?初始化計(jì)算器
?*/
private?void?init()?{
//?文本框中的內(nèi)容采用右對(duì)齊方式
resultText.setHorizontalAlignment(JTextField.RIGHT);
//?不允許修改結(jié)果文本框
resultText.setEditable(false);
//?設(shè)置文本框背景顏色為白色
resultText.setBackground(Color.white);
//?初始化計(jì)算器上鍵的按鈕,將鍵放在一個(gè)畫板內(nèi)
JPanel?calckeysPanel?=?new?JPanel();
//?用網(wǎng)格布局器,4行,5列的網(wǎng)格,網(wǎng)格之間的水平方向間隔為3個(gè)象素,垂直方向間隔為3個(gè)象素
calckeysPanel.setLayout(new?GridLayout(4?5?3?3));
for?(int?i?=?0;?i? keys[i]?=?new?JButton(KEYS[i]);
calckeysPanel.add(keys[i]);
keys[i].setForeground(Color.blue);
keys[i].setFont(new?Font(“微軟雅黑“?Font.BOLD?13));
}
//?運(yùn)算符鍵用紅色標(biāo)示,其他鍵用藍(lán)色表示
keys[3].setForeground(Color.black);
keys[8].setForeground(Color.black);
keys[13
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????9315??2016-06-30?10:06??test1\Calculator.java
?????文件???????1060??2016-06-30?13:26??test1\MenuItemListener.java
?????文件??????10257??2016-06-30?10:21??test1\ScienceCal.java
?????目錄??????????0??2016-06-30?09:49??test1
-----------?---------??----------?-----??----
????????????????20632????????????????????4
評(píng)論
共有 條評(píng)論