當前位置:首頁 » 軟體設計 » java設計計算器

java設計計算器

發布時間: 2020-11-29 11:34:47

1. java設計一個簡單的計算器,要求根據輸入的操作數和運算符(+-*/)計算其值

include<iostream>
float a,b,m=1;
string n;
while(m==1){
cin>>a>>b;
cin>>n;
switch(n){
case `+` : cout<<a<<"+"<<b<<"="<<a+b
<<end1;
break;
case `-` : cout<<a<<"-"<<b<<"="<<a-b
<<end1;
break;
case `*` : cout<<a<<"*"<<b<<"="<<a*b
<<end1;
break;
case `/` : cout<<a<<"/"<<b<<"="<<a/b
<<end1;
break;
case `%` : cout<<a<<"%"<<b<<"="<<a%b
<<end1;
break;
defult: cout<<"輸入錯誤,請檢查"
<<end1;
}
cout<<"按1繼續,其他鍵退出:";
cin>>m;
}

2. 用java設計計算器

import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;

public class calculator extends JFrame implements ActionListener
{//這里我把JFrame寫成Frame,這個錯誤找了好久
JFrame frame;

private JButton jia=new JButton("+");
private JButton jian=new JButton("-");
private JButton cheng=new JButton("*");
private JButton chu=new JButton("/");
private JButton qiuyi=new JButton("%");
private JButton deng=new JButton("=");
private JButton fu=new JButton("+/-");
private JButton dian=new JButton(".");
private JButton kai=new JButton("sqrt");
private JButton diao=new JButton("1/x");
private JButton aa=new JButton("A");
private JButton bb=new JButton("B");
private JButton cc=new JButton("C");
private JButton dd=new JButton("D");
private JButton ee=new JButton("E");
private JButton ff=new JButton("F");

private TextField k1=new TextField();
private objConversion convert = new objConversion();

JMenuItem ,paste,s,t,help,about,me;
JRadioButton sixteen,ten,eight,two;
JButton backspace,ce,c,num0,num1,num2,num3,num4,num5,num6,num7,num8,num9;
Container cp;

JTextField text;
String content="";
boolean clickable=true,clear=true;
int all=0;
double qian;
String fuhao;
int jin=10,first=1;

public calculator()
{
setTitle("計算器-楊彩製作");
setSize(400,300);
setLocation(250,200);
text=new JTextField(25);
// text.setEnabled(false);
text.setText("0.");
text.setHorizontalAlignment(JTextField.RIGHT);//從右到左

JPanel cp1=new JPanel();
JPanel cp2=new JPanel();
JPanel cp3=new JPanel();

cp=getContentPane();
cp.add(cp1,"North");
cp.add(cp2,"Center");
cp.add(cp3,"South");

cp1.setLayout(new GridLayout(1,6));
cp2.setLayout(new GridLayout(2,4));
cp3.setLayout(new GridLayout(6,6));

sixteen=new JRadioButton("十六進制");
sixteen.setVisible(false);
ten=new JRadioButton("十進制",true);
ten.setVisible(false);
eight=new JRadioButton("八進制");
eight.setVisible(false);
two=new JRadioButton("二進制");
two.setVisible(false);
sixteen.addActionListener(this);
ten.addActionListener(this);
eight.addActionListener(this);
two.addActionListener(this);
ButtonGroup btg=new ButtonGroup();

btg.add(sixteen);
btg.add(ten);
btg.add(eight);
btg.add(two);

JTextField t3=new JTextField(25);
cp1.add(text);
// text.setEnabled(false);
text.setEditable(false);
text.setBackground(new Color(255, 255, 255));

cp2.add(sixteen);
cp2.add(ten);
cp2.add(eight);
cp2.add(two);

backspace=new JButton("Backspace");
backspace.setForeground(new Color(255,0,0));
backspace.addActionListener(this);
ce=new JButton("CE");
ce.setForeground(new Color(255,0,0));
ce.addActionListener(this);
c=new JButton("C");
c.setForeground(new Color(255,0,0));
c.addActionListener(this);
k1.setVisible(false);
cp2.add(k1);
cp2.add(backspace);
cp2.add(ce);
cp2.add(c);

num0=new JButton("0");
num1=new JButton("1");
num2=new JButton("2");
num3=new JButton("3");
num4=new JButton("4");
num5=new JButton("5");
num6=new JButton("6");
num7=new JButton("7");
num8=new JButton("8");
num9=new JButton("9");

cp3.add(num7);
num7.addActionListener(this);
cp3.add(num8);
num8.addActionListener(this);
cp3.add(num9);
num9.addActionListener(this);
cp3.add(chu);
chu.setForeground(new Color(255,0,0));
chu.addActionListener(this);
cp3.add(kai);
kai.addActionListener(this);
cp3.add(num4);
num4.addActionListener(this);
cp3.add(num5);
num5.addActionListener(this);
cp3.add(num6);
num6.addActionListener(this);
cp3.add(cheng);
cheng.setForeground(new Color(255,0,0));
cheng.addActionListener(this);
cp3.add(qiuyi);
qiuyi.addActionListener(this);
cp3.add(num1);
num1.addActionListener(this);
cp3.add(num2);
num2.addActionListener(this);
cp3.add(num3);
num3.addActionListener(this);
cp3.add(jian);
jian.setForeground(new Color(255,0,0));
jian.addActionListener(this);
cp3.add(diao);
diao.addActionListener(this);
cp3.add(num0);
num0.addActionListener(this);
cp3.add(fu);
fu.addActionListener(this);
cp3.add(dian);
dian.addActionListener(this);
cp3.add(jia);
jia.setForeground(new Color(255,0,0));
jia.addActionListener(this);
cp3.add(deng);
deng.setForeground(new Color(255,0,0));
deng.addActionListener(this);
cp3.add(aa);
aa.addActionListener(this);
cp3.add(bb);
bb.addActionListener(this);
cp3.add(cc);
cc.addActionListener(this);
cp3.add(dd);
dd.addActionListener(this);
cp3.add(ee);
ee.addActionListener(this);
cp3.add(ff);
ff.addActionListener(this);
aa.setVisible(false);
bb.setVisible(false);
cc.setVisible(false);
dd.setVisible(false);
ee.setVisible(false);
ff.setVisible(false);

JMenuBar mainMenu = new JMenuBar();
setJMenuBar(mainMenu);
JMenu editMenu = new JMenu("編輯");
JMenu viewMenu = new JMenu("查看");
JMenu helpMenu = new JMenu("幫助");
mainMenu.add(editMenu);
mainMenu.add(viewMenu);
mainMenu.add(helpMenu);

= new JMenuItem(" 復制");
paste = new JMenuItem(" 粘貼");
KeyStroke ks=KeyStroke.getKeyStroke(KeyEvent.VK_C,Event.CTRL_MASK);
.setAccelerator(ks);//設置退出菜單選項加上快捷鍵
KeyStroke pasteks=KeyStroke.getKeyStroke(KeyEvent.VK_V,Event.CTRL_MASK);
paste.setAccelerator(pasteks);//設置退出菜單選項加上快捷鍵
editMenu.add();
editMenu.add(paste);
.addActionListener(this);
paste.addActionListener(this);

t = new JMenuItem("●標准型");
s = new JMenuItem(" 科學型");
viewMenu.add(t);
viewMenu.add(s);
t.addActionListener(this);
s.addActionListener(this);

help = new JMenuItem(" 幫助主題");
about = new JMenuItem(" 關於計算器");
me = new JMenuItem(" 作者主頁");
helpMenu.add(help);
helpMenu.add(about);
helpMenu.add(me);
help.addActionListener(this);
about.addActionListener(this);
me.addActionListener(this);

addWindowListener(new WindowDestroyer());//結束窗口
}

public void actionPerformed(ActionEvent e)

{//響應動作代碼

if(first==1)
text.setText("");
first=0;//第一次把文本框0.清空

Object temp = e.getSource();

if(temp==)
{
content = text.getText();
}
if(temp==paste)
{
text.setText(text.getText()+content);

}
if(temp==t)
{//標准

sixteen.setVisible(false);
ten.setVisible(false);
eight.setVisible(false);
two.setVisible(false);
t.setText("●標准型");
s.setText(" 科學型");
aa.setVisible(false);
bb.setVisible(false);
cc.setVisible(false);
dd.setVisible(false);
ee.setVisible(false);
ff.setVisible(false);
}
if(temp==s)
{//科學

sixteen.setVisible(true);
ten.setVisible(true);
eight.setVisible(true);
two.setVisible(true);
t.setText(" 標准型");
s.setText("●科學型");
aa.setVisible(true);
bb.setVisible(true);
cc.setVisible(true);
dd.setVisible(true);
ee.setVisible(true);
ff.setVisible(true);
aa.setEnabled(false);
bb.setEnabled(false);
cc.setEnabled(false);
dd.setEnabled(false);
ee.setEnabled(false);
ff.setEnabled(false);

}
if(temp==help)
{ //打開系統幫助文件 要查資料
try
{
String filePath = "C:/WINDOWS/Help/calc.chm";
Runtime.getRuntime().exec("cmd.exe /c "+filePath);

}
catch(Exception eeee)
{
System.out.println("打開系統的計算器出錯");
}
}
if(temp==about)
{
JOptionPane.showMessageDialog(frame," Java計算器 楊彩 製作 http://blog.sina.com.cn/m/yangcai","關於計算器",JOptionPane.INFORMATION_MESSAGE); ;
}
if(temp==me)
{
try
{
Process p = Runtime.getRuntime().exec("explorer http://blog.sina.com.cn/m/yangcai");
}
catch(Exception eeee)
{
System.out.println("打開指定網頁出錯");
}
}

try
{
if(temp==sixteen)
{
String hex=text.getText();
int inthex=Integer.parseInt(hex,jin);//先把數變為10進制
text.setText(convert.decHex(inthex)) ;
jin=16;
aa.setEnabled(true);
bb.setEnabled(true);
cc.setEnabled(true);
dd.setEnabled(true);
ee.setEnabled(true);
ff.setEnabled(true);
num2.setEnabled(true);
num3.setEnabled(true);
num4.setEnabled(true);
num5.setEnabled(true);
num6.setEnabled(true);
num7.setEnabled(true);
num8.setEnabled(true);
num9.setEnabled(true);

}
if(temp==eight)
{
String oct =text.getText();
int intoct=Integer.parseInt(oct,jin);
text.setText(convert.decOct(intoct)) ;
jin=8;

aa.setEnabled(false);
bb.setEnabled(false);
cc.setEnabled(false);
dd.setEnabled(false);
ee.setEnabled(false);
ff.setEnabled(false);
num2.setEnabled(true);
num3.setEnabled(true);
num4.setEnabled(true);
num5.setEnabled(true);
num6.setEnabled(true);
num7.setEnabled(true);
num8.setEnabled(false);
num9.setEnabled(false);
}
if(temp==two)
{
String bin=text.getText();
int intbin=Integer.parseInt(bin,jin);
text.setText(convert.decBin(intbin));
jin=2;

aa.setEnabled(false);
bb.setEnabled(false);
cc.setEnabled(false);
dd.setEnabled(false);
ee.setEnabled(false);
ff.setEnabled(false);
num2.setEnabled(false);
num3.setEnabled(false);
num4.setEnabled(false);
num5.setEnabled(false);
num6.setEnabled(false);
num7.setEnabled(false);
num8.setEnabled(false);
num9.setEnabled(false);
}
if(temp==ten)
{
String dec=text.getText();
int intdec=Integer.parseInt(dec,jin);
// text.setText(convert.decDec(intdec)); //本句會把123變成321
text.setText(intdec+"");
jin=10;
aa.setEnabled(false);
bb.setEnabled(false);
cc.setEnabled(false);
dd.setEnabled(false);
ee.setEnabled(false);
ff.setEnabled(false);
num2.setEnabled(true);
num3.setEnabled(true);
num4.setEnabled(true);
num5.setEnabled(true);
num6.setEnabled(true);
num7.setEnabled(true);
num8.setEnabled(true);
num9.setEnabled(true);
}
}
catch(Exception ee)
{
System.out.println("轉換出錯,可能你沒有輸入任何字元");
text.setText("轉換出錯");
clear=false;
}

if(temp==backspace)
{//退格
String s = text.getText();
text.setText("");
for (int i = 0; i < s.length() - 1; i++)
{
char a = s.charAt(i);
text.setText(text.getText() + a);
}
}

if (temp==ce)
{
text.setText("0.");
clear=true;
first=1;
}
if (temp==c)
{
text.setText("0."); ;
clear=true;
first=1;
}

if(temp==num0)
{
if(clear==false)//判斷是否點擊了符號位
text.setText("");
text.setText(text.getText()+"0");
}

if(temp==num1)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"1");
clear=true;//第二次不在清空(前二句)
}

if(temp==num2)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"2");
clear=true;
}

if(temp==num3)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"3");
clear=true;
}

if(temp==num4)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"4");
clear=true;
}

if(temp==num5)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"5");
clear=true;
}

if(temp==num6)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"6");
clear=true;
}
if(temp==num7)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"7");
clear=true;
}

if(temp==num8)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"8");
clear=true;
}

if(temp==num9)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"9");
clear=true;
}
if(temp==aa)
{
text.setText(text.getText()+"A");
}
if(temp==bb)
{
text.setText(text.getText()+"B");
}

if(temp==cc)
{
text.setText(text.getText()+"C");
}

if(temp==dd)
{
text.setText(text.getText()+"D");
}

if(temp==ee)
{
text.setText(text.getText()+"E");
}
if(temp==ff)
{
text.setText(text.getText()+"F");
}
if(temp==dian)
{
clickable=true;
for (int i = 0; i < text.getText().length(); i++)
if ('.' == text.getText().charAt(i))
{
clickable=false;
break;
} //第一層判斷是否裡面含有小數點;

if(clickable==true)//第二壇判斷
text.setText(text.getText()+".");

}

try
{
if(temp==jia)
{//加法
qian=Double.parseDouble(text.getText());
fuhao="+";
clear=false;
}
if(temp==jian)
{
qian=Double.parseDouble(text.getText());
fuhao="-";
clear=false;
;

}
if(temp==cheng)
{
qian=Double.parseDouble(text.getText());
fuhao="*";
clear=false;

}
if(temp==chu)
{
qian=Double.parseDouble(text.getText());
fuhao="/";
clear=false;

}
if(temp==deng)
{
double ss=Double.parseDouble(text.getText());
text.setText("");
if(fuhao=="+")
text.setText(qian+ss+"");
if(fuhao=="-")
text.setText(qian-ss+"");
if(fuhao=="*")
text.setText(qian*ss+"");
if(fuhao=="/")
text.setText(qian/ss+"");
clear=false;//要清空前一次的數據
;

}

if(temp==kai)
{
String s = text.getText();
if (s.charAt(0) == '-')
{
text.setText("負數不能開根號");
}
else
text.setText(Double.toString(java.lang.Math.sqrt(Double.parseDouble(text.getText()))));
clear=false;
}

if(temp==diao)
{

if (text.getText().charAt(0) == '0'&&text.getText().length() == 1)
{
text.setText("除數不能為零");
}
else
{
boolean isDec = true;
int i, j, k;
String s = Double.toString(1 / Double.parseDouble(text.getText()));
for (i = 0; i < s.length(); i++)
if (s.charAt(i) == '.')
break;
for (j = i + 1; j < s.length(); j++)
if (s.charAt(j) != '0')
{
isDec = false;
break;
}
if (isDec == true)
{
String stemp = "";
for (k = 0; k < i; k++)
stemp += s.charAt(k);
text.setText(stemp);
}
else
text.setText(s);
}

clear=false;
}
if(temp==qiuyi)
{
text.setText("0");
clear=false;
}
if (temp == fu)
{ //導師,此方法參考書中例子
boolean isNumber = true;
String s = text.getText();
for (int i = 0; i < s.length(); i++)
if (! (s.charAt(i) >= '0' && s.charAt(i) <= '9' || s.charAt(i) == '.' ||
s.charAt(i) == '-'))
{
isNumber = false;
break;
}
if (isNumber == true)
{
//如果當前字元串首字母有'-'號,代表現在是個負數,再按下時,則將首符號去掉
if (s.charAt(0) == '-')
{
text.setText("");
for (int i = 1; i < s.length(); i++)
{
char a = s.charAt(i);
text.setText(text.getText() + a);
}
}
//如果當前字元串第一個字元不是符號,則添加一個符號在首字母處
else
text.setText('-' + s);
}
}

}
catch(Exception eee)
{
System.out.println("運算時,首先輸入數字或字元");
text.setText("運算出錯");
clear=false;
}

}

class WindowDestroyer extends WindowAdapter
{//退出窗口動作
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}

class objConversion
{//導師,本進制類參考了CSMD類轉換例子

public void objConversion ()
{
}

public String decDec (int decNum)
{//10

String strDecNum = Integer.toString(decNum);

for (int i = strDecNum.length(); i < 3; i++)
{
strDecNum = "0" + strDecNum;
}

// return strDecNum;
return invert (strDecNum, 5);

}

public String decHex (int decNum)
{//10 to 16

String strHexNum = "";
int currentNum = 0;

while (decNum != 0)
{

if (decNum > 15)
{

currentNum = decNum % 16;
decNum /= 16;

}
else
{

currentNum = decNum;
decNum = 0;

}

switch (currentNum)
{

case 15: strHexNum += "F";
break;
case 14: strHexNum += "E";
break;
case 13: strHexNum += "D";
break;
case 12: strHexNum += "C";
break;
case 11: strHexNum += "B";
break;
case 10: strHexNum += "A";
break;
default: strHexNum += Integer.toString(currentNum);
break;

}

}

return invert (strHexNum, 2);

}

public String decOct (int decNum)
{//10 to 8

String strOctNum = "";

while (decNum != 0)
{

if (decNum > 7)
{

strOctNum += Integer.toString(decNum % 8);
decNum /= 8;

}
else
{

strOctNum += Integer.toString(decNum);
decNum = 0;

}

}

return invert (strOctNum, 3);

}

public String decBin (int decNum)
{//10 to 2

String strBinNum = "";

while (decNum != 0)
{

if (decNum > 1)
{

strBinNum += Integer.toString(decNum % 2);
decNum /= 2;

}
else
{

strBinNum += Integer.toString(decNum);
decNum = 0;

}

}

return invert (strBinNum, 8);

}

private String invert (String strNum, int minLength) //轉換長度
{

String answer = "";
int length = strNum.length();

if (length < minLength)
{

for (int padding = (minLength - length); padding > 0; padding--)
{
answer += "0";
}

}

for (int i = length; i > 0; i--)
{
answer += strNum.charAt (i - 1);
}

return answer;

}

}

public static void main(String arg[])//產生窗口
{
calculator win = new calculator();
win.setVisible(true);
}

}

3. 用java程序編寫一個計算器

給你一個參考,希望不要被網路吞了當晚餐
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.text.DecimalFormat;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Calculator {
//計算器面板
private JFrame f = new JFrame("Calculator");
//輸入面扳
private JPanel inputPanel = new JPanel();
//加減乘除面板
private JPanel operationPanel = new JPanel();
//數字面板
private JPanel buttonsPanel = new JPanel();

//輸入數據文本框
private JTextField input = new JTextField(20);

//退格鍵
private JButton backspace = new JButton("BackSpace");
//清空
private JButton CE = new JButton("CE ");
//刪除
private JButton C = new JButton("C ");

//四則運算符號鍵
private JButton add = new JButton("+");
private JButton sub = new JButton("-");
private JButton mul = new JButton("*");
private JButton div = new JButton("/");

//小數點
private JButton decimal = new JButton(".");
//等號
private JButton equal = new JButton("=");

//數字鍵
private JButton zero = new JButton("0");
private JButton one = new JButton("1");
private JButton two = new JButton("2");
private JButton three = new JButton("3");
private JButton four = new JButton("4");
private JButton five = new JButton("5");
private JButton six = new JButton("6");
private JButton seven = new JButton("7");
private JButton eight = new JButton("8");
private JButton nine = new JButton("9");

private String num1 = "";//保存第一個運算數字
private String operator = "";//保存運算符號

public static void main(String[] args) {
new Calculator();//new計算器實例
}

public Calculator(){
//添加組件,布局
inputPanel.add(input);
f.add(inputPanel, BorderLayout.NORTH);

operationPanel.add(backspace);
operationPanel.add(CE);
operationPanel.add(C);
f.add(operationPanel, BorderLayout.CENTER);

buttonsPanel.add(add);
buttonsPanel.add(sub);
buttonsPanel.add(mul);
buttonsPanel.add(div);
buttonsPanel.add(one);
buttonsPanel.add(two);
buttonsPanel.add(three);
buttonsPanel.add(zero);
buttonsPanel.add(four);
buttonsPanel.add(five);
buttonsPanel.add(six);
buttonsPanel.add(decimal);
buttonsPanel.add(seven);
buttonsPanel.add(eight);
buttonsPanel.add(nine);
buttonsPanel.add(equal);
buttonsPanel.setLayout(new GridLayout(4, 4));
f.add(buttonsPanel, BorderLayout.SOUTH);

//注冊各個組件監聽事件
backspace.addMouseListener(new OperationMouseListener());
CE.addMouseListener(new OperationMouseListener());
C.addMouseListener(new OperationMouseListener());
decimal.addMouseListener(new OperationMouseListener());
equal.addMouseListener(new OperationMouseListener());

//注冊四則運算監聽
add.addMouseListener(new CalcMouseListener());
sub.addMouseListener(new CalcMouseListener());
mul.addMouseListener(new CalcMouseListener());
div.addMouseListener(new CalcMouseListener());

//注冊數字監聽事件
zero.addMouseListener(new NumberMouseListener());
one.addMouseListener(new NumberMouseListener());
two.addMouseListener(new NumberMouseListener());
three.addMouseListener(new NumberMouseListener());
four.addMouseListener(new NumberMouseListener());
five.addMouseListener(new NumberMouseListener());
six.addMouseListener(new NumberMouseListener());
seven.addMouseListener(new NumberMouseListener());
eight.addMouseListener(new NumberMouseListener());
nine.addMouseListener(new NumberMouseListener());

f.setVisible(true);
f.pack();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

private class NumberMouseListener implements MouseListener{

public void mouseClicked(MouseEvent e) {
if(input.getText().trim().equals("0")){//如果文本框已經是0,結果還是0
input.setText(((JButton)e.getSource()).getText().trim());
}else{//否則的話,把0添加到後面,譬如文本框是1,結果就為10
input.setText(input.getText().concat(((JButton)e.getSource()).getText().trim()));
}
}

public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}

private class CalcMouseListener implements MouseListener{
//如果輸入的是運算符號,保存第一個結果和運算符號
public void mouseClicked(MouseEvent e) {
num1 = input.getText().trim();input.setText("");
operator = ((JButton)e.getSource()).getText().trim();
}

public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}

private class OperationMouseListener implements MouseListener{

public void mouseClicked(MouseEvent e) {
if(e.getSource() == backspace){//退格鍵,刪除一個直到沒有字元刪除
String inputText = input.getText();
if(inputText.length() > 0){
input.setText(inputText.substring(0, inputText.length() - 1));
}
}else if(e.getSource() == C){
input.setText("0");//C,清空所有運算數字和符號
num1 = "";
}else if(e.getSource() == CE){
input.setText("0");//CE-->將文本框置為0
}else if(e.getSource() == decimal){
String text = input.getText().trim();
//如果按了小數點,如果文本框已經有小數點,不做任何操作,否則在結果後面加上小數點
if(text.indexOf(".") == -1){
input.setText(text.concat("."));
}
}else if(e.getSource() == equal){
//如果是等號
if(!operator.trim().equals("")){
if(!input.getText().trim().equals("")){
double result = 0D;
if(operator.equals("+")){//執行加法運算
result = Double.parseDouble(num1) + Double.parseDouble(input.getText().trim());
}else if(operator.equals("-")){//減法運算
result = Double.parseDouble(num1) - Double.parseDouble(input.getText().trim());
}else if(operator.equals("*")){//乘法運算
result = Double.parseDouble(num1) * Double.parseDouble(input.getText().trim());
}else if(operator.equals("/")){//除法運算
result = Double.parseDouble(num1) / Double.parseDouble(input.getText().trim());
}

//格式化最終結果,保留兩位小數點
input.setText(new DecimalFormat("0.00").format(result));
}
}

}

}

public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}

}

4. 用JAVA編寫一個計算器

  1. 打開IED:打開自己java編程的軟體,採用的是eclipse軟體。

  2. 建立java工程。

  3. 編寫類。

5. 如何java設計計算器並實現功能

java設計計算器,主要是使用java swing,對每個按鈕進行監聽,實現相關功能,如下代碼:

packagecom.qiu.lin.he;
importjava.awt.BorderLayout;
importjava.awt.Color;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;

importjavax.swing.ImageIcon;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjavax.swing.JTextField;
importjavax.swing.SwingConstants;

{
/**
*
*/
=1L;
Resultresult=newResult();//定義text的面板
Number_Keynumber_key=newNumber_Key();//定義按鈕面板
//當點擊按鈕+、-、*、/時,com=true
booleancom=false;

//當i=0時說明是我們第一次輸入,字元串text不會累加
inti=0;

//存放text的內容
Stringtext="";
//存放點擊按鈕+、-、*、/之前的數值
doubledefbutton=0;

//+、-、*、/的代號分別為1,2,3,4
intsymbol=0;

//構造函數
Jisuanqi(){
super("WangJiao");//設定標題
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//設定關閉窗體時退出程序
JPanelpane=newJPanel();//定義主面板
pane.setLayout(newBorderLayout());
setBounds(380,220,30,80);//前兩個參數是在屏幕上顯示的坐標,後兩個是大小
//替換圖標
ImageIconicon=newImageIcon("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);//對1按鈕添加監聽事件
number_key.two.addActionListener(this);//對2按鈕添加監聽事件
number_key.three.addActionListener(this);//對3按鈕添加監聽事件
number_key.four.addActionListener(this);//對4按鈕添加監聽事件
number_key.five.addActionListener(this);//對5按鈕添加監聽事件
number_key.six.addActionListener(this);//對6按鈕添加監聽事件
number_key.seven.addActionListener(this);//對7按鈕添加監聽事件
number_key.eight.addActionListener(this);//對8按鈕添加監聽事件
number_key.nine.addActionListener(this);//對9按鈕添加監聽事件
number_key.zero.addActionListener(this);//對0按鈕添加監聽事件
number_key.ce.addActionListener(this);//對置零按鈕添加監聽事件
number_key.plus.addActionListener(this);//對+按鈕添加監聽事件
number_key.equal.addActionListener(this);//對=按鈕添加監聽事件
number_key.sub.addActionListener(this);//對-按鈕添加監聽事件
number_key.mul.addActionListener(this);//對*按鈕添加監聽事件
number_key.div.addActionListener(this);//對/按鈕添加監聽事件
number_key.point.addActionListener(this);//對.按鈕添加監聽事件

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

//各個按鈕觸發的事件
publicvoidactionPerformed(ActionEvente){

/*
*如果是點擊數字按鈕那麼先要判斷是否在此之前點擊了+、-、*、/、=,如果是那麼com=true如果沒有com=
*false;或者是否點擊數字鍵,如果是i=1,如果沒有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");
}
}elseif(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");
}

}elseif(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");
}
}elseif(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");
}
}elseif(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");
}
}elseif(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");
}
}elseif(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");
}
}elseif(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");
}
}elseif(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");
}
}

/*
*對於0這個按鈕有一定的說法,在我的程序里不會出現如00000這樣的情況,我加了判斷條件就是
*如果text中的數值=0就要判斷在這個數值中是否有.存在?如果有那麼就在原來數值基礎之上添加0;否則保持原來的數值不變
*/
elseif(e.getSource()==number_key.zero){//result.text.getText()是得到text里內容的意思
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)就是類型轉換了,下面都是一樣
result.text.setText(text+"0");
}else{
if(text.trim().indexOf(".")==-1){
result.text.setText(text);
}else{
result.text.setText(text+"0");
}
}
}
}elseif(e.getSource()==number_key.ce){
result.text.setText("0");
i=0;
com=true;
//text="";
defbutton=0;
}
/*
*本程序不會讓一個數值中出現2個以上的小數點.具體做法是:判斷是否已經存在.存在就不添加,不存在就添加.
*/
elseif(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);
}

}
}//獲得點擊+之前的數值
elseif(e.getSource()==number_key.plus){
com=true;
i=0;
defbutton=Double.parseDouble(result.text.getText());
symbol=1;
}//獲得點擊-之前的數值
elseif(e.getSource()==number_key.sub){
com=true;
i=0;
defbutton=Double.parseDouble(result.text.getText());

symbol=2;
}//獲得點擊*之前的數值
elseif(e.getSource()==number_key.mul){
com=true;
i=0;
defbutton=Double.parseDouble(result.text.getText());
System.out.println(defbutton);
symbol=3;
}//獲得點擊/之前的數值
elseif(e.getSource()==number_key.div){
com=true;
i=0;
defbutton=Double.parseDouble(result.text.getText());
symbol=4;
}elseif(e.getSource()==number_key.equal){

switch(symbol){
case1:{//計算加法
doublead=defbutton
+Double.parseDouble(result.text.getText());
result.text.setText(ad+"");
i=0;
text="";
break;
}
case2:{//計算減法
doublead=defbutton
-Double.parseDouble(result.text.getText());
result.text.setText(String.valueOf(ad));
i=0;
text="";
break;
}
case3:{//計算乘法
doublead=defbutton
*Double.parseDouble(result.text.getText());

result.text.setText(ad+"");
i=0;
text="";
break;
}
case4:{//計算除法
doublead=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")
publicstaticvoidmain(String[]args){
Jisuanqiloveyou=newJisuanqi();
loveyou.show();
}
}

//計算器數字按鈕定義面板
classNumber_KeyextendsJPanel{

/**
*
*/
=1L;
JButtonzero=newJButton("0");//數字鍵0
JButtonone=newJButton("1");//數字鍵1
JButtontwo=newJButton("2");//數字鍵2
JButtonthree=newJButton("3");//數字鍵3
JButtonfour=newJButton("4");//數字鍵4
JButtonfive=newJButton("5");//數字鍵5
JButtonsix=newJButton("6");//數字鍵6
JButtonseven=newJButton("7");//數字鍵7
JButtoneight=newJButton("8");//數字鍵8
JButtonnine=newJButton("9");//數字鍵9

JButtonplus=newJButton("+");
JButtonsub=newJButton("-");
JButtonmul=newJButton("*");
JButtondiv=newJButton("/");
JButtonequal=newJButton("=");
JButtonce=newJButton("清零");//置零鍵
JButtonpoint=newJButton(".");

Number_Key(){
setLayout(newGridLayout(4,4,1,1));//定義布局管理器為網格布局

setBackground(Color.blue);//設置背景顏色
//添加按鈕
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);
}
}

//計算器顯示結果的窗體
classResultextendsJPanel{
/**
*
*/
=1L;
//text先是輸入和結果
JTextFieldtext=newJTextField("0");

@SuppressWarnings("deprecation")
Result(){//講輸入的數字或得到的結果在text的右邊顯示
text.setHorizontalAlignment(SwingConstants.RIGHT);
text.enable(false);//文本框不能編輯
setLayout(newBorderLayout());//設定布局管理器邊框布局
add(text,BorderLayout.CENTER);//text放置在窗體的中間
}
}

運行結果如下:

6. Java設計計算器

****************************************************************

寫了一天,終於寫完了。

****************************************************************

說明:

類Calc.java出了界面符合你的要求外,還有以下優點:

1.對輸入內容進行校驗,如果是非法字元(如字母),不響應鍵盤事件,而且單個文本框只能輸入一個小數點;

2.使用Windows界面風格;

3.採用大數計算,更精準;

4.其它……

****************************************************************

代碼如下:

****************************************************************

importjava.awt.BorderLayout;

importjava.awt.Dimension;

importjava.awt.FlowLayout;

importjava.awt.Toolkit;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.KeyAdapter;

importjava.awt.event.KeyEvent;

importjava.math.BigDecimal;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JMenu;

importjavax.swing.JMenuBar;

importjavax.swing.JMenuItem;

importjavax.swing.JOptionPane;

importjavax.swing.JPanel;

importjavax.swing.JTextField;

importjavax.swing.UIManager;

/**

*@authorGodwin

*@version2010-05-16

*/

{

JTextFieldnumber1Text;

JTextFieldnumber2Text;

JTextFieldresultText;

publicCalc(){

this.setTitle("計算器");

/*

*菜單欄

*/

//Operation菜單

JMenuItemaddMenuItem=newJMenuItem("Add");

addMenuItem.setMnemonic('a');

JMenuItemsubtractMenuItem=newJMenuItem("Subtract");

subtractMenuItem.setMnemonic('s');

JMenuItemmultiplyMenuItem=newJMenuItem("Multiply");

multiplyMenuItem.setMnemonic('m');

JMenuItemdivideMenuItem=newJMenuItem("Divide");

divideMenuItem.setMnemonic('d');

JMenuoperationFile=newJMenu("Operation");

operationFile.setMnemonic('o');

operationFile.add(addMenuItem);

operationFile.add(subtractMenuItem);

operationFile.add(multiplyMenuItem);

operationFile.add(divideMenuItem);

//Exit菜單

JMenuexitMenu=newJMenu("Exit");

exitMenu.setMnemonic('x');

JMenuItemexitItem=newJMenuItem("Exit");

exitItem.setMnemonic('x');

exitItem.addActionListener(newExitActionListener());

exitMenu.add(exitItem);

//添加Operation和Exit菜單

JMenuBarmenubar=newJMenuBar();

menubar.add(operationFile);

menubar.add(exitMenu);

/*

*操作數和結果

*/

JLabelnumber1Label=newJLabel("Number1");

number1Text=newJTextField(6);

JLabelnumber2Label=newJLabel("Number2");

number2Text=newJTextField(6);

JLabelresultLabel=newJLabel("Result");

resultText=newJTextField(10);

resultText.setEditable(false);

JPaneloperandPanel=newJPanel(newFlowLayout());

operandPanel.add(number1Label);

operandPanel.add(number1Text);

operandPanel.add(number2Label);

operandPanel.add(number2Text);

operandPanel.add(resultLabel);

operandPanel.add(resultText);

/*

*操作符

*/

JButtonaddButton=newJButton("Add");

JButtonsubtractButton=newJButton("Subtract");

JButtonmultiplyButton=newJButton("Multiply");

JButtondivideButton=newJButton("Divide");

JPaneloperatorPanel=newJPanel(newFlowLayout());

operatorPanel.add(addButton);

operatorPanel.add(subtractButton);

operatorPanel.add(multiplyButton);

operatorPanel.add(divideButton);

/*

*添加所有面板

*/

this.add(menubar,BorderLayout.NORTH);

this.add(operandPanel,BorderLayout.CENTER);

this.add(operatorPanel,BorderLayout.SOUTH);

this.pack();

this.setResizable(false);

Toolkittool=Toolkit.getDefaultToolkit();

Dimensionscreen=tool.getScreenSize();

this.setLocation(screen.width/2-this.getWidth()/2,screen.height

/2-this.getHeight()/2);

this.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

/*

*添加事件監聽

*/

//菜單監聽

addMenuItem.addActionListener(this);

subtractMenuItem.addActionListener(this);

multiplyMenuItem.addActionListener(this);

divideMenuItem.addActionListener(this);

//文本框監聽

number1Text.addKeyListener(newVerifyInputKeyAdapter());

number2Text.addKeyListener(newVerifyInputKeyAdapter());

//按鈕監聽

addButton.addActionListener(this);

subtractButton.addActionListener(this);

multiplyButton.addActionListener(this);

divideButton.addActionListener(this);

}

{

publicvoidkeyTyped(KeyEvente){

charc=e.getKeyChar();

System.out.println(c);

if(!(('0'<=c)&&(c<='9')||(c==KeyEvent.VK_DELETE)||(c==KeyEvent.VK_BACK_SPACE))){

if(!((!((JTextField)(e.getSource())).getText().contains("."))&&(c=='.'))){

e.consume();

}

}

}

}

{

publicvoidactionPerformed(ActionEvente){

System.exit(0);

}

}

publicvoidactionPerformed(ActionEvente){

Stringoperand1=number1Text.getText();

BigDecimalbig1=BigDecimal.valueOf(Double.valueOf(operand1));

Stringoperand2=number2Text.getText();

BigDecimalbig2=BigDecimal.valueOf(Double.valueOf(operand2));

if((!(operand1.equals("")))&&(operand1!=null)

&&(!(operand2.equals("")))&&(operand2!=null)){

Stringname=e.getSource().getClass().getSimpleName();

Stringoperator="";

if(name.equals("JButton")){

JButtonb=(JButton)(e.getSource());

operator=b.getText();

}elseif(name.equals("JMenuItem")){

JMenuItemm=(JMenuItem)e.getSource();

operator=m.getText();

}

if(operator.equals("Add")){

resultText.setText(String.valueOf(big1.add(big2)));

}elseif(operator.equals("Subtract")){

resultText.setText(String.valueOf(big1.subtract(big2)));

}elseif(operator.equals("Multiply")){

resultText.setText(String.valueOf(big1.multiply(big2)));

}elseif(operator.equals("Divide")){

resultText.setText(String.valueOf(big1.divide(big2)));

}else{

JOptionPane.showMessageDialog(this,"操作有誤!","錯誤提示",

JOptionPane.WARNING_MESSAGE);

}

}else{

JOptionPane.showMessageDialog(this,"請輸入操作數!","錯誤提示",

JOptionPane.WARNING_MESSAGE);

number1Text.requestFocus();

}

}

publicstaticvoidmain(String[]args)throwsException{

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

newCalc();

}

}

****************************************************************

運行結果如下:

7. JAVA設計計算器

packagecn.hnpi;

importjava.awt.BorderLayout;

importjava.awt.GridLayout;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JPanel;

importjavax.swing.JTextField;

{

JButtonb0=newJButton("0");

JButtonb1=newJButton("1");

JButtonb2=newJButton("2");

JButtonb3=newJButton("3");

JButtonb4=newJButton("4");

JButtonb5=newJButton("5");

JButtonb6=newJButton("6");

JButtonb7=newJButton("7");

JButtonb8=newJButton("8");

JButtonb9=newJButton("9");

JButtonjiaButton=newJButton("+");

JButtonjianButton=newJButton("-");

JButtonchengButton=newJButton("*");

JButtonchuButton=newJButton("/");

JButtonyuButton=newJButton("%");

JButtonjjButton=newJButton("+/-");

JButtonsqrtButton=newJButton("sqrt");

JButtondianButton=newJButton(".");

JButtondengButton=newJButton("=");

JButtonButton=newJButton("1/x");

JButtonbackButton=newJButton("Backpace");

JButtoncButton=newJButton("C");

publicdoubleop1;

publicdoubleop2;

publicstaticfinalintJIA=0;

publicstaticfinalintJIAN=1;

publicstaticfinalintCHENG=2;

publicstaticfinalintCHU=3;

publicstaticfinalintJJ=4;

publicstaticfinalintDIAN=5;

publicintcurrent0p=0;

privatebooleanopEnd=false;

JPanelpanel1=newJPanel();

JPanelpanel2=newJPanel();

JPanelpanel3=newJPanel();

JPanelpanel4=newJPanel();

JTextFieldresult=newJTextField(20);

publicCalculator(){

initPanel2();

initPanel3();

panel2.setLayout(newGridLayout(5,4));

panel1.setLayout(newBorderLayout());

panel1.add(panel3,BorderLayout.NORTH);//設置位置

panel1.add(panel2,BorderLayout.CENTER);//設置位置

getContentPane().add(panel1);

addActionListeners();

setSize(260,260);

setLocation(500,300);

setVisible(true);

setDefaultCloseOperation(Calculator.EXIT_ON_CLOSE);

this.setResizable(false);

this.setTitle("計算器");

}

privatevoidinitPanel2(){

//把組件添加到相應的panel上

panel2.add(b7);

panel2.add(b8);

panel2.add(b9);

panel2.add(chuButton);

panel2.add(b4);

panel2.add(b5);

panel2.add(b6);

panel2.add(chengButton);

panel2.add(b1);

panel2.add(b2);

panel2.add(b3);

panel2.add(jianButton);

panel2.add(b0);

panel2.add(jjButton);

panel2.add(dianButton);

panel2.add(jiaButton);

panel2.add(Button);

panel2.add(yuButton);

panel2.add(sqrtButton);

panel2.add(dengButton);

}

privatevoidaddActionListeners(){

ActionHandlerc=newActionHandler();

b0.addActionListener(c);

b1.addActionListener(c);

b2.addActionListener(c);

b3.addActionListener(c);

b4.addActionListener(c);

b5.addActionListener(c);

b6.addActionListener(c);

b7.addActionListener(c);

b8.addActionListener(c);

b9.addActionListener(c);

jiaButton.addActionListener(c);

dengButton.addActionListener(c);

chengButton.addActionListener(c);

chuButton.addActionListener(c);

jianButton.addActionListener(c);

jjButton.addActionListener(c);

dianButton.addActionListener(c);

sqrtButton.addActionListener(c);

yuButton.addActionListener(c);

Button.addActionListener(c);

backButton.addActionListener(c);

cButton.addActionListener(c);

}

{

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==b0){

if(opEnd==false){

result.setText("");

}

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

}

if(e.getSource()==b1){

if(opEnd==false){

result.setText("");

}

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

opEnd=true;

}

if(e.getSource()==b2){

if(opEnd==false){

result.setText("");

}

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

opEnd=true;

}

if(e.getSource()==b3){

if(opEnd==false){

result.setText("");

}

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

opEnd=true;

}

if(e.getSource()==b4){

if(opEnd==false){

result.setText("");

}

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

opEnd=true;

}

if(e.getSource()==b5){

if(opEnd==false){

result.setText("");

}

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

opEnd=true;

}

if(e.getSource()==b6){

if(opEnd==false){

result.setText("");

}

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

opEnd=true;

}

if(e.getSource()==b7){

if(opEnd==false){

result.setText("");

}

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

opEnd=true;

}

if(e.getSource()==b8){

if(opEnd==false){

result.setText("");

}

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

opEnd=true;

}

if(e.getSource()==b9){

if(opEnd==false){

result.setText("");

}

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

opEnd=true;

}

try{

if(e.getSource()==jiaButton){

op1=Double.parseDouble(result.getText());

//2、說明操作數已經輸入完畢

opEnd=false;

current0p=JIA;

}

if(e.getSource()==chengButton){

op1=Double.parseDouble(result.getText());

//2、說明操作數已經輸入完畢

opEnd=false;

current0p=CHENG;

}

if(e.getSource()==chuButton){

op1=Double.parseDouble(result.getText());

//2、說明操作數已經輸入完畢

opEnd=false;

current0p=CHU;

}

if(e.getSource()==jianButton){

op1=Double.parseDouble(result.getText());

//2、說明操作數已經輸入完畢

opEnd=false;

current0p=JIAN;

}

if(e.getSource()==jjButton){

Stringtmp=result.getText();

if(tmp.equals("")||tmp.equals("0")){

return;

}

if(tmp.charAt(0)=='-'){

tmp=tmp.substring(1);

}else{

tmp='-'+tmp;

}

result.setText(tmp);

}

if(e.getSource()==dianButton){

Stringtmp=result.getText();

if(tmp.equals("")){

return;

}

if(tmp.indexOf(".")!=-1){

return;

}

tmp=tmp+".";

result.setText(tmp);

}

if(e.getSource()==sqrtButton){

Stringtmp=result.getText();

if(tmp.equals("")){

return;

}

doubled;

d=Double.parseDouble(tmp);//先定義一個double類型的d

if(d<0){

result.setText("不能對負數求平方根!");

return;

}

op2=Math.sqrt(d);

result.setText(op2+"");

}

if(e.getSource()==backButton){

Strings=result.getText();

result.setText("");

for(inti=0;i<s.length()-1;i++){

chara=s.charAt(i);

result.setText(result.getText()+a);

}

}

if(e.getSource()==cButton){

result.setText("0");

opEnd=false;

}

if(e.getSource()==dengButton){

op2=Double.parseDouble(result.getText());

switch(current0p){

caseJIA:

result.setText(op1+op2+"");

break;

caseJIAN:

result.setText(op1-op2+"");

break;

caseCHENG:

result.setText(op1*op2+"");

break;

caseCHU:

if(op2==0){

result.setText("被除數不能為零!");

break;

}

result.setText(op1/op2+"");

break;

}

opEnd=false;

}

}catch(Exceptione1){

result.setText("Wrong");

opEnd=false;

}

}

}

privatevoidinitPanel3(){

panel3.setLayout(newGridLayout(2,1));

panel3.add(result);

panel3.add(panel4);

panel4.setLayout(newGridLayout(1,2));

panel4.add(backButton);

panel4.add(cButton);

//panel3.setPreferredSize(newDimension(260,65));

}

publicstaticvoidmain(String[]args){

Calculatorc=newCalculator();//生成類的實例

}

}

8. java設計個簡單計算器

packagezhang16;
importjava.awt.*;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.text.DecimalFormat;
importjavax.swing.*;
importjavax.swing.border.Border;
importjavax.swing.border.LineBorder;
publicclass簡單計算器16_4extendsJFrame{
privatedoublenum1,num2,res;
privateJTextFieldnumber1=newJTextField(5);
privateJTextFieldnumber2=newJTextField(5);
privateJTextFieldresult=newJTextField(10);
JButtonjia=newJButton("jia");
JButtonjian=newJButton("jian");
JButtoncheng=newJButton("cheng");
JButtonchu=newJButton("chu");
public簡單計算器16_4(){
//TODOAuto-generatedconstructorstub
JPanelp1=newJPanel();
JPanelp2=newJPanel();
setLayout(newGridLayout(2,1));
this.add(p1,newFlowLayout());
p1.add(newJLabel("num1"));
p1.add(number1);
p1.add(newJLabel("num"));
p1.add(number2);
p1.add(newJLabel("result"));
p1.add(result);
Borderb=newLineBorder(Color.black,1);
this.add(p2,newFlowLayout());
p2.add(jia);
p2.add(jian);
p2.add(cheng);
p2.add(chu);
p1.setBorder(b);
p2.setBorder(b);
ButtonListenerActionListener=newButtonListener();
jia.addActionListener(ActionListener);
jian.addActionListener(ActionListener);
cheng.addActionListener(ActionListener);
chu.addActionListener(ActionListener);
}
{
@Override
publicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstub
DecimalFormatdf=newDecimalFormat("0.00");
if(e.getSource()==jia){
Stringnum11=number1.getText();
num1=Double.parseDouble(num11);
Stringnum22=number2.getText();
num2=Double.parseDouble(num22);
res=num1+num2;
result.setText(df.format(res)+"");
}elseif(e.getSource()==jian){
Stringnum11=number1.getText();
num1=Double.parseDouble(num11);
Stringnum22=number2.getText();
num2=Double.parseDouble(num22);
res=num1-num2;
result.setText(df.format(res)+"");
}elseif(e.getSource()==cheng){
Stringnum11=number1.getText();
num1=Double.parseDouble(num11);
Stringnum22=number2.getText();
num2=Double.parseDouble(num22);
res=num1*num2;
result.setText(df.format(res)+"");
}elseif(e.getSource()==chu){
Stringnum11=number1.getText();
num1=Double.parseDouble(num11);
Stringnum22=number2.getText();
num2=Double.parseDouble(num22);
res=num1/num2;
result.setText(df.format(res)+"");
}
}
}
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
JFramef=new簡單計算器16_4();
f.setSize(400,130);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
}
}

9. 用JAVA編寫一個簡單的計算器,要求如下

太麻煩了 說個思路, 過去字元串後 先獲取+-*%的下標.然後然後分割,獲取到一個數組或list
然後循環獲取() 按照數學運算順序拼起來,
然後把公式拆分一步一步操作就得出結果啦

10. 用JAVA編寫一個簡單計算器界面做出來了。

import sun.plugin.security.Broken11ClassFixer;

import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JFrame;
import java.awt.FlowLayout;
import javax.swing.JButton;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner;
public class Test extends JFrame{
private JTextField t1;
private JTextField t2;
private JTextField t3;
private JButton b1;
public Test(){
p1=new JPanel();
JPanel p2=new JPanel();
p1.setLayout(new FlowLayout(FlowLayout.LEFT,4,3));
t1 = new JTextField("0",4);
t2 = new JTextField("0",4);
t3 = new JTextField(8);
b1 = new JButton("=");
p1.add(t1);
p1.add(new JTextField(" + "));
p1.add(t2);
p1.add(new JLabel("="));
p1.add(t3);
p2.add(b1,BorderLayout.CENTER);
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
t3.setText(Integer.toString(Integer.parseInt(t1.getText())+Integer.parseInt(t2.getText())));
}
});
add(p1,BorderLayout.NORTH);
add(p2,BorderLayout.SOUTH);
}

public static void main(String[] args){
Test frame=new Test();
frame.setTitle("計算器");
frame.setSize(300,100);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
幫你完善了下,其他來不及寫了都是一樣的,稍微改一下就行

熱點內容
美發店認證 發布:2021-03-16 21:43:38 瀏覽:443
物業糾紛原因 發布:2021-03-16 21:42:46 瀏覽:474
全國著名不孕不育醫院 發布:2021-03-16 21:42:24 瀏覽:679
知名明星確診 發布:2021-03-16 21:42:04 瀏覽:14
ipad大專有用嗎 發布:2021-03-16 21:40:58 瀏覽:670
公務員協議班值得嗎 發布:2021-03-16 21:40:00 瀏覽:21
知名書店品牌 發布:2021-03-16 21:39:09 瀏覽:949
q雷授權碼在哪裡買 發布:2021-03-16 21:38:44 瀏覽:852
圖書天貓轉讓 發布:2021-03-16 21:38:26 瀏覽:707
寶寶水杯品牌 發布:2021-03-16 21:35:56 瀏覽:837