java编写简易计算器初学者 java制作计算器
大家好,今天来为大家分享java编写简易计算器初学者的一些知识点,和java制作计算器的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
求JAVA编写的 简易计算器程序,附上注释
1、首先准备好软件即eclipse和java,下载安装完成后打开eclipse。
2、点击左上角的file新建一个project。
3、给project取一个名字,其他的选项都是默认然后点击finish。
4、接下来是新建一个class。
5、在给class取名字的时候注意用英文名的首字母要大写。完成后点击finish。
6、这就是开始写代码的工作台,将代码写在绿字下。
7、这就是第一个hello world程序。
用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){}
}
}
java如何编写计算器代码
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator extends JFrame implements ActionListener
{
private boolean dotExist, operated, equaled;//帮助运算的布尔变量
private double storedNumber;//目前的结果
private char lastOperator;//表示上一运算符
private JTextField operation;//结果栏
private JButton dot, plus, minus, multi, div, sqrt, equal, changePN, clear;//运算符
private JButton[] numbers;//数字
//构造者
public Calculator()
{
setTitle("Calculator");
//初始化变量
dotExist= false;//表示当前的数是否有小数点
operated= false;//表示任意运算符是否被按下
equaled= false;//表示等号是否被按下
storedNumber= 0;
lastOperator='?';
//初始化窗口变量
operation= new JTextField("0");
operation.setEditable(false);
numbers= new JButton[10];
for(int i= 0; i< 10; i++)
numbers[i]= new JButton(""+ i);
dot= new JButton(".");
plus= new JButton("+");
minus= new JButton("-");
multi= new JButton("*");
div= new JButton("/");
sqrt= new JButton("√");
equal= new JButton("=");
changePN= new JButton("±");
clear= new JButton("AC");
//将窗口物体放入窗口
GridBagLayout layout= new GridBagLayout();
getContentPane().setLayout(layout);
addComponent(layout, operation, 0, 0, 4, 1);
addComponent(layout, numbers[1], 1, 0, 1, 1);
addComponent(layout, numbers[2], 1, 1, 1, 1);
addComponent(layout, numbers[3], 1, 2, 1, 1);
addComponent(layout, numbers[4], 2, 0, 1, 1);
addComponent(layout, numbers[5], 2, 1, 1, 1);
addComponent(layout, numbers[6], 2, 2, 1, 1);
addComponent(layout, numbers[7], 3, 0, 1, 1);
addComponent(layout, numbers[8], 3, 1, 1, 1);
addComponent(layout, numbers[9], 3, 2, 1, 1);
addComponent(layout, dot, 4, 0, 1, 1);
addComponent(layout, numbers[0], 4, 1, 1, 1);
addComponent(layout, sqrt, 4, 2, 1, 1);
addComponent(layout, plus, 1, 3, 1, 1);
addComponent(layout, minus, 2, 3, 1, 1);
addComponent(layout, multi, 3, 3, 1, 1);
addComponent(layout, div, 4, 3, 1, 1);
addComponent(layout, equal, 5, 0, 2, 1);
addComponent(layout, changePN, 5, 2, 1, 1);
addComponent(layout, clear, 5, 3, 1, 1);
}
//对按钮进行反应的方法
public void actionPerformed(ActionEvent e)
{
JButton btn=(JButton)e.getSource();
if(btn== clear)
{
operation.setText("0");
dotExist= false;
storedNumber= 0;
lastOperator='?';
}
else if(btn== equal)
{
operate('=');
equaled= true;
}
else if(btn== plus)
{
operate('+');
equaled= false;
}
else if(btn== minus)
{
operate('-');
equaled= false;
}
else if(btn== multi)
{
operate('*');
equaled= false;
}
else if(btn== div)
{
operate('/');
equaled= false;
}
else if(btn== changePN)
{
operate('p');
operate('=');
equaled= true;
}
else if(btn== sqrt)
{
operate('s');
operate('=');
equaled= true;
}
else
{
if(equaled)
storedNumber= 0;
for(int i= 0; i< 10; i++)
if(btn== numbers[i])
{
if(operation.getText().equals("0"))
operation.setText(""+ i);
else if(! operated)
operation.setText(operation.getText()+ i);
else
{
operation.setText(""+ i);
operated= false;
}
}
if(btn== dot&&! dotExist)
{
operation.setText(operation.getText()+".");
dotExist= true;
}
}
}
//进行运算的方法
private void operate(char operator)
{
double currentNumber= Double.valueOf(operation.getText()).doubleValue();
if(lastOperator=='?')
storedNumber= currentNumber;
else if(lastOperator=='+')
storedNumber+= currentNumber;
else if(lastOperator=='-')
storedNumber-= currentNumber;
else if(lastOperator=='*')
storedNumber*= currentNumber;
else if(lastOperator=='/')
storedNumber/= currentNumber;
else if(lastOperator=='p')
storedNumber*=-1;
else if(lastOperator=='s')
storedNumber= Math.sqrt(currentNumber);
else if(lastOperator=='='&& equaled)
storedNumber= currentNumber;
operation.setText(""+ storedNumber);
operated= true;
lastOperator= operator;
}
//快捷使用GridBagLayout的方法
private void addComponent(GridBagLayout layout, Component component, int row, int col, int width, int height)
{
GridBagConstraints constraints= new GridBagConstraints();
constraints.fill= GridBagConstraints.BOTH;
constraints.insets= new Insets(10, 2, 10, 2);
constraints.weightx= 100;
constraints.weighty= 100;
constraints.gridx= col;
constraints.gridy= row;
constraints.gridwidth= width;
constraints.gridheight= height;
layout.setConstraints(component, constraints);
if(component instanceof JButton)
((JButton)component).addActionListener(this);
getContentPane().add(component);
}
//主方法初始化并显示窗口
public static void main(String[] args)
{
Calculator calc= new Calculator();
calc.setSize(290, 400);
calc.setVisible(true);
}
}
如果你想加sin cos tan的话就建它们的按钮在actionPerformed方法中的if-else语句中加else if(btn== sin){operate('S');operate('=');equaled= true;}然后在operate方法加对应的语句就行了.记忆M+, M-没时间搞这个应该比较简单容易明白吧.
关于java编写简易计算器初学者和java制作计算器的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。