「java图形计算」java图形计算器

博主:adminadmin 2022-11-30 12:24:05 72

本篇文章给大家谈谈java图形计算,以及java图形计算器对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Java图形界面简单计算器

示例代码如下,请参考:

package test.com.test;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class Cal {

    TextField tf = new TextField(40);       //显示文本框

    StringBuffer s1 = new StringBuffer();   //记录运算数字,以及保留结果

    StringBuffer s2 = new StringBuffer();   //记录运算数字,保留上一个输入的数字或运算结果

    static String flag = new String();      //标记运算符号:+,-,*,/

    boolean start = true;   //标记运算开始或结束,保证一次运算之后,第二次进行运算时能同时清空显示界面,即s1为空

    public void init(){

        //主界面

        JFrame f = new JFrame("计算器");

        JPanel p1 = new JPanel();

        p1.add(tf);

        f.add(p1,BorderLayout.NORTH);

        JPanel p2 = new JPanel();

        p2.setLayout(new GridLayout(1,3));

        //动作监听器

        ActionListener listen =new ActionListener() {

            public void actionPerformed(ActionEvent arg0) {

                //输入数字0~9

                if(arg0.getActionCommand()=="0"){

                    if(!s1.toString().equals(new String())){

                        if(!start){

                            //s1清零,保证可以重新输入数字

                            s1.delete(0, s1.length());

                        }

                        start = true;

                        tf.setText(s1.append("0").toString());

                    }   

                }

                if(arg0.getActionCommand()=="1"){

                    if(!start){

                        s1.delete(0, s1.length());

                    }

                    start = true;

                    tf.setText(s1.append("1").toString());

                }

                if(arg0.getActionCommand()=="2"){

                    if(!start){

                        s1.delete(0, s1.length());

                    }

                    start = true;

                    tf.setText(s1.append("2").toString());

                }

                if(arg0.getActionCommand()=="3"){

                    if(!start){

                        s1.delete(0, s1.length());

                    }

                    start = true;

                    tf.setText(s1.append("3").toString());

                }

                if(arg0.getActionCommand()=="4"){

                    if(!start){

                        s1.delete(0, s1.length());

                    }

                    start = true;

                    tf.setText(s1.append("4").toString());

                }

                if(arg0.getActionCommand()=="5"){

                    if(!start){

                        s1.delete(0, s1.length());

                    }

                    start = true;

                    tf.setText(s1.append("5").toString());

                }

                if(arg0.getActionCommand()=="6"){

                    if(!start){

                        s1.delete(0, s1.length());

                    }

                    start = true;

                    tf.setText(s1.append("6").toString());

                }

                if(arg0.getActionCommand()=="7"){

                    if(!start){

                        s1.delete(0, s1.length());

                    }

                    start = true;

                    tf.setText(s1.append("7").toString());

                }

                if(arg0.getActionCommand()=="8"){

                    if(!start){

                        s1.delete(0, s1.length());

                    }

                    start = true;

                    tf.setText(s1.append("8").toString());

                }

                if(arg0.getActionCommand()=="9"){

                    if(!start){

                        s1.delete(0, s1.length());

                    }

                    start = true;

                    tf.setText(s1.append("9").toString());

                }

                //输入小数点

                if(arg0.getActionCommand()=="."){

                    if(!start){

                        s1.delete(0, s1.length());

                    }

                    start=true;

                    if(s1.toString().equals(new String()))

                        tf.setText(s1.append("0.").toString());

                    else if(s1.length()==1s1.charAt(0)=='-')

                        tf.setText(s1.append("0.").toString());

                    else

                        tf.setText(s1.append(".").toString());

                }

                //输入负号

                if(arg0.getActionCommand()=="+/-"){

                    if(!start){

                        s1.delete(0, s1.length());

                    }

                    start = true;

                    if(s1.toString().equals(new String()))

                        tf.setText(s1.append('-').toString());

                }

                //退格Backspace

                if(arg0.getActionCommand()=="Backspace"){

                    start = true;

                    if(s1.length()!=0){

                        //删除最后输入的一位

                        s1.deleteCharAt(s1.length()-1);

                        tf.setText(s1.toString());

                    }

                }

                //归零CE

                if(arg0.getActionCommand()=="CE"){

                    //清空所有,start标记设为true

                    start = true;

                    s1.delete(0, s1.length());

                    s2.delete(0, s2.length());

                    tf.setText(s1.toString());

                }

                //清除C

                if(arg0.getActionCommand()=="C"){

                    //清空当前输入,即s1清零

                    start = true;

                    s1.delete(0, s1.length());

                    tf.setText(s1.toString());

                }

                //加号

                if(arg0.getActionCommand()=="+"){

                    start = true;

                    flag="+";

                    //s2接收s1的值

                    s2.append(String.valueOf(s1.toString()));

                    //s1清零,重新接收下一个数据

                    s1.delete(0, s1.length());

                    tf.setText(s1.toString());

                }

                //减号

                if(arg0.getActionCommand()=="-"){

                    start = true;

                    flag="-";

                    s2.append(String.valueOf(s1.toString()));

                    s1.delete(0, s1.length());

                    tf.setText(s1.toString());

                }

                //乘号

                if(arg0.getActionCommand()=="*"){

                    start = true;

                    flag="*";

                    s2.append(String.valueOf(s1.toString()));

                    s1.delete(0, s1.length());

                    tf.setText(s1.toString());

                }

                //除号

                if(arg0.getActionCommand()=="/"){

                    start = true;

                    flag="/";

                    s2.append(String.valueOf(s1.toString()));

                    s1.delete(0, s1.length());

                    tf.setText(s1.toString());

                }

                //开根号

                if(arg0.getActionCommand()=="sqrt"){

                    start =false;

                    double s=Double.parseDouble(s1.toString());

                    s1.delete(0, s1.length());

                tf.setText(s1.append(String.valueOf(Math.sqrt(s))).toString());

                }

                //求%

                if(arg0.getActionCommand()=="%"){

                    start =false;

                    double s=Double.parseDouble(s1.toString());

                    s1.delete(0, s1.length());

                    tf.setText(s1.append(String.valueOf(s/100)).toString());

                }

                //求1/x

                if(arg0.getActionCommand()=="1/x"!s1.toString().equals(new String())Double.parseDouble(s1.toString())!=0){

                    start =false;

                    double s=Double.parseDouble(s1.toString());

                    s1.delete(0, s1.length());

                    tf.setText(s1.append(String.valueOf(1/s)).toString());

                }

                //求结果

                if(arg0.getActionCommand()=="="s1.length()!=0s2.length()!=0){

                    //start标记为false

                    start =false;

                    //分别获取s1和s2的值

                    double s4=Double.parseDouble(s1.toString()); 

                    double s3=Double.parseDouble(s2.toString());

                    //清空s1和s2,便于开始下一次运算

                    s1.delete(0, s1.length());

                    s2.delete(0, s2.length());

                    //四则运算

                    if(flag=="+"){

                        tf.setText(s1.append(String.valueOf(s3+s4)).toString());

                    }

                    if(flag=="-"){

                        tf.setText(s1.append(String.valueOf(s3-s4)).toString());

                    }

                    if(flag=="*"){

                        tf.setText(s1.append(String.valueOf(s3*s4)).toString());

                    }

                    if(flag=="/"){

                        tf.setText(s1.append(String.valueOf(s3/s4)).toString());

                    }

                }       

            }

        };

        //添加按钮以及监听器

        JButton bks = new JButton("Backspace");

        bks.addActionListener(listen);

        JButton ce = new JButton("CE");

        ce.addActionListener(listen);

        JButton c = new JButton("C");

        c.addActionListener(listen);

        p2.add(bks);

        p2.add(ce);

        p2.add(c);

        f.add(p2);

        JPanel p3 = new JPanel();

        p3.setLayout(new GridLayout(4,5));

        JButton b1 = new JButton("7");

        p3.add(b1);

        b1.addActionListener(listen);

        JButton b2 = new JButton("8");

        p3.add(b2);

        b2.addActionListener(listen);

        JButton b3 = new JButton("9");

        p3.add(b3);

        b3.addActionListener(listen);

        JButton b4 = new JButton("/");

        p3.add(b4);

        b4.addActionListener(listen);

        JButton b5 = new JButton("sqrt");

        p3.add(b5);

        b5.addActionListener(listen);

        JButton b6 = new JButton("4");

        p3.add(b6);

        b6.addActionListener(listen);

        JButton b7 = new JButton("5");

        p3.add(b7);

        b7.addActionListener(listen);

        JButton b8 = new JButton("6");

        p3.add(b8);

        b8.addActionListener(listen);

        JButton b9 = new JButton("*");

        p3.add(b9);

        b9.addActionListener(listen);

        JButton b10 = new JButton("%");

        p3.add(b10);

        b10.addActionListener(listen);

        JButton b11 = new JButton("1");

        p3.add(b11);

        b11.addActionListener(listen);

        JButton b12 = new JButton("2");

        p3.add(b12);

        b12.addActionListener(listen);

        JButton b13 = new JButton("3");

        p3.add(b13);

        b13.addActionListener(listen);

        JButton b14 = new JButton("-");

        p3.add(b14);

        b14.addActionListener(listen);

        JButton b15 = new JButton("1/x");

        p3.add(b15);

        b15.addActionListener(listen);

        JButton b16 = new JButton("0");

        p3.add(b16);

        b16.addActionListener(listen);

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

        p3.add(b17);

        b17.addActionListener(listen);

        JButton b18 = new JButton(".");

        p3.add(b18);

        b18.addActionListener(listen);

        JButton b19 = new JButton("+");

        p3.add(b19);

        b19.addActionListener(listen);

        JButton b20 = new JButton("=");

        p3.add(b20);

        b20.addActionListener(listen);

        f.add(p3,BorderLayout.SOUTH);

        f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

        f.pack();

        f.setVisible(true);

    }

    public static void main(String args[]){

        //调用方法,实现计算器

        new Cal().init();

    }

}

java程序,用图形实现乘除运算

简易的计算器代码如下,请参照:

import java.awt.BorderLayout;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextField;

/**

 * 计算器类

 * 

 * @author Administrator

 *

 */

public class Calculator extends JFrame implements ActionListener {

    

    private static final long serialVersionUID = 3868243398506940702L;

    

    // 文本框

    private JTextField result;

    // 按钮数组

    private JButton[] buttons;

    // 按钮文本

    private final String[] characters = { "7", "8", "9", "/", "4", "5", "6",

            "*", "1", "2", "3", "-", "0", ".", "=", "+" };

    // 是否为第一个输入的数字

    private boolean isFirstDigit = true;

    // 运算结果

    private double resultNum = 0.0;

    // 运算符

    private String operator = "=";

    public Calculator(String title) {

        // 设置标题栏

        super(title);

        // 初始化各组件

        init();

        // 注册各组件监听器

        registerListener();

        // 显示窗体

        setVisible(true);

    }

    /**

     * 初始化各组件

     */

    private void init() {

        // 常用属性初始化

        setSize(220, 200);

        setResizable(false);

        setLocationRelativeTo(null);

        setDefaultCloseOperation(EXIT_ON_CLOSE);

        /* 文本框对象初始化 */

        result = new JTextField("0");

        // 文本右对齐

        result.setHorizontalAlignment(JTextField.RIGHT);

        // 设置是否可编辑

        result.setEditable(false);

        /* 按钮初始化 */

        buttons = new JButton[characters.length];

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

            buttons[i] = new JButton(characters[i]);

            buttons[i].setFocusable(false); // 不允许按钮定位焦点

        }

        /* 将文本框与按钮添加到窗体中 */

        add(result, BorderLayout.NORTH);

        JPanel pnl = new JPanel(new GridLayout(4, 4, 5, 5));

        for (JButton jButton : buttons) {

            pnl.add(jButton);

        }

        add(pnl);

        this.getContentPane().setFocusable(true);

    }

    /**

     * 注册监听器

     */

    private void registerListener() {

        for (JButton jButton : buttons) {

            jButton.addActionListener(this);

        }

        // 注册键盘事件

        this.getContentPane().addKeyListener(new KeyAdapter() {

            @Override

            public void keyPressed(KeyEvent e) {

                String text = String.valueOf(e.getKeyChar());

                if (Character.isDigit(text.charAt(0)) || ".".equals(text)) { // 数字或小数点

                    handleNumber(text);

                } else if ("+-*/=".indexOf(text) != -1) { // 运算符

                    handleOperator(text);

                } else if (e.getKeyCode() == 8) { // 退格键

                    String tmp = result.getText().trim();

                    if (tmp.length() == 1) {

                        result.setText("0");

                        isFirstDigit = true;

                    } else {

                        result.setText(tmp.substring(0, tmp.length() - 1));

                    }

                }

            }

        });

    }

    @Override

    public void actionPerformed(ActionEvent e) {

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

        String text = btn.getText().trim();

        if (Character.isDigit(text.charAt(0)) || ".".equals(text)) { // 处理数字和小数点

            handleNumber(text);

        } else { // 处理运算符

            handleOperator(text);

        }

    }

    /**

     * 处理数字和小数点

     * 

     * @param text

     */

    private void handleNumber(String text) {

        if (isFirstDigit) { // 第一次输入

            if (".".equals(text)) {

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

            } else {

                this.result.setText(text);

            }

        } else if ("0".equals(text)  "0".equals(this.result.getText())) {

            isFirstDigit = true;

            return;

        } else if (".".equals(text)  this.result.getText().indexOf(".") == -1) {

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

        } else if (!".".equals(text)) {

            this.result.setText(this.result.getText() + text);

        }

        isFirstDigit = false;

    }

    /**

     * 处理运算符

     * 

     * @param text

     */

    private void handleOperator(String text) {

        switch (operator) { // 处理各项运算  适用于JDK1.7版本的

        case "+":

            resultNum += Double.parseDouble(this.result.getText());

            break;

        case "-":

            resultNum -= Double.parseDouble(this.result.getText());

            break;

        case "*":

            resultNum *= Double.parseDouble(this.result.getText());

            break;

        case "/":

            resultNum /= Double.parseDouble(this.result.getText());

            break;

        case "=":

            resultNum = Double.parseDouble(this.result.getText());

            break;

        }

        // 将文本框的值修改为运算结果

        this.result.setText(String.valueOf(resultNum));

        // 将点击的运算符放入operator保存

        operator = text;

        // 下一个数字第一次点击

        isFirstDigit = true;

    }

    

    public static void main(String[] args) {

              new Calculator("My Calculator");

          }

}

运行结果如下:

用java计算三角形、矩形、圆的面积

//图形类作父类

public class Diagram {

//计算面积

public double area(){return 0;}

}

//圆类:继承图形类

public class Crile extends Diagram{

private double r;

public Crile(double r){

this.r=r;

}

//重写area方法

public double area(){

double r=this.r;

return r*r*3.14;

}

}

//三角形类:继承图形类

public class Triangle extends Diagram{

private double high; //三角形的高

private double bottom; //三角形的底

public Triangle(double h,double b){

this.high=h;

this.bottom=b;

}

public double area(){

double h=this.high;

double b=this.bottom;

return h*b/2;

}

}

//测试

public class test {

public static void main(String[] args) {

System.out.println("请选择图形的类型:(1)三角形(2)圆");

Scanner scanner=new Scanner(System.in);

int i=scanner.nextInt();

if(i==1){

System.out.println("你选择的是三角形!请输入三角形高长(回车结束):");

double high=scanner.nextLong();

System.out.println("请输入三角形底长(回车结束):");

double bottom=scanner.nextLong();

//这里体现动态,如果选择的图形是三角形,那么创建三角形类

//调用的时候就是调用的三角形的方法

Diagram diagram=new Triangle(high, bottom);

System.out.println("三角形的面积为:"+diagram.area());

}

if(i==2){

System.out.println("你选择的是圆形!请输入圆的半径(回车结束):");

double r=scanner.nextLong();

Diagram diagram=new Crile(r);

System.out.println("三角形的面积为:"+diagram.area());

}

}

}

其他的一样了,纯手工 望采纳!

java怎么做图形界面计算器

给每一个按钮添加监听器,界面上应该会有一个Textfield的位置,你点击了什么按钮,就在对应的按钮上添加相应的运算,总之简单的计算在java中调用math.里面的函数就够了,其实你只要明白,你点击按钮是外部,其实内部需要你在监听器里面进行操作,把你点击的意思最终反应在界面上面的Textfield上

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

The End

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