当前位置:编程学习 > JAVA >>

用ECLIPSE软件实现JAVA的计算器编程

补充:要运用程序

答案:import java.awt.*;
import java.awt.event.*;
import javax.swing.*; public class app_1
{
public static void main(String[] args)
{
CalculatorFrame frame=new CalculatorFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
} class CalculatorFrame extends JFrame
{
public CalculatorFrame()
{
setTitle("Calculator");
CalculatorPanel panel=new CalculatorPanel();
add(panel);
pack();
}
} class CalculatorPanel extends Panel
{
public CalculatorPanel()
{
setLayout(new BorderLayout()); result=0;
lastCommand="=";
start=true;
flag=true; display=new JButton("0");
display.setEnabled(false);
add(display,BorderLayout.NORTH); ActionListener insert=new InsertAction();
ActionListener command=new CommandAction(); panel=new JPanel();
panel.setLayout(new GridLayout(5,5)); addButton("",insert);
addButton("",insert);
addButton("Backspace",command);
addButton("CE",command);
addButton("C",insert);

addButton("7",insert);
addButton("8",insert);
addButton("9",insert);
addButton("/",command);
addButton("sqrt",command);
// addButton("CE",command); addButton("4",insert);
addButton("5",insert);
addButton("6",insert);
addButton("*",command);
addButton("%",insert);
// addButton("Backspace",command); addButton("1",insert);
addButton("2",insert);
addButton("3",insert);
addButton("-",command);
addButton("1/x",command);
//addButton("sqrt",command); addButton("0",insert);
addButton("+/-",insert);
addButton(".",command);
addButton("+",command);
addButton("=",command); add(panel,BorderLayout.CENTER);
}
private void addButton(String label,ActionListener listener)
{
JButton button=new JButton(label);
button.addActionListener(listener);
panel.add(button);
}
private class InsertAction implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
String input=event.getActionCommand();
if(start&&flag)
{
display.setText("");
start=false;
}
if(flag)
display.setText(display.getText()+input);
}
}
private class CommandAction implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
String command=event.getActionCommand(); if(command.equals("CE"))
{
display.setText("0");
start=true;
flag=true;
command="=";
}
else
if(start&&flag)
{
if(command.equals("-"))
{
display.setText(command);
start=false;
}
else
if((command.equals("1/x")||command.equals("sqrt"))&&flag)
calculate(Double.parseDouble(display.getText()),command);
else
if(flag)
lastCommand=command;
}
else
{
if(command.equals("Backspace")&&flag)
{
String s=display.getText();
char[] s1=s.toCharArray();
if(s.length()>=2)
{
String s2=new String(s1,0,s.length()-1);
display.setText(s2);
}
else
{
display.setText("0");
start=true;
} }
else if(flag)
{
calculate(Double.parseDouble(display.getText()),command); lastCommand=command;
start=true;
}
}
}
} public void calculate(double x,String command)
{
if(lastCommand.equals("+")) result+=x;
else if(lastCommand.equals("-")) result-=x;
else if(lastCommand.equals("/"))
{
if(x!=0)
result/=x;
else
{
display.setText("除数不能为0");
start=false;
flag=false;
return;
}
}
else if(lastCommand.equals("*")) result*=x;
else if(command.equals("1/x"))
{
if(x!=0)
result=1/x;
else
{
display.setText("除数不能为0");
start=false;
flag=false;
return;
} }
else if(command.equals("sqrt"))
{
if(x>=0)
result=Math.sqrt(x);
else
{
display.setText("函数输入无效");
start=false;
flag=false;
return;
}
}
else if(lastCommand.equals("=")) result=x; display.setText(""+result);
}
private JButton display;
private JPanel panel;
private double result;
private String lastCommand;
private boolean start;
private boolean flag;
}

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 copy,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 copycontent="";
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 Grid

上一个:Java中的FileInputStream,FileOutputStram,BufferedWriter
下一个:java中输入点后自动弹出方法列表?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,