java小程序计算器(java 计算器)

华为云服务器特价优惠火热进行中!

2核2G2兆仅需 38 元;4核4G3兆仅需 79 元。购买时间越长越优惠!更多配置及优惠价格请咨询客服。

合作流程:
1、点击链接注册/关联华为云账号:点击跳转
2、添加客服微信号:cloud7591,确定产品方案、价格方案、服务支持方案等;
3、客服协助购买,并拉微信技术服务群,享受一对一免费技术支持服务;
技术专家在金蝶、华为、腾讯原厂有多年工作经验,并已从事云计算服务8年,可对域名、备案、网站搭建、系统部署、AI人工智能、云资源规划等上云常见问题提供更专业靠谱的服务,对相应产品提供更优惠的报价和方案,欢迎咨询。

今天给各位分享java小程序计算器的知识,其中也会对java 计算器进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

微信号:cloud7591
如需了解更多,欢迎添加客服微信咨询。
复制微信号

本文目录一览:

java:编写一个计算器小程序,要求可以做加减乘除运算

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class Calculator extends JFrame implements ActionListener{

private static final long serialVersionUID = 8199443193151152362L;

private JButton bto_s=new JButton("sqrt"),bto_zf=new JButton("+/-"),bto_ce=new JButton("CE"),bto_c=new JButton("C"),bto_7=new JButton("7"),

bto_8=new JButton("8"),bto_9=new JButton("9"),bto_chu=new JButton("/"),bto_4=new JButton("4"),bto_5=new JButton("5"),

bto_6=new JButton("6"),bto_cheng=new JButton("*"),bto_1=new JButton("1"),bto_2=new JButton("2"),bto_3=new JButton("3"),

bto_jian=new JButton("-"),bto_0=new JButton("0"),bto_dian=new JButton("."),bto_deng=new JButton("="),bto_jia=new JButton("+");

JButton button[]={bto_s,bto_zf,bto_ce,bto_c,bto_7,bto_8,bto_9,bto_chu,bto_4,bto_5,bto_6,bto_cheng,bto_1,bto_2,bto_3,bto_jian,

bto_0,bto_dian,bto_deng,bto_jia};

private JTextField text_double;// = new JTextField("0");

private String operator = "="; //当前运算的运算符

private boolean firstDigit = true; // 标志用户按的是否是整个表达式的第一个数字,或者是运算符后的第一个数字

private double resultNum = 0.0; // 计算的中间结果

private boolean operateValidFlag = true; //判断操作是否合法

public Calculator()

{

super("Calculator");

this.setBounds(300, 300, 300, 300);

this.setResizable(false);

this.setBackground(Color.orange);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

this.getContentPane().setLayout(new BorderLayout());//设置布局

text_double=new JTextField("0",20);//设置文本区

text_double.setHorizontalAlignment(JTextField.RIGHT);//设置水平对齐方式未右对齐

this.getContentPane().add(text_double,BorderLayout.NORTH);//将文本区添加到Content北部

JPanel panel=new JPanel(new GridLayout(5,4));//在内容窗口添加一个网格布局

this.getContentPane().add(panel);//添加panel面板

for(int i=0;ibutton.length;i++)//在面板上添加按钮

panel.add(button[i]);

for(int i=0;ibutton.length;i++)

button[i].addActionListener(this);//为按钮注册

text_double.setEditable(false);//文本框不可编辑

text_double.addActionListener(this);//

this.setVisible(true);

}

public void actionPerformed(ActionEvent e)//

{

String c= e.getActionCommand();//返回与此动作相关的命令字符串。

System.out.println("##########command is "+c);

if(c.equals("C")){

handleC(); //用户按了“C”键

}

else if (c.equals("CE")) // 用户按了"CE"键

{

text_double.setText("0");

}

else if ("0123456789.".indexOf(c) = 0) // 用户按了数字键或者小数点键

{

handleNumber(c); // handlezero(zero);

} else //用户按了运算符键

{

handleOperator(c);

}

}

private void handleC() // 初始化计算器的各种值

{

text_double.setText("0");

firstDigit = true;

operator = "=";

}

private void handleNumber(String button) {

if (firstDigit)//输入的第一个数字

{

text_double.setText(button);

} else if ((button.equals(".")) (text_double.getText().indexOf(".") 0))//输入的是小数点,并且之前没有小数点,则将小数点附在结果文本框的后面

//如果字符串参数作为一个子字符串在此对象中出现,则返回第一个这种子字符串的第一个字符的索引;如果它不作为一个子字符串出现,则返回 -1

{

text_double.setText(text_double.getText() + ".");

} else if (!button.equals("."))// 如果输入的不是小数点,则将数字附在结果文本框的后面

{

text_double.setText(text_double.getText() + button);

}

// 以后输入的肯定不是第一个数字了

firstDigit = false;

}

private void handleOperator(String button) {

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

// 除法运算

// 如果当前结果文本框中的值等于0

if (getNumberFromText() == 0.0){

// 操作不合法

operateValidFlag = false;

text_double.setText("除数不能为零");

} else {

resultNum /= getNumberFromText();

}

} else if (operator.equals("+")){

// 加法运算

resultNum += getNumberFromText();

} else if (operator.equals("-")){

// 减法运算

resultNum -= getNumberFromText();

} else if (operator.equals("*")){

// 乘法运算

resultNum *= getNumberFromText();

} else if (operator.equals("sqrt")) {

// 平方根运算

if(getNumberFromText()0){

operateValidFlag = false;

text_double.setText("被开方数不能为负数");}

else

resultNum = Math.sqrt(resultNum);

}

else if (operator.equals("+/-")){

// 正数负数运算

resultNum = resultNum * (-1);

} else if (operator.equals("=")){

// 赋值运算

resultNum = getNumberFromText();

}

if (operateValidFlag) {

// 双精度浮点数的运算

long t1;

double t2;

t1 = (long) resultNum;

t2 = resultNum - t1;

if (t2 == 0) {

text_double.setText(String.valueOf(t1));

} else {

text_double.setText(String.valueOf(resultNum));

}

}

operator = button; //运算符等于用户按的按钮

firstDigit = true;

operateValidFlag = true;

}

private double getNumberFromText() //从结果的文本框获取数字

{

double result = 0;

try {

result = Double.valueOf(text_double.getText()).doubleValue(); // ValueOf()返回表示指定的 double 值的 Double 实例

} catch (NumberFormatException e){

}

return result;

}

public static void main(final String[] args) {

new Calculator();

}

}

一个JAVA小程序,计算器的

text.setEditable(false);// 得写到方法体中去,单独是不能存在的,你看来是写得头晕了哈

第二个类那样是用不了text.setText();的

没有这个对象,你把它们写到同一个类中去就没问题了。

非要这么写,那你得再写个方法将text对象传递出来在第二个类中获取来使用……

你写得有点儿乱,我也不知道怎么改了!写一个太花时间,我这边给你一个吧!

你说按钮距离那就是你布局没有处理好!建议直接像下面给出的程序那样!也简单

出了问题了不怕,问题越多进步越快哈

有问题你可以加这个群进行提问:5358308,java world!(two)

给你一个计算器程序

//第一个类是GUI,两个类放两文件里去

import javax.swing.*;

import java.awt.Container;

import java.awt.event.*;

public class Calculate_GUI extends JFrame{

private JPanel p1;

private JButton keyButton[]=new JButton[16],signButton,clearButton,deleteButton;

private JTextField outputField;

private Container contentPane;

private boolean firstInput=true;

private Calculate_Model model=new Calculate_Model();

public Calculate_GUI(){

p1=new JPanel();

keyButton[0]=new JButton("1"); //创建各个按钮

keyButton[1]=new JButton("2");

keyButton[2]=new JButton("3");

keyButton[3]=new JButton("/");

keyButton[4]=new JButton("4");

keyButton[5]=new JButton("5");

keyButton[6]=new JButton("6");

keyButton[7]=new JButton("*");

keyButton[8]=new JButton("7");

keyButton[9]=new JButton("8");

keyButton[10]=new JButton("9");

keyButton[11]=new JButton("-");

keyButton[12]=new JButton("0");

keyButton[13]=new JButton(".");

keyButton[14]=new JButton("=");

keyButton[15]=new JButton("+");

clearButton=new JButton("c");

signButton=new JButton("+/-");

deleteButton=new JButton("←");

outputField=new JTextField(); //它允许编辑单行文本

outputField.setText("0");

outputField.setEditable(false); //指示此 TextComponent 是否应该为可编辑的

contentPane=this.getContentPane(); //返回此窗体的 contentPane 对象;

this.setSize(250,250);

p1.setLayout(new java.awt.GridLayout(4,5)); //创建具有4行5列的布局

for(int i=0;ikeyButton.length;i++) //在容器中画上按钮

{

if(i==4) p1.add(deleteButton);

if(i==8) p1.add(clearButton);

if(i==12) p1.add(signButton);

keyButton[i].setFont(new java.awt.Font("Dialog",3,15));//设置字体Dialog字体名,样式,大小

p1.add(keyButton[i]);

}

contentPane.add(outputField,java.awt.BorderLayout.NORTH);

contentPane.add(p1,java.awt.BorderLayout.CENTER);

this.show();

} //用于显示界面

public void registEvent() //注册各个事件

{

this.addWindowListener(new WindowAdapter() //窗口事件,窗口关闭里程序关闭

{

public void windowClosing(WindowEvent we)

{

System.exit(0);

}

});

for(int i=0;ikeyButton.length;i++)

{

keyButton[i].addActionListener(new keyButtonHandler()); //为每一个按钮添加监听器

}

signButton.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent ae)

{

outputField.setText(String.valueOf(model.toSign(Double.parseDouble(outputField.getText()))));

}

});

deleteButton.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent ae)

{

outputField.setText(model.backSpace(outputField.getText()));

if(outputField.getText().equals("0"))

firstInput=true;

}

});

clearButton.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent ae)

{

firstInput=true;

outputField.setText("0");

model.reset();

}

});

}

class keyButtonHandler implements ActionListener

{

public void actionPerformed(ActionEvent ae)

{

char actionCommand=ae.getActionCommand().charAt(0);

switch(actionCommand)

{

case '1':

case '2':

case '3':

case '4':

case '5':

case '6':

case '7':

case '8':

case '9':

case '0':

case '.':

if(firstInput) //是否为首次输入

{

outputField.setText(String.valueOf(actionCommand));

firstInput=false;

}

else

outputField.setText(outputField.getText()+actionCommand);

break;

case '+':

case '-':

case '*':

case '/':

if(firstInput)

model.setOperate(actionCommand);

else

{

model.setOperateNumber(Double.parseDouble(outputField.getText()));

model.calculating();

model.setOperate(actionCommand);

outputField.setText(String.valueOf(model.getResult()));

firstInput=true;

}

break;

case '=':

if(firstInput)

{

model.calculating();

outputField.setText(String.valueOf(model.getResult()));

}

else

{

model.setOperateNumber(Double.parseDouble(outputField.getText()));

model.calculating();

outputField.setText(String.valueOf(model.getResult()));

firstInput=true;

}

}

}

}

public static void main(String args[])

{

new Calculate_GUI().registEvent();

}

}

/******************************************

*****计算的模块****************************/

public class Calculate_Model

{

private double result;

private double operateNumber;

private char operate;

public Calculate_Model() //构造方法进行初始化

{

result=0; //结果

operateNumber=0; //操作数

operate=' '; //操作符

}

public void setResult(double n) //设置结果,成员变量result是private的

{

result=n;

}

public void setOperate(char o) //设置操作符

{

operate=o;

}

public void setOperateNumber(double n) //设置操作数

{

operateNumber=n;

}

public double getResult() //获取结果

{

return result;

}

public void calculating() //计算过程

{

switch(operate)

{

case ' ':result=operateNumber;break; //分别对操作判断后进行相应操作

case '+':result+=operateNumber;break;

case '-':result-=operateNumber;break;

case '*':result*=operateNumber;break;

case '/':result/=operateNumber;break;

}

}

public void reset() //重设方法

{

result=0;

operateNumber=0;

operate=' ';

}

public double toSign(double n) //正负转化

{

return 0-(n-0);

}

public String backSpace(String n) //对backSpace设置

{

String reResult="0";

try

{

reResult=n.substring(0,n.length()-1); //从第一个开始取前n-1个

Double.parseDouble(reResult); //将其转化为Double型

}

catch(NumberFormatException e)

{

reResult="0";

}

return reResult;

}

}

如何用JAVA语言编写计算器小程序?

具体代码如下:

import javax.swing.*;

import java.awt.event.*;

import java.awt.*;

public class Calculator  extends JFrame implements ActionListener  {

private JFrame jf;

private JButton[] allButtons;

private JButton clearButton;

private JTextField jtf;

public Calculator() {

//对图形组件实例化

jf=new JFrame("任静的计算器1.0:JAVA版");

jf.addWindowListener(new WindowAdapter(){

public void windowClosing(){

System.exit(0);

}

});

allButtons=new JButton[16];

clearButton=new JButton("清除");

jtf=new JTextField(25);

jtf.setEditable(false);

String str="123+456-789*0.=/";

for(int i=0;iallButtons.length;i++){

allButtons[i]=new JButton(str.substring(i,i+1));

}

}

public void init(){

//完成布局

jf.setLayout(new BorderLayout());

JPanel northPanel=new JPanel();

JPanel centerPanel=new JPanel();

JPanel southPanel=new JPanel();

northPanel.setLayout(new FlowLayout());

centerPanel.setLayout(new GridLayout(4,4));

southPanel.setLayout(new FlowLayout());

northPanel.add(jtf);

for(int i=0;i16;i++){

centerPanel.add(allButtons[i]);

}

southPanel.add(clearButton);

jf.add(northPanel,BorderLayout.NORTH);

jf.add(centerPanel,BorderLayout.CENTER);

jf.add(southPanel,BorderLayout.SOUTH);

addEventHandler();

}

//添加事件监听

public void addEventHandler(){

jtf.addActionListener(this);

for(int i=0;iallButtons.length;i++){

allButtons[i].addActionListener(this);

}

clearButton.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

Calculator.this.jtf.setText("");

}

});

}

//事件处理

public void actionPerformed(ActionEvent e) {

//在这里完成事件处理  使计算器可以运行

String action=e.getActionCommand();

if(action=="+"||action=="-"||action=="*"||action=="/"){

}

}

public void setFontAndColor(){

Font f=new Font("宋体",Font.BOLD,24);

jtf.setFont(f);

jtf.setBackground(new Color(0x8f,0xa0,0xfb));

for(int i=0;i16;i++){

allButtons[i].setFont(f);

allButtons[i].setForeground(Color.RED);

}

}

public void showMe(){

init();

setFontAndColor();

jf.pack();

jf.setVisible(true);

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public static void main(String[] args){

new Calculator().showMe();

}

}

关于java小程序计算器和java 计算器的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

发布于 2023-04-04 17:04:26
收藏
分享
海报
27
目录

    忘记密码?

    图形验证码

    复制成功
    微信号: cloud7591
    如需了解更多,欢迎添加客服微信咨询。
    我知道了