「java设计简易计算器」java程序设计计算器

博主:adminadmin 2022-12-10 09:33:06 65

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

本文目录一览:

用Java设计一个简单的计算器。

无聊写了个,修复了下Bug:

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JTextField;

public class Calculate extends JFrame implements ActionListener {

    private static final long serialVersionUID = 1L;

    private JButton plus, reduce, multiply, divice, reset;

    private JTextField one, two, result;

    private boolean device_falg = false;

    private final int width = 400, height = 300;

    public Calculate() {

        super("修改密码");

        this.setLayout(null);

        this.setSize(width, height);

        init();

        Layout();

    }

    public void init() {

        plus = new JButton("加   ");

        reduce = new JButton("减    ");

        multiply = new JButton("乘   ");

        divice = new JButton("除    ");

        reset = new JButton("清空");

        one = new JTextField();

        two = new JTextField();

        result = new JTextField();

    }

    public void Layout() {

        this.add(new JLabel("第一个数")).setBounds(20, 10, 60, 80);

        this.add(one).setBounds(100, 38, 100, 25);

        this.add(new JLabel("第二个数")).setBounds(20, 40, 60, 80);

        this.add(two).setBounds(100, 70, 100, 25);

        this.add(new JLabel("结果")).setBounds(20, 85, 60, 80);

        this.add(result).setBounds(100, 110, 100, 25);

        this.add(plus).setBounds(70, 170, 80, 25);

        this.add(reduce).setBounds(200, 170, 80, 25);

        this.add(multiply).setBounds(70, 200, 80, 25);

        this.add(divice).setBounds(200, 200, 80, 25);

        this.add(reset).setBounds(300, 220, 80, 25);

        plus.addActionListener(this);

        reduce.addActionListener(this);

        multiply.addActionListener(this);

        divice.addActionListener(this);

        reset.addActionListener(this);

        this.setVisible(true);

        this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);

    }

    public boolean Format() {

        boolean FLAG = false;

        boolean flag = false;

        String one = this.one.getText().toString().trim();

        String two = this.two.getText().toString().trim();

        if (one == null || one.equals("") || two == null || two.equals("")) {

            JOptionPane.showMessageDialog(getParent(), "请输入完整信息!");

            FLAG = false;

            flag = true;

        }

        boolean boll_1 = one.matches("[\\d]{1,100}");

        boolean boll_2 = two.matches("[\\d]{1,100}");

        boolean boll_3 = one.matches("[\\d]{1,100}+[.]+[\\d]{1,100}");

        boolean boll_4 = two.matches("[\\d]{1,100}+[.]+[\\d]{1,100}");

        if (flag) {

            return false;

        }

        if ((boll_1  boll_2) || (boll_3  boll_4) || (boll_1  boll_4)

                || (boll_3  boll_2)) {

            FLAG = true;

        } else {

            JOptionPane.showMessageDialog(getParent(), "请输入数字!");

            FLAG = false;

        }

        if (FLAG  device_falg) {

            if (Double.parseDouble(two) == 0) {

                JOptionPane.showMessageDialog(getParent(), "被除数不能为0!");

                FLAG = false;

                device_falg=false;

            }

        }

        return FLAG;

    }

    public double Plus(double one, double two) {

        return one + two;

    }

    public double Multiply(double one, double two) {

        return one * two;

    }

    public double Divice(double one, double two) {

        return one / two;

    }

    public double Reduce(double one, double two) {

        return one - two;

    }

    public void Clear() {

        one.setText("");

        two.setText("");

        result.setText("");

    }

    @Override

    public void actionPerformed(ActionEvent e) {

        Object o = e.getSource();

        if (o == reset) {

            Clear();

            return;

        }

        if (o == divice) {

            device_falg = true;

        }

        if (!Format()) {

            return;

        }

        double one = Double.parseDouble(this.one.getText());

        double two = Double.parseDouble(this.two.getText());

        double result = 0;

        if (o == plus) {

            result = Plus(one, two);

        } else if (o == reduce) {

            result = Reduce(one, two);

        } else if (o == multiply) {

            result = Multiply(one, two);

        } else if (o == divice) {

            result = Divice(one, two);

        }

        this.result.setText("" + result);

    }

    public static void main(String[] args) {

        new Calculate();

    }

}

用java编写一个简单计算器

package swing;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

@SuppressWarnings("serial")

public class Calculator extends JFrame{

JTextField jt1 ,jt2 ,jt3;

JLabel jLabel;

JButton equButton,addButton,reduceButton,mulButton,divButton;

public Calculator() {

super("简易计算器");

JPanel contentPanel = new JPanel();

contentPanel.setLayout(new GridLayout(2, 0));

JPanel uJPanel = new JPanel();

Dimension preferredSize = new Dimension(50, 29);

GridBagConstraints gbc = new GridBagConstraints();

uJPanel.setLayout(new GridBagLayout());

gbc.gridx = GridBagConstraints.RELATIVE;

gbc.gridy = 0;

gbc.fill = GridBagConstraints.HORIZONTAL;

gbc.insets = new Insets(1, 2, 1, 2);

jt1 = new JTextField(4);

jLabel = new JLabel();

jLabel.setPreferredSize(new Dimension(10, 29));

jt2 = new JTextField(4);

equButton = new JButton("=");

ActionListener myActionListener = new MyActionListener();

equButton.addActionListener(myActionListener);

jt3 = new JTextField(8);

jt1.setPreferredSize(preferredSize);

jt2.setPreferredSize(preferredSize);

jt3.setPreferredSize(preferredSize);

uJPanel.add(jt1,gbc);

uJPanel.add(jLabel,gbc);

uJPanel.add(jt2,gbc);

uJPanel.add(equButton,gbc);

gbc.weightx = 1;

uJPanel.add(jt3,gbc);

contentPanel.add(uJPanel);

JPanel dJPanel = new JPanel();

dJPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 8, 2));

addButton = new JButton("+");

reduceButton = new JButton("-");

mulButton = new JButton("*");

divButton = new JButton("/");

addButton.addActionListener(myActionListener);

reduceButton.addActionListener(myActionListener);

mulButton.addActionListener(myActionListener);

divButton.addActionListener(myActionListener);

dJPanel.add(addButton);

dJPanel.add(reduceButton);

dJPanel.add(mulButton);

dJPanel.add(divButton);

contentPanel.add(dJPanel);

this.setContentPane(contentPanel);

this.pack();

this.setLocationRelativeTo(null);

this.setDefaultCloseOperation(3);

this.setVisible(true);

}

class MyActionListener implements ActionListener{

Double d1,d2,d3;

String operator = "";

public void actionPerformed(ActionEvent e) {

String fun = e.getActionCommand();

if (!fun.equals("=")) {

jLabel.setText(fun);

operator = fun;

}else {

d1 = jt1.getText().equals("")?null:Double.valueOf(jt1.getText());

d2 = jt2.getText().equals("")?null:Double.valueOf(jt2.getText());

d3 = calculate(d1,d2,operator);

jt3.setText(d3==null ? "":d3.toString());

jt3.setCaretPosition(0);

}

}

}

Double calculate(Double d1,Double d2,String operator){

if (d1 == null || d2 == null) {

return null;

}

Double d3 = null;

switch (operator) {

case "+":

d3 = d1 + d2;

break;

case "-":

d3 = d1 - d2;

break;

case "*":

d3 = d1 * d2;

break;

case "/":

d3 = d1 / d2;

break;

}

return d3;

}

public static void main(String[] args) {

new Calculator();

}

}

用java编写简易计算器程序

//布局没有调整,需要你自己去调整

代码如下:

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.*;

public class JieMian extends JFrame implements ActionListener{

JTextField c1;

JTextField c2;

JLabel c;

JLabel equal=new JLabel("=");

JLabel result;

JLabel choose=new JLabel("请选择");

JButton add=new JButton("+");

JButton sub=new JButton("-");

JButton mul=new JButton("×");

JButton div=new JButton("÷");

JButton cal=new JButton("计算");

JButton clear=new JButton("清除");

public JieMian(){

setLayout(new FlowLayout());

c1=new JTextField(5);

c2=new JTextField(5);

c=new JLabel("+");

result=new JLabel("");

add(c1);

add(c);

add(c2);

add(equal);

add(result);

add(choose);

add(add);

add(sub);

add(mul);

add(div);

add(cal);

add(clear);

add.addActionListener(this);

sub.addActionListener(this);

mul.addActionListener(this);

div.addActionListener(this);

cal.addActionListener(this);

clear.addActionListener(this);

setVisible(true);

pack();

}

@Override

public void actionPerformed(ActionEvent e) {

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

c.setText("+");

}else if(e.getSource()==sub){

c.setText("-");

}else if(e.getSource()==mul){

c.setText("×");

}else if(e.getSource()==div){

c.setText("÷");

}else if(e.getSource()==cal){

double cc1,cc2;

try{

cc1=Double.parseDouble(c1.getText());

}catch(Exception ex){

cc1=0;

}try{

cc2=Double.parseDouble(c2.getText());

}catch(Exception ex){

cc2=0;

}

if(c.getText()=="+"){

result.setText(String.valueOf(cc1+cc2));

}else if(c.getText()=="-"){

result.setText(String.valueOf(cc1-cc2));

}else if(c.getText()=="×"){

result.setText(String.valueOf(cc1*cc2));

}else if(c.getText()=="÷"){

if(cc2!=0){

result.setText(String.valueOf(cc1/cc2));

}else{

result.setText("NAN");

}

}

}else if(e.getSource()==clear){

c1.setText("");

c2.setText("");

result.setText("");

}

}

public static void main(String args[]){

JieMian jiemian=new JieMian();

}

}

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

The End

发布于:2022-12-10,除非注明,否则均为首码项目网原创文章,转载请注明出处。