新聞中心
關(guān)于java中計(jì)算機(jī)的功能實(shí)現(xiàn)代碼求大神指導(dǎo)
import?java.util.Scanner;
融水ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
import?java.awt.*;
import?java.awt.event.*;
public?class?Test?extends?WindowAdapter?{
Panel?p1?=?new?Panel();
Panel?p2?=?new?Panel();
Panel?p3?=?new?Panel();
TextField?txt;
private?Button[]?b?=?new?Button[17];
private?String?ss[]?=?{?"7",?"8",?"9",?"+",?"4",?"5",?"6",?"-",?"1",?"2",
"3",?"*",?"clear",?"0",?"=",?"/",?"close"?};
static?double?a;
static?String?s,?str;//?定義變量?創(chuàng)建對(duì)像
public?static?void?main(String?args[])?{
(new?Test()).frame();
}
public?void?frame()?{
Frame?fm?=?new?Frame("簡(jiǎn)單計(jì)算器");
for?(int?i?=?0;?i?=?16;?i++)?{
b[i]?=?new?Button(ss[i]);
}
for?(int?i?=?0;?i?=?15;?i++)?{
p2.add(b[i]);
}?//?創(chuàng)建按鈕?并添加到P2
b[16].setBackground(Color.yellow);
txt?=?new?TextField(15);
txt.setEditable(false);
for?(int?i?=?0;?i?=?16;?i++)?{
b[i].addActionListener(new?buttonlistener());//?添加監(jiān)聽器
}
b[16].addActionListener(new?close());
fm.addWindowListener(this);
fm.setBackground(Color.red);
p1.setLayout(new?BorderLayout());
p1.add(txt,?"North");
p2.setLayout(new?GridLayout(4,?4));
p3.setLayout(new?BorderLayout());
p3.add(b[16]);
fm.add(p1,?"North");
fm.add(p2,?"Center");
fm.add(p3,?"South");
fm.pack();
fm.setVisible(true);//?都是些窗中設(shè)置?添加相關(guān)組件和監(jiān)聽器
}
public?void?windowClosing(WindowEvent?e)?{
System.exit(0);//?退出系統(tǒng)
}
class?buttonlistener?implements?ActionListener?{//?編寫監(jiān)聽器事件?通過按鍵得出給果
public?void?actionPerformed(ActionEvent?e)?{
Button?btn?=?(Button)?e.getSource();
if?(btn.getLabel()?==?"=")?{
jisuan();
str?=?String.valueOf(a);
txt.setText(str);
s?=?"";
}?else?if?(btn.getLabel()?==?"+")?{
jisuan();
txt.setText("");
s?=?"+";
}?else?if?(btn.getLabel()?==?"-")?{
jisuan();
txt.setText("");
s?=?"-";
}?else?if?(btn.getLabel()?==?"/")?{
jisuan();
txt.setText("");
s?=?"/";
}?else?if?(btn.getLabel()?==?"*")?{
jisuan();
txt.setText("");
s?=?"*";
}?else?{
txt.setText(txt.getText()?+?btn.getLabel());
if?(btn.getLabel()?==?"clear")
txt.setText("");
}
}
public?void?jisuan()?{//?編寫具體計(jì)算方法
if?(s?==?"+")
a?+=?Double.parseDouble(txt.getText());
else?if?(s?==?"-")
a?-=?Double.parseDouble(txt.getText());
else?if?(s?==?"*")
a?*=?Double.parseDouble(txt.getText());
else?if?(s?==?"/")
a?/=?Double.parseDouble(txt.getText());
else
a?=?Double.parseDouble(txt.getText());
}
}
}
class?close?implements?ActionListener?{//?退出
public?void?actionPerformed(ActionEvent?e)?{
System.exit(0);
}
}
用java.EE編寫計(jì)算器程序代碼
java EE是java企業(yè)級(jí)開發(fā)平臺(tái)的意思,實(shí)在是看不出跟計(jì)算器這種小程序有什么關(guān)聯(lián)。不知道樓主要找的是不是這個(gè)。
package ex1;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DecimalFormat;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JTextField;
public class Calcutor extends JFrame {
private JTextField tf;
private JPanel panel1, panel2, panel3, panel4;
private JMenuBar myBar;
private JMenu menu1, menu2, menu3;
private JMenuItem editItem1, editItem2, help1, help2, help3;
private JRadioButtonMenuItem seeItem1, seeItem2;//單選框
private JCheckBoxMenuItem seeItem3;//復(fù)選框
private ButtonGroup bgb;
private String back;
private boolean IfResult = true, flag = false;
private String oper = "=";
private double result = 0;
private Num numActionListener;
private DecimalFormat df;
public Calcutor(){
super("科學(xué)計(jì)算器");//設(shè)置標(biāo)題欄
df = new DecimalFormat("#.####");//保留四位小數(shù)
this.setLayout(new BorderLayout(10, 5));
panel1 = new JPanel(new GridLayout(1, 3, 10, 10));
panel2 = new JPanel(new GridLayout(5, 6, 5, 5));//5行6列
panel3 = new JPanel(new GridLayout(5, 1, 5, 5));
panel4 = new JPanel(new BorderLayout(5, 5));
/**
* 菜單欄
*/
myBar = new JMenuBar();
menu1 = new JMenu("編輯(E)");
menu2 = new JMenu("查看(V)");
menu3 = new JMenu("幫助(H)");
menu1.setFont(new Font("宋體", Font.PLAIN, 12));
menu2.setFont(new Font("宋體", Font.PLAIN, 12));
menu3.setFont(new Font("宋體", Font.PLAIN, 12));
/**
* 編輯欄
*/
editItem1 = new JMenuItem("復(fù)制(C) Ctrl+C");
editItem2 = new JMenuItem("粘貼(P) Ctrl+V");
editItem1.setFont(new Font("宋體",Font.PLAIN,12));
editItem2.setFont(new Font("宋體",Font.PLAIN,12));
/**
* 查看欄
*/
seeItem1 = new JRadioButtonMenuItem("科學(xué)型(T)");
seeItem2 = new JRadioButtonMenuItem("標(biāo)準(zhǔn)型(S)");
seeItem3 = new JCheckBoxMenuItem("數(shù)字分組(I)");
seeItem1.setFont(new Font("宋體",Font.PLAIN,12));
seeItem2.setFont(new Font("宋體",Font.PLAIN,12));
seeItem3.setFont(new Font("宋體",Font.PLAIN,12));
/**
* 幫助欄
*/
help1 = new JMenuItem("幫助主題(H)");
help2 = new JMenuItem("關(guān)于計(jì)算器(A)");
help1.setFont(new Font("宋體",Font.PLAIN,12));
help2.setFont(new Font("宋體",Font.PLAIN,12));
bgb = new ButtonGroup();//選項(xiàng)組
menu1.add(editItem1);
menu1.add(editItem2);
menu2.add(seeItem1);
menu2.add(seeItem2);
menu2.addSeparator();//添加一條分割線
menu2.add(seeItem3);
menu3.add(help1);
menu3.addSeparator();//添加一條分割線
menu3.add(help2);
myBar.add(menu1);
myBar.add(menu2);
myBar.add(menu3);
this.setJMenuBar(myBar);
numActionListener = new Num();//實(shí)現(xiàn)數(shù)字監(jiān)聽
/**
* 文本域,即為計(jì)算器的屏幕顯示區(qū)域
*/
tf = new JTextField();
tf.setEditable(false);//文本區(qū)域不可編輯
tf.setBackground(Color.white);//文本區(qū)域的背景色
tf.setHorizontalAlignment(JTextField.RIGHT);//文字右對(duì)齊
tf.setText("0");
tf.setBorder(BorderFactory.createLoweredBevelBorder());
init();//對(duì)計(jì)算器進(jìn)行初始化
}
/**
* 初始化操作
* 添加按鈕
*/
private void init(){
addButton(panel1, "Backspace", new Clear(), Color.red);
addButton(panel1, "CE", new Clear(), Color.red);
addButton(panel1, "C", new Clear(), Color.red);
addButton(panel2, "1/x", new Signs(), Color.magenta);
addButton(panel2, "log", new Signs(), Color.magenta);
addButton(panel2, "7", numActionListener, Color.blue);
addButton(panel2, "8", numActionListener, Color.blue);
addButton(panel2, "9", numActionListener, Color.blue);
addButton(panel2, "÷", new Signs(), Color.red);
addButton(panel2, "n!", new Signs(), Color.magenta);
addButton(panel2, "sqrt", new Signs(), Color.magenta);
addButton(panel2, "4", numActionListener, Color.blue);
addButton(panel2, "5", numActionListener, Color.blue);
addButton(panel2, "6", numActionListener, Color.blue);
addButton(panel2, "×", new Signs(), Color.red);
addButton(panel2, "sin", new Signs(), Color.magenta);
addButton(panel2, "x^2", new Signs(), Color.magenta);
addButton(panel2, "1", numActionListener, Color.blue);
addButton(panel2, "2", numActionListener, Color.blue);
addButton(panel2, "3", numActionListener, Color.blue);
addButton(panel2, "-", new Signs(), Color.red);
addButton(panel2, "cos", new Signs(), Color.magenta);
addButton(panel2, "x^3", new Signs(), Color.magenta);
addButton(panel2, "0", numActionListener, Color.blue);
addButton(panel2, "-/+", new Clear(), Color.blue);
addButton(panel2, ".", new Dot(), Color.blue);
addButton(panel2, "+", new Signs(), Color.red);
addButton(panel2, "tan", new Signs(), Color.magenta);
addButton(panel2, "%", new Signs(), Color.magenta);
addButton(panel2, "π", numActionListener, Color.orange);
addButton(panel2, "e", numActionListener, Color.orange);
addButton(panel2, "′″", new Signs(), Color.orange);
addButton(panel2, "=", new Signs(), Color.red);
JButton btns = new JButton("計(jì)算器");
btns.setBorder(BorderFactory.createLoweredBevelBorder());
btns.setEnabled(false);//按鈕不可操作
btns.setPreferredSize(new Dimension(20, 20));
panel3.add(btns);//加入按鈕
addButton(panel3, "MC", null, Color.red);
addButton(panel3, "MR", null, Color.red);
addButton(panel3, "MS", null, Color.red);
addButton(panel3, "M+", null, Color.red);
panel4.add(panel1, BorderLayout.NORTH);
panel4.add(panel2, BorderLayout.CENTER);
this.add(tf, BorderLayout.NORTH);
this.add(panel3, BorderLayout.WEST);
this.add(panel4);
pack();
this.setResizable(false);//窗口不可改變大小
this.setLocation(300, 200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
/**
* 統(tǒng)一設(shè)置按鈕的的使用方式
* @param panel
* @param name
* @param action
* @param color
*/
private void addButton(JPanel panel, String name, ActionListener action, Color color){
JButton bt = new JButton(name);
panel.add(bt);//在面板上增加按鈕
bt.setForeground(color);//設(shè)置前景(字體)顏色
bt.addActionListener(action);//增加監(jiān)聽事件
}
/**
* 計(jì)算器的基礎(chǔ)操作(+ - × ÷)
* @param x
*/
private void getResult (double x){
if(oper == "+"){result += x;}
else if(oper == "-"){result -= x;}
else if(oper == "×"){result *= x;}
else if(oper == "÷"){result /= x;}
else if(oper == "="){result = x;}
tf.setText(df.format(result));
}
/**
* 運(yùn)算符號(hào)的事件監(jiān)聽
*/
class Signs implements ActionListener{
public void actionPerformed(ActionEvent e) {
/*
* 用ActionEvent對(duì)象的getActionCommand()方法
* 取得與引發(fā)事件對(duì)象相關(guān)的字符串
*/
String str = e.getActionCommand();
/* sqrt求平方根 */
if(str.equals("sqrt")){
double i = Double.parseDouble(tf.getText());
if(i=0){
/*
* String.valueOf() 轉(zhuǎn)換為字符串
* df.format() 按要求保留四位小數(shù)
* Math.sqrt() 求算數(shù)平方根
*/
tf.setText(String.valueOf(df.format(Math.sqrt(i))));
}
else{
tf.setText("負(fù)數(shù)不能開平方根");
}
}
/* log求常用對(duì)數(shù) */
else if(str.equals("log")){
double i = Double.parseDouble(tf.getText());
if(i0){
tf.setText(String.valueOf(df.format(Math.log(i))));
}else{
tf.setText("負(fù)數(shù)不能求對(duì)數(shù)");
}
}
/* %求百分比 */
else if(str.equals("%")){
tf.setText(df.format(Double.parseDouble(tf.getText()) / 100));
}
/* 1/x求倒數(shù) */
else if(str.equals("1/x")){
if(Double.parseDouble(tf.getText()) == 0){
tf.setText("除數(shù)不能為零");
}else{
tf.setText(df.format(1 / Double.parseDouble(tf.getText())));
}
}
/* sin求正弦函數(shù) */
else if(str.equals("sin")){
double i = Double.parseDouble(tf.getText());
tf.setText(String.valueOf(df.format(Math.sin(i))));
}
/* cos求余弦函數(shù) */
else if(str.equals("cos")){
double i = Double.parseDouble(tf.getText());
tf.setText(String.valueOf(df.format(Math.cos(i))));
}
/* tan求正切函數(shù) */
else if(str.equals("tan")){
double i = Double.parseDouble(tf.getText());
tf.setText(String.valueOf(df.format(Math.tan(i))));
}
/* n!求階乘 */
else if(str.equals("n!")){
double i = Double.parseDouble(tf.getText());
if((i%2==0)||(i%2==1))//判斷為整數(shù)放進(jìn)行階乘操作
{
int j = (int)i;//強(qiáng)制類型轉(zhuǎn)換
int result=1;
for(int k=1;k=j;k++)
result *= k;
tf.setText(String.valueOf(result));
}
else
{
tf.setText("無法進(jìn)行階乘");
}
}
/* x^2求平方 */
else if(str.equals("x^2")){
double i = Double.parseDouble(tf.getText());
tf.setText(String.valueOf(df.format(i*i)));
}
/* x^3求立方 */
else if(str.equals("x^3")){
double i = Double.parseDouble(tf.getText());
tf.setText(String.valueOf(df.format(i*i*i)));
}
/* ′″角度轉(zhuǎn)換 */
/**
* 將角度值轉(zhuǎn)換成弧度值,方便三角函數(shù)的計(jì)算
*/
else if(str.equals("′″")){
double i = Double.parseDouble(tf.getText());
tf.setText(String.valueOf(i/180*Math.PI));
}
else{
if(flag){
IfResult = false;
}
if(IfResult){
oper = str;
}else{
getResult(Double.parseDouble(tf.getText()));
oper = str;
IfResult = true;
}
}
}
}
/**
* 清除按鈕的事件監(jiān)聽
*/
class Clear implements ActionListener{
public void actionPerformed(ActionEvent e) {
/*
* 用ActionEvent對(duì)象的getActionCommand()方法
* 取得與引發(fā)事件對(duì)象相關(guān)的字符串
*/
String str = e.getActionCommand();
if(str == "C"){
tf.setText("0");
IfResult = true;
result = 0;
}else if(str == "-/+"){
double i = 0 - Double.parseDouble(tf.getText().trim());
tf.setText(df.format(i));
}else if(str == "Backspace"){
if(Double.parseDouble(tf.getText()) 0){
if(tf.getText().length() 1){
tf.setText(tf.getText().substring(0, tf.getText().length() - 1));
//使用退格刪除最后一位字符
}else{
tf.setText("0");
IfResult = true;
}
}else{
if(tf.getText().length() 2){
tf.setText(tf.getText().substring(0, tf.getText().length() - 1));
}else{
tf.setText("0");
IfResult = true;
}
}
}else if(str == "CE"){
tf.setText("0");
IfResult = true;
}
}
}
/**
* 數(shù)字輸入的事件監(jiān)聽
*/
class Num implements ActionListener{
public void actionPerformed(ActionEvent e) {
String str = e.getActionCommand();
if(IfResult){
tf.setText("");
IfResult = false;
}
if(str=="π")
{
tf.setText(String.valueOf(Math.PI));
}
else if(str=="e")
{
tf.setText(String.valueOf(Math.E));
}
else{
tf.setText(tf.getText().trim() + str);
if(tf.getText().equals("0")){
tf.setText("0");
IfResult = true;
flag = true;
}
}
}
}
/**
* 小數(shù)點(diǎn)的事件監(jiān)聽
*/
class Dot implements ActionListener{
public void actionPerformed(ActionEvent e) {
IfResult = false;
if(tf.getText().trim().indexOf(".") == -1){
tf.setText(tf.getText() + ".");
}
}
}
/**
* main方法
*/
public static void main(String[] args) {
new Calcutor().setVisible(true);
}
}
java 計(jì)算器代碼帶括號(hào) 求注釋
//引入各種類文件
import?java.awt.Button;
import?java.awt.Color;
import?java.awt.FlowLayout;
import?java.awt.Font;
import?java.awt.Frame;
import?java.awt.GridLayout;
import?java.awt.Panel;
import?java.awt.TextField;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
//定義JsqFrame繼承Frame
class?JsqFrame?extends?Frame?{
double?d1,?d2;??//定義兩個(gè)double類型的變量
int?op?=?-1;??//定義兩個(gè)int類型的變量
static?TextField?tf;//定義靜態(tài)對(duì)象TextField
CalPanelL?p1;??//定義CalPanelL對(duì)象
//?Constructor構(gòu)造方法
JsqFrame()?{
//以下設(shè)置屬性
super("計(jì)算器");
setLayout(new?FlowLayout());
setResizable(false);
setSize(250,?250);
tf?=?new?TextField(18);
tf.setEditable(false);
tf.setBackground(Color.lightGray);
tf.setForeground(Color.red);
tf.setFont(new?Font("Arial",?Font.BOLD,?16));
add(tf);
p1?=?new?CalPanelL();
add(p1);
setVisible(true);
//?addWindowListener(new?Wclose());
}
//添加按鈕繼承Button類
class?CalButton?extends?Button?{
CalButton(String?s)?{
//設(shè)置按鈕屬性
super(s);
setBackground(Color.WHITE);?//設(shè)置顏色為白色
}
}
//定義顯示器繼承Panel類
class?CalPanelL?extends?Panel?{
CalButton?a,?c,?b0,?b1,?b2,?b3,?b4,?b5,?b6,?b7,?b8,?b9,?bPN,?bPoint,
bAdd,?bSub,?bMul,?bDiv,?bL,?bR,?bLn,?bEqual,?bCE,?bQuit;
CalPanelL()?{
//設(shè)置顯示器的屬性
setLayout(new?GridLayout(6,?4));
setFont(new?Font("TimesRoman",?Font.BOLD,?16));
a?=?new?CalButton("");
c?=?new?CalButton("");
b0?=?new?CalButton("0");
b1?=?new?CalButton("1");
b2?=?new?CalButton("2");
b3?=?new?CalButton("3");
b4?=?new?CalButton("4");
b5?=?new?CalButton("5");
b6?=?new?CalButton("6");
b7?=?new?CalButton("7");
b8?=?new?CalButton("8");
b9?=?new?CalButton("9");
bPN?=?new?CalButton("+/-");
bPoint?=?new?CalButton(".");
//?設(shè)置按鈕
bAdd?=?new?CalButton("+");
bSub?=?new?CalButton("-");
bMul?=?new?CalButton("*");
bDiv?=?new?CalButton("/");
bL?=?new?CalButton("(");
bR?=?new?CalButton(")");
bLn?=?new?CalButton("ln");
bEqual?=?new?CalButton("=");
bCE?=?new?CalButton("CE");
bQuit?=?new?CalButton("退出");
//?加入按鈕
add(a);
add(c);
add(bCE);
bCE.addActionListener(new?PressBCE());
add(bQuit);
bQuit.addActionListener(new?PressBQuit());
add(b7);
b7.addActionListener(new?PressB7());
add(b8);
b8.addActionListener(new?PressB8());
add(b9);
b9.addActionListener(new?PressB9());
add(bDiv);
bDiv.addActionListener(new?PressBDiv());
add(b4);
b4.addActionListener(new?PressB4());
add(b5);
b5.addActionListener(new?PressB5());
add(b6);
b6.addActionListener(new?PressB6());
add(bMul);
bMul.addActionListener(new?PressBMul());
add(b1);
b1.addActionListener(new?PressB1());
add(b2);
b2.addActionListener(new?PressB2());
add(b3);
b3.addActionListener(new?PressB3());
add(bSub);
bSub.addActionListener(new?PressBSub());
add(b0);
b0.addActionListener(new?PressB0());
add(bPoint);
bPoint.addActionListener(new?PressBPoint());
add(bPN);
bPN.addActionListener(new?PressBPN());
;
add(bAdd);
bAdd.addActionListener(new?PressBAdd());
add(bL);
bL.addActionListener(new?PressBL());
add(bR);
bR.addActionListener(new?PressBR());
add(bLn);
bLn.addActionListener(new?PressBLn());
add(bEqual);
bEqual.addActionListener(new?PressBEqual());
}
}
//定義PressBAdd實(shí)現(xiàn)ActionListener
//大體的意思是按計(jì)算機(jī)按鍵的時(shí)出發(fā)的時(shí)間,設(shè)置按鍵的監(jiān)聽[加號(hào)的監(jiān)聽事件]
class?PressBAdd?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
try?{
String?d1?=?tf.getText();
op?=?0;
tf.setText(d1?+?"+");
}?catch?(Exception?ee)?{
}
}
}
//定義PressBSub實(shí)現(xiàn)ActionListener
//大體的意思是按計(jì)算機(jī)按鍵的時(shí)出發(fā)的時(shí)間,設(shè)置按鍵的監(jiān)聽[減號(hào)的監(jiān)聽事件]
class?PressBSub?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
try?{
String?d1?=?tf.getText();
op?=?1;
tf.setText(d1?+?"-");
}?catch?(Exception?ee)?{
}
}
}
//定義PressBMul實(shí)現(xiàn)ActionListener
//大體的意思是按計(jì)算機(jī)按鍵的時(shí)出發(fā)的時(shí)間,設(shè)置按鍵的監(jiān)聽[乘號(hào)的監(jiān)聽事件]
class?PressBMul?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
try?{
String?d1?=?tf.getText();
op?=?2;
tf.setText(d1?+?"*");
}?catch?(Exception?ee)?{
}
}
}
//定義PressBDiv實(shí)現(xiàn)ActionListener
//大體的意思是按計(jì)算機(jī)按鍵的時(shí)出發(fā)的時(shí)間,設(shè)置按鍵的監(jiān)聽[除號(hào)的監(jiān)聽事件]
class?PressBDiv?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
try?{
String?d1?=?tf.getText();
op?=?3;
tf.setText(d1?+?"/");
}?catch?(Exception?ee)?{
}
}
}
//定義PressBL實(shí)現(xiàn)ActionListener
//大體的意思是按計(jì)算機(jī)按鍵的時(shí)出發(fā)的時(shí)間,設(shè)置按鍵的監(jiān)聽[向左鍵的監(jiān)聽事件]
class?PressBL?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
try?{
String?d1?=?tf.getText();
op?=?3;
tf.setText(d1?+?"(");
}?catch?(Exception?ee)?{
}
}
}
//定義PressBR實(shí)現(xiàn)ActionListener
//大體的意思是按計(jì)算機(jī)按鍵的時(shí)出發(fā)的時(shí)間,設(shè)置按鍵的監(jiān)聽[向右鍵的監(jiān)聽事件]
class?PressBR?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
try?{
String?d1?=?tf.getText();
op?=?3;
tf.setText(d1?+?")");
}?catch?(Exception?ee)?{
}
}
}
//定義PressBEqual實(shí)現(xiàn)ActionListener
//大體的意思是按計(jì)算機(jī)按鍵的時(shí)出發(fā)的時(shí)間,設(shè)置按鍵的監(jiān)聽[等號(hào)的監(jiān)聽事件]
class?PressBEqual?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
try?{
Jsq?jsq?=?new?Jsq();
String?s?=?tf.getText();
System.out.println(s);
while?(s.indexOf("(")?+?1??0??s.indexOf(")")??0)?{
String?s1?=?jsq.caculateHigh(s);
System.out.println(s1);
s?=?s1;
}
String?str?=?jsq.cacluteMain(s);
System.out.println(str);
tf.setText(String.valueOf(str));
}?catch?(Exception?ee)?{
}
}
}
/*
*?批量寫吧
*?以下是按1、2、3等等的監(jiān)聽事件
*?還有清零的等等監(jiān)聽事件
*/
class?PressBLn?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
try?{
double?x?=?Double.parseDouble(tf.getText());
double?y;
y?=?Math.log10(x);
tf.setText(y?+?"");
}?catch?(Exception?ee)?{
}
}
}
class?PressBCE?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
tf.setText("");
}
}
class?PressBPN?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
try?{
String?text?=?tf.getText();
if?(text?!=?"")?{
if?(text.charAt(0)?==?'-')
tf.setText(text.substring(1));
else?if?(text.charAt(0)?=?'0'??text.charAt(0)?=?'9')
tf.setText("-"?+?text.substring(0));
else?if?(text.charAt(0)?==?'.')
tf.setText("-0"?+?text.substring(0));
}
}?catch?(Exception?ee)?{
}
}
}
class?PressBPoint?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
String?text?=?tf.getText();
if?(text.lastIndexOf(".")?==?-1)
tf.setText(text?+?".");
}
}
class?PressB0?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
String?text?=?tf.getText();
tf.setText(text?+?"0");
}
}
class?PressB1?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
String?text?=?tf.getText();
tf.setText(text?+?"1");
}
}
class?PressB2?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
String?text?=?tf.getText();
tf.setText(text?+?"2");
}
}
class?PressB3?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
String?text?=?tf.getText();
tf.setText(text?+?"3");
}
}
class?PressB4?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
String?text?=?tf.getText();
tf.setText(text?+?"4");
}
}
class?PressB5?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
String?text?=?tf.getText();
tf.setText(text?+?"5");
}
}
class?PressB6?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
String?text?=?tf.getText();
tf.setText(text?+?"6");
}
}
class?PressB7?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
String?text?=?tf.getText();
tf.setText(text?+?"7");
}
}
class?PressB8?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
String?text?=?tf.getText();
tf.setText(text?+?"8");
}
}
class?PressB9?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
String?text?=?tf.getText();
tf.setText(text?+?"9");
}
}
class?PressBQuit?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
System.exit(0);
}
}
public?void?Js()?{
String?text?=?tf.getText();
tf.setText(text);
}
}
跪求簡(jiǎn)單計(jì)算器的java代碼,要入門級(jí)的編程~~
//////////////////////////這個(gè)很簡(jiǎn)單,方法也差不多////////////////////
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class Calculator extends JFrame implements ActionListener
{
///////////////菜單
JMenuBar mb;
JMenu mEdit,mFind,mHelp;
JMenuItem mEditCopy,mEditPaste;
JMenuItem mFindStandarded,mFindScience,mFindGroup;
JMenuItem mHelpTopic,mHelpAbout;
JPanel pan;
/////////////按鈕
JTextField tf;
JButton butnull;
JButton butBackspace,butCE,butC;
JButton butMC,butMR,butMS,butM;
JButton but1,but2,but3,but4,but5,but6,but7,but8,but9,but0;
JButton butChu,butSqrt,butCheng,butYu,butJian,but1x,butDot,butJia,butEqual,butJJ;
Calculator()
{
mb =new JMenuBar();
mEdit =new JMenu("編輯(E)");
mEdit.setMnemonic('E');
mFind =new JMenu("查看(F)");
mFind.setMnemonic('F');
mHelp =new JMenu("幫助(H)");
mFind.setMnemonic('H');
mEditCopy =new JMenuItem("復(fù)制(C)");
mEditCopy.setMnemonic('C');
mEditPaste =new JMenuItem("粘貼(P)");
mEditCopy.setMnemonic('P');
mFindStandarded=new JMenuItem("標(biāo)準(zhǔn)型(T)");
mFindStandarded.setMnemonic('T');
mFindScience=new JMenuItem("科學(xué)型(S)");
mFindScience.setMnemonic('S');
mFindGroup =new JMenuItem("數(shù)字分組(I)");
mFindGroup.setMnemonic('I');
mHelpTopic =new JMenuItem("幫助主題(H)");
mHelpTopic.setMnemonic('H');
mHelpAbout =new JMenuItem("關(guān)于我們(A)");
mHelpAbout.setMnemonic('A');
////////////////////////////添加mb組件beginning
mb.add(mEdit);
mb.add(mFind);
mb.add(mHelp);
mEdit.add(mEditCopy);
mEdit.add(mEditPaste);
mFind.add(mFindStandarded);
mFind.add(mFindScience);
mFind.add(mFindGroup);
mHelp.add(mHelpTopic);
mHelp.add(mHelpAbout);//////////////ending
////////////////////////***創(chuàng)建計(jì)算機(jī)按鈕***////////////////////
Color red =new Color(250,0,0);
Color green =new Color(0,127,0);
butnull =new JButton("?");
butnull.setForeground(red);
butnull.addActionListener(this);
butBackspace =new JButton("Backspace");
butBackspace.setForeground(green);
butCE =new JButton("CE");
butCE.setForeground(green);
butC =new JButton("C");
butC.addActionListener(this);
butC.setForeground(red);
butMC =new JButton("MC");
butMC.setForeground(green);
butMR =new JButton("MR");
butMR.setForeground(green);
butMS =new JButton("MS");
butMS.setForeground(green);
butM =new JButton("M+");
butM.setForeground(green);
butChu =new JButton("/");
butChu.addActionListener(this);
butChu.setForeground(red);
butCheng =new JButton("*");
butCheng.addActionListener(this);
butCheng.setForeground(red);
butJian =new JButton("-");
butJian.addActionListener(this);
butJian.setForeground(red);
butJia =new JButton("+");
butJia.addActionListener(this);
butJia.setForeground(red);
butEqual =new JButton("=");
butEqual.addActionListener(this);
butEqual.setForeground(red);
Color blue =new Color(0,0,250);
butSqrt =new JButton("sqrt");
butSqrt.setForeground(green);
butYu =new JButton("%");
butYu.setForeground(green);
but1x =new JButton("1/x");
but1x.setForeground(green);
butDot =new JButton(".");
butDot.setForeground(blue);
butDot.addActionListener(this);
butJJ =new JButton("+/-");
butJJ.setForeground(blue);
butJJ.addActionListener(this);
but1 =new JButton("1");
but1.addActionListener(this);
but1.setForeground(blue);
but2 =new JButton("2");
but2.addActionListener(this);
but2.setForeground(blue);
but3 =new JButton("3");
but3.addActionListener(this);
but3.setForeground(blue);
but4 =new JButton("4");
but4.addActionListener(this);
but4.setForeground(blue);
but5 =new JButton("5");
but5.addActionListener(this);
but5.setForeground(blue);
but6 =new JButton("6");
but6.addActionListener(this);
but6.setForeground(blue);
but7 =new JButton("7");
but7.addActionListener(this);
but7.setForeground(blue);
but8 =new JButton("8");
but8.addActionListener(this);
but8.setForeground(blue);
but9 =new JButton("9");
but9.addActionListener(this);
but9.setForeground(blue);
but0 =new JButton("0");
but0.addActionListener(this);
but0.setForeground(blue);///////////////////////////////ending
pan =new JPanel(null);//創(chuàng)建最大的panel
tf =new JTextField("0");//輸入顯示框
tf.setBounds(5,0,337,25);//顯示框設(shè)置大小位置
tf.setBackground(Color.white);
tf.setHorizontalAlignment(JTextField.RIGHT);//輸入框設(shè)置位子居右顯示
tf.setEditable(false);
JPanel pa=new JPanel(new BorderLayout());//所有按鈕的panel
pa.setBounds(5,35,340,240);
JPanel pp=new JPanel(new BorderLayout());//null,MC,MR,MS,M+的panel;pa的西
JPanel aa=new JPanel(new BorderLayout());//其余所有Button的panel;pa的中
JPanel p =new JPanel(new GridLayout(4,1));//MC,MR,MS,M+的Panel,pp的中 北是一個(gè)butnull
JPanel a =new JPanel(new GridLayout(1,3));//backspace,ce,c的panel,aa的北
JPanel a2=new JPanel(new GridLayout(4,5));//其余的button的panel,aa的中
pa.add(pp,BorderLayout.WEST);
pa.add(aa,BorderLayout.CENTER);
pp.add(butnull,BorderLayout.NORTH);
pp.add(p,BorderLayout.CENTER);
p.add(butMC);
p.add(butMR);
p.add(butMS);
p.add(butM);
aa.add(a,BorderLayout.NORTH);
aa.add(a2,BorderLayout.CENTER);
a.add(butBackspace);
a.add(butCE);
a.add(butC);
a2.add(but7);
a2.add(but8);
a2.add(but9);
a2.add(butChu);
a2.add(butSqrt);
a2.add(but4);
a2.add(but5);
a2.add(but6);
a2.add(butCheng);
a2.add(butYu);
a2.add(but1);
a2.add(but2);
a2.add(but3);
a2.add(butJian);
a2.add(but1x);
a2.add(but0);
a2.add(butJJ);
a2.add(butDot);
a2.add(butJia);
a2.add(butEqual);
this.add(pan);
pan.add(tf);
pan.add(pa);
this.setTitle("我的計(jì)算器");
this.setJMenuBar(mb);
this.setBounds(200,300,353,330);//設(shè)置窗口大小
this.setResizable(false);
this.setVisible(true);
}
public static void main(String args[])
{
try
{
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
}
catch (Exception ex)
{
ex.printStackTrace();
}
new Calculator();
}
////////////////////********以下是監(jiān)聽設(shè)置和運(yùn)算*******///////////////////
boolean b=true;//初始值設(shè)置為真未點(diǎn)運(yùn)算符號(hào)
String fuhao="";//保存最后一次運(yùn)算符號(hào),用于進(jìn)行上次結(jié)果的運(yùn)算
String lastCommand="";//保存按等號(hào)前的最后的運(yùn)算符號(hào)
double lastValue=0.0;//保存按等號(hào)錢的最后的輸入框里的值
double value=0.0;//原值,當(dāng)你點(diǎn)完運(yùn)算符的時(shí)候計(jì)算之前的值
double fuzhi=0.0;
public void actionPerformed(ActionEvent click)/////////////////////行為監(jiān)聽設(shè)置
{
if(click.getSource()==butJJ)
{
fuzhi=Double.parseDouble(tf.getText());
if(tf.getText().equals("0")||tf.getText().equals("0."))
{
boolean b=true;
String fuhao="";
double value=0.0;
tf.setText("0");
}
else if(fuzhi0)
{
tf.setText((-fuzhi)+"");
}
else
{
tf.setText("-"+tf.getText());
}
}
if(click.getSource()==butnull)
{
tf.setText("本計(jì)算器版權(quán)所有歸青軟培訓(xùn)--胡迅--2008年10月18日著 ");
}
if(click.getSource()==butC)
{
tf.setText("0");
lastCommand="";
lastValue=0.0;
b=true;
fuhao="";
value=0.0;
}
if(click.getSource()==but1)
{
if(b==false)
{
tf.setText("1");
b=true;
}
else if(tf.getText().equals("0"))
{
tf.setText("1");
}
else
{
tf.setText(tf.getText()+1);
}
}
if(click.getSource()==but2)
{
if(b==false)
{
tf.setText("2");
b=true;
}
else if(tf.getText().equals("0"))
{
tf.setText("2");
}
else
{
tf.setText(tf.getText()+2);
}
}
if(click.getSource()==but3)
{
if(b==false)
{
tf.setText("3");
b=true;
}
else if(tf.getText().equals("0"))
{
tf.setText("3");
}
else
{
tf.setText(tf.getText()+3);
}
}
if(click.getSource()==but4)
{
if(b==false)
{
tf.setText("4");
b=true;
}
else if(tf.getText().equals("0"))
{
tf.setText("4");
}
else
{
tf.setText(tf.getText()+4);
}
}
if(click.getSource()==but5)
{
if(b==false)
{
tf.setText("5");
b=true;
}
else if(tf.getText().equals("0"))
{
tf.setText("5");
}
else
{
tf.setText(tf.getText()+5);
}
}
if(click.getSource()==but6)
{
if(b==false)
{
tf.setText("6");
b=true;
}
else if(tf.getText().equals("0"))
{
tf.setText("6");
}
else
{
tf.setText(tf.getText()+6);
}
}
if(click.getSource()==but7)
{
if(b==false)
{
tf.setText("7");
b=true;
}
else if(tf.getText().equals("0"))
{
tf.setText("7");
}
else
{
tf.setText(tf.getText()+7);
}
}
if(click.getSource()==but8)
{
if(b==false)
{
tf.setText("8");
b=true;
}
else if(tf.getText().equals("0"))
{
tf.setText("8");
}
else
{
tf.setText(tf.getText()+8);
}
}
if(click.getSource()==but9)
{
if(b==false)
{
tf.setText("9");
b=true;
}
else if(tf.getText().equals("0"))
{
tf.setText("9");
}
else
{
tf.setText(tf.getText()+9);
}
}
if(click.getSource()==but0)
{
if(b==false)
{
tf.setText("0");
b=true;
}
else if(tf.getText().equals("0"))
{
tf.setText("0");
}
else
{
tf.setText(tf.getText()+0);
}
}
if(click.getSource()==butDot)
{
/////////code/////////////////////////////////////////////////////////////////////////////////////////////////////////???
int izhi=Integer.parseInt(tf.getText());
double dzhi=Double.parseDouble(tf.getText());
if(tf.getText().equals("0"))
{
tf.setText("0.");
}
else
{
if(tf.getText().equals("0."))
{
tf.setText("0.");
}
else
{
if(dzhi0)
{
izhi=izhi;
dzhi=dzhi;
if(dzhi==izhi)
{
tf.setText(tf.getText()+".");
}
}
else
{
izhi=-izhi;
dzhi=-dzhi;
if(dzhi==izhi)
{
tf.setText(tf.getText()+".");
}
}
}
}
}
if(click.getSource()==butJia)///////////////////////////////////////////////"+"
{
if(tf.getText().equals("0"))
{
}
else if(fuhao=="")
{
double tfvaluejia;
tfvaluejia=Double.parseDouble(tf.getText());
value=tfvaluejia;
tf.setText(""+value);
b=false;
fuhao="+";
}
else if(fuhao=="*")
{
double tfvalueCheng;
tfvalueCheng=Double.parseDouble(tf.getText());
value=value*tfvalueCheng;
tf.setText(""+value);
b=false;
}
else if(fuhao=="/")
{
double tfvalueChu;
tfvalueChu=Double.parseDouble(tf.getText());
value=value/tfvalueChu;
tf.setText(""+value);
b=false;
}
else if(fuhao=="-")
{
double tfvaluejian;
tfvaluejian=Double.parseDouble(tf.getText());
value=value-tfvaluejian;
tf.setText(""+value);
b=false;
}
else if(fuhao=="=")
{
double tfvaluejia;
tfvaluejia=Double.parseDouble(tf.getText());
value=tfvaluejia;
b=false;
}
else
{
double tfvaluejia;
tfvaluejia=Double.parseDouble(tf.getText());//2
value=value+tfvaluejia;
tf.setText(""+value);
b=false;
}
lastValue=Double.parseDouble(tf.getText());
fuhao="+";
lastCommand="+";
}
if(click.getSource()==butCheng)////////////////////////////////////////////////////////////"*"
{
if(tf.getText().equals("0"))
{
}
else if(fuhao=="")
{
double tfvalueCheng;
tfvalueCheng=Double.parseDouble(tf.getText());
value=tfvalueCheng;
tf.setText(""+value);
b=false;
fuhao="*";
}
else if(fuhao=="+")
{
double tfvaluejia;
tfvaluejia=Double.parseDouble(tf.getText());
value=value+tfvaluejia;
tf.setText(""+value);
b=false;
}
else if(fuhao=="/")
{
double tfvalueChu;
tfvalueChu=Double.parseDouble(tf.getText());
value=value/tfvalueChu;
tf.setText(""+value);
b=false;
}
else if(fuhao=="-")
{
double tfvaluejian;
tfvaluejian=Double.parseDouble(tf.getText());
value=value-tfvaluejian;
tf.setText(""+value);
b=false;
}
else if(fuhao=="=")
{
double tfvalueCheng;
tfvalueCheng=Double.parseDouble(tf.getText());
value=tfvalueCheng;
b=false;
}
else
{
double tfvalueCheng;
tfvalueCheng=Double.parseDouble(tf.getText());
value=value*tfvalueCheng;
tf.setText(""+value);
b=false;
}
lastValue=Double.parseDouble(tf.getText());
fuhao="*";
lastCommand="*";
}
if(click.getSource()==butChu)//////////////////////////////////////////////"/"
{
if(tf.getText().equals("0"))
{
}
else if(fuhao=="")
{
double tfvalueChu;
tfvalueChu=Double.parseDouble(tf.getText());
value=tfvalueChu;
tf.setText(""+value);
b=false;
fuhao="/";
}
else if(fuhao=="+")
{
double tfvaluejia;
tfvaluejia=Double.parseDouble(tf.getText());
value=value+tfvaluejia;
tf.setText(""+value);
b=false;
}
else if(fuhao=="*")
{
double tfvalueCheng;
tfvalueCheng=Double.parseDouble(tf.getText());
value=value*tfvalueCheng;
tf.setText(""+value);
b=false;
}
else if(fuhao=="-")
{
double tfvaluejian;
tfvaluejian=Double.parseDouble(tf.getText());
value=value-tfvaluejian;
tf.setText(""+value);
b=false;
}
else if(fuhao=="=")
{
double tfvalueCheng;
tfvalueCheng=Double.parseDouble(tf.getText());
value=tfvalueCheng;
b=false;
}
else
{
double tfvalueChu;
tfvalueChu=Double.parseDouble(tf.getText());
value=value/tfvalueChu;
tf.setText(""+value);
b=false;
}
lastValue=Double.parseDouble(tf.getText());
fuhao="/";
lastCommand="/";
}
if(click.getSource()==butJian)////////////////////////////////////////////////////////////////////////"-"
{
if(tf.getText().equals("0"))
{
}
else if(fuhao=="")
{
double tfvaluejian;
tfvaluejian=Double.parseDouble(tf.getText());
value=tfvaluejian;
tf.setText(""+value);
b=false;
fuhao="/";
}
else if(fuhao=="+")
{
double tfvaluejia;
tfvaluejia=Double.parseDouble(tf.getText());
value=value+tfvaluejia;
tf.setText(""+value);
b=false;
}
else if(fuhao=="*")
{
double tfvalueCheng;
tfvalueCheng=Double.parseDouble(tf.getText());
value=value*tfvalueCheng;
tf.setText(""+value);
b=false;
}
else if(fuhao=="/")
{
double tfvalueChu;
tfvalueChu=Double.parseDouble(tf.getText());
value=value/tfvalueChu;
tf.setText(""+value);
b=false;
}
else if(fuhao=="=")
{
double tfvalueCheng;
tfvalueCheng=Double.parseDouble(tf.getText());
value=tfvalueCheng;
b=false;
}
else
{
double tfvaluejian;
tfvaluejian=Double.parseDouble(tf.getText());
value=value-tfvaluejian;
tf.setText(""+value);
b=false;
}
lastValue=Double.parseDouble(tf.getText());
fuhao="-";
lastCommand="-";
}
if(click.getSource()==butEqual)//////////////////////////////////////////"="
{
if(tf.getText().equals("0"))
{
}
if(fuhao=="+")
{
double tfvaluejia;
tfvaluejia=Double.parseDouble(tf.getText());
value=value+tfvaluejia;
tf.setText(""+value);
b=false;
}
else if(fuhao=="*")
{
double tfvalueCheng;
tfvalueCheng=Double.parseDouble(tf.getText());
value=value*tfvalueCheng;
tf.setText(""+value);
b=false;
}
else if(fuhao=="/")
{
double tfvalueChu;
tfvalueChu=Double.parseDouble(tf.getText());
value=value/tfvalueChu;
tf.setText(""+value);
b=false;
}
else if(fuhao=="-")
{
double tfvaluejian;
tfvaluejian=Double.parseDouble(tf.getText());
value=value-tfvaluejian;
tf.setText(""+value);
b=false;
}
else if(fuhao=="=")
{
if(lastCommand=="+")
{
value = value +lastValue;
tf.setText(""+value);
b=false;
}
else if(lastCommand=="-")
{
value = value - lastValue;
tf.setText(""+value);
b=false;
}
if(lastCommand=="*")
{
value = value *lastValue;
tf.setText(""+value);
b=false;
}
if(lastCommand=="/")
{
value = value /lastValue;
tf.setText(""+value);
b=false;
}
}
fuhao="=";
}
}
}
求JAVA簡(jiǎn)易計(jì)算機(jī)源代碼
試試這個(gè)
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.applet.*;
public class SZJSQ extends JApplet implements ActionListener
{
boolean i=true;
private JButton num0=new JButton("0");
private JButton num1=new JButton("1");
private JButton num2=new JButton("2");
private JButton num3=new JButton("3");
private JButton num4=new JButton("4");
private JButton num5=new JButton("5");
private JButton num6=new JButton("6");
private JButton num7=new JButton("7");
private JButton num8=new JButton("8");
private JButton num9=new JButton("9");
private JButton zuok=new JButton("(");
private JButton youk=new JButton(")");
private JButton dian=new JButton(".");
private JButton NULL=new JButton("N");
private JButton plu=new JButton("+");
private JButton min=new JButton("-");
private JButton mul=new JButton("x");
private JButton div=new JButton("/");
private JButton equ=new JButton("=");
private JButton cle=new JButton("C");//清除
private JTextField space=new JTextField(30);
public void init()
{
JPanel text=new JPanel();
text.setLayout(new FlowLayout());
text.add(space);
JPanel buttons=new JPanel();
buttons.setLayout(new GridLayout(5,4));
buttons.add(num9);
buttons.add(num8);
buttons.add(num7);
buttons.add(plu);
buttons.add(num6);
buttons.add(num5);
buttons.add(num4);
buttons.add(min);
buttons.add(num3);
buttons.add(num2);
buttons.add(num1);
buttons.add(mul);
buttons.add(num0);
buttons.add(cle);
buttons.add(equ);
buttons.add(div);
buttons.add(zuok);
buttons.add(youk);
buttons.add(dian);
buttons.add(NULL);
(num9).addActionListener(this);
(num8).addActionListener(this);
(num7).addActionListener(this);
(num6).addActionListener(this);
(num5).addActionListener(this);
(num4).addActionListener(this);
(num3).addActionListener(this);
(num2).addActionListener(this);
(num1).addActionListener(this);
(num0).addActionListener(this);
(plu).addActionListener(this);
(min).addActionListener(this);
(mul).addActionListener(this);
(div).addActionListener(this);
(equ).addActionListener(this);
(cle).addActionListener(this);
(zuok).addActionListener(this);
(youk).addActionListener(this);
(dian).addActionListener(this);
setLayout(new BorderLayout());
add("North",text);
add("South",buttons);
space.setText("0");
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==num9)
{
if(i==true)
{
space.setText("9");
i=false;
}
else space.setText(space.getText()+'9');
}
if(e.getSource()==num8)
{
if(i==true)
{
space.setText("8");
i=false;
}
else space.setText(space.getText()+'8');
}
if(e.getSource()==num7)
{
if(i==true)
{
space.setText("7");
i=false;
}
else space.setText(space.getText()+'7');
}
if(e.getSource()==num6)
{
if(i==true)
{
space.setText("6");
i=false;
}
else space.setText(space.getText()+'6');
}
if(e.getSource()==num5)
{
if(i==true)
{
space.setText("5");
i=false;
}
else space.setText(space.getText()+'5');
}
if(e.getSource()==num4)
{
if(i==true)
{
space.setText("4");
i=false;
}
else space.setText(space.getText()+'4');
}
if(e.getSource()==num3)
{
if(i==true)
{
space.setText("3");
i=false;
}
else space.setText(space.getText()+'3');
}
if(e.getSource()==num2)
{
if(i==true)
{
space.setText("2");
i=false;
}
else space.setText(space.getText()+'2');
}
if(e.getSource()==num1)
{
if(i==true)
{
space.setText("1");
i=false;
}
else space.setText(space.getText()+'1');
}
if(e.getSource()==num0)
{
if(i==true)
{
space.setText("0");
i=false;
}
else space.setText(space.getText()+'0');
}
if(e.getSource()==zuok)
{
if(i==true)
{
space.setText("(");
i=false;
}
else space.setText(space.getText()+'(');
} if(e.getSource()==youk)
{
if(i==false)
space.setText(space.getText()+')');
}
if(e.getSource()==dian)
{
if(i==false)
space.setText(space.getText()+'.');
}
if(e.getSource()==plu)
{
space.setText(space.getText()+'+');
i=false;
}
if(e.getSource()==min)
{
space.setText(space.getText()+'-');
i=false;
}
if(e.getSource()==mul)
{
space.setText(space.getText()+'*');
i=false;
}
if(e.getSource()==div)
{
space.setText(space.getText()+'/');
i=false;
}
if(e.getSource()==equ)
{
space.setText(String.valueOf(Calculator(space.getText())));
i=true;
}
if(e.getSource()==cle)
{
space.setText("0");
i=true;
}
}
public double Calculator(String f)//科學(xué)計(jì)算
{
int i=0,j=0,k;
char c;
StringBuffer s=new StringBuffer();
s.append(f);
s.append('=');
String formula=s.toString();
char[] anArray;
anArray=new char[50];
StackCharacter mystack=new StackCharacter();
while(formula.charAt(i)!='=')
{
c=formula.charAt(i);
switch(c)
{
case '(': mystack.push(new Character(c));
i++;
break;
case ')':
while(mystack.peek().charValue()!='(')
{
anArray[j++]=mystack.pop().charValue();
}
mystack.pop();
i++;
break;
case '+':
case '-':
while(!mystack.empty()mystack.peek().charValue()!='(')
{
anArray[j++]=mystack.pop().charValue();
}
mystack.push(new Character(c));
i++;
break;
case '*':
case '/':
while(!mystack.empty()(mystack.peek().charValue()=='*'||mystack.peek().charValue()=='/'))
{
anArray[j++]=mystack.pop().charValue();
}
mystack.push(new Character(c));
i++;
break;
case' ': i++;
break;
default: while((c='0'c='9')||c=='.')
{
anArray[j++]=c;
i++;
c=formula.charAt(i);
}
anArray[j++]='#';
break;
}
}
while(!(mystack.empty()))
anArray[j++]=mystack.pop().charValue();
i=0;
int count;
double a,b,d;
StackDouble mystack1 =new StackDouble();
while(ij)
{
c=anArray[i];
switch(c)
{
case '+':
a=mystack1.pop().doubleValue();
b=mystack1.pop().doubleValue();
d=b+a;
mystack1.push(new Double(d));
i++;
break;
case '-':
a=mystack1.pop().doubleValue();
b=mystack1.pop().doubleValue();
d=b-a;
mystack1.push(new Double(d));
i++;
break;
case '*':
a=mystack1.pop().doubleValue();
b=mystack1.pop().doubleValue();
d=b*a;
mystack1.push(new Double(d));
i++;
break;
case '/':
a=mystack1.pop().doubleValue();
b=mystack1.pop().doubleValue();
if(a!=0)
{
d=b/a;
mystack1.push(new Double(d));
i++;
}
else
{
System.out.println("Error!");
}
break;
default:
d=0;count=0;
while((c='0'c='9'))
{
d=10*d+c-'0';
i++;
c=anArray[i];
}
if(c=='.')
{
i++;
c=anArray[i];
while((c='0'c='9'))
{
count++;
d=d+(c-'0')/Math.pow(10,count);
i++;
c=anArray[i];
}
}
if(c=='#')
mystack1.push(new Double(d));
i++;
break;
}
}
return(mystack1.peek().doubleValue());
}
}
網(wǎng)頁題目:java計(jì)算機(jī)全部代碼,Java計(jì)算機(jī)代碼
文章起源:http://www.dlmjj.cn/article/hdeihe.html