欢迎光临散文网 会员登陆 & 注册

初学JAVA GUI自制计算器(自娱版)

2023-05-27 14:24 作者:鬼島誉  | 我要投稿


最新版本,利用递归下降法的计算器实现运算优先级



最近初学gui设计,一时心血来潮,制作了这个简陋版计算器

我并没有花很多时间去制作,计算器的功能很少,但是以后一定会尽力去完善

如有不善的地方请多多指教

计算器面貌
一些功能展示

以下是程序代码:

package kl1;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.IOException;


import javax.swing.*;

import java.awt.*;

import java.lang.*;

public class jisuanqi extends JFrame{

private JButton button1=new JButton("*");

private JButton button2=new JButton("/");

private JButton button3=new JButton("+");

private JButton button4=new JButton("-");

private JButton button5=new JButton("%");

private JButton button6=new JButton("开方");

private JButton button7=new JButton("开方");

private JButton button8=new JButton("求幂");


    private JTextField textField1=new JTextField();

    private JTextField textField2=new JTextField();

    private JTextField textField3=new JTextField();

    TextField textField = new TextField();

    public jisuanqi() {

   

    setTitle("简陋计算器");

    setSize(700,250);

    setLocation(400,400);

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    setLayout(null);

    textField1.setBounds(20,60,100,40);

    textField2.setBounds(150,60,100,40);

    textField3.setBounds(275,60,100,40);

    add(textField1);

    add(textField2);

    add(textField3);

    button1.setLocation(400,50);

    button2.setLocation(500,50);

    button3.setLocation(400,80);

    button4.setLocation(500,80);

    button5.setLocation(450,110);

    button6.setLocation(20,40);

    button7.setLocation(150,40);

    button8.setLocation(110,100);

    button1.setSize(100,20);

    button2.setSize(100,20);

    button3.setSize(100,20);

    button4.setSize(100,20);

    button5.setSize(100,20);

    button6.setSize(70,20);

    button7.setSize(70,20);

    button8.setSize(70,20);

    add(button1);

    add(button2);

    add(button3);

    add(button4);

    add(button5);

    add(button6);

    add(button7);

    add(button8);

    JLabel label = new JLabel(new ImageIcon("D:\\图片\\abcd.jpg"));//修改地址来更换程序里的图片 //

    label.setBounds(0,0, 700, 250);

    add(label);

    button1.addActionListener(new ActionListener(){

        public void actionPerformed(ActionEvent event) {

        double num1 = Double.parseDouble(textField1.getText());

        double num2 = Double.parseDouble(textField2.getText());

        double t1=num1*num2;

        textField3.setText(Double.toString(t1));

        JOptionPane.showMessageDialog(null, "积为:"+t1);

        }

        });

    button2.addActionListener(new ActionListener(){

        public void actionPerformed(ActionEvent event) {

       

        double num1 = Double.parseDouble(textField1.getText());

        double num2 = Double.parseDouble(textField2.getText());

        double t2=num1/num2;

        textField3.setText(Double.toString(t2));

        JOptionPane.showMessageDialog(null, "商为:"+t2);

        }

        });

    button3.addActionListener(new ActionListener(){

        public void actionPerformed(ActionEvent event) {

        double num1 = Double.parseDouble(textField1.getText());

        double num2 = Double.parseDouble(textField2.getText());

        double t3=num1+num2;

        textField3.setText(Double.toString(t3));

        JOptionPane.showMessageDialog(null, "和为:"+t3);

        }

        });

    button4.addActionListener(new ActionListener(){

        public void actionPerformed(ActionEvent event) {

        double num1 = Double.parseDouble(textField1.getText());

        double num2 = Double.parseDouble(textField2.getText());

        double t4=num1-num2;

        textField3.setText(Double.toString(t4));

        JOptionPane.showMessageDialog(null, "差为:"+t4);

        }

        });

    button5.addActionListener(new ActionListener(){

        public void actionPerformed(ActionEvent event) {

        double num1 = Double.parseDouble(textField1.getText());

        double num2 = Double.parseDouble(textField2.getText());

        double t5=num1%num2;

        textField3.setText(Double.toString(t5));

        JOptionPane.showMessageDialog(null, "余数为:"+t5);

        }

        });

    button6.addActionListener(new ActionListener(){

        public void actionPerformed(ActionEvent event) {

        double num1 = Double.parseDouble(textField1.getText());

        double t6=Math.sqrt(num1);

        textField3.setText(Double.toString(t6));

        JOptionPane.showMessageDialog(null, num1+"开根号为:"+t6);

        }

        });

    button7.addActionListener(new ActionListener(){

        public void actionPerformed(ActionEvent event) {

        double num2 = Double.parseDouble(textField2.getText());

        double t7=Math.sqrt(num2);

        textField3.setText(Double.toString(t7));

        JOptionPane.showMessageDialog(null, num2+"开根号为:"+t7);

        }

        });

    button8.addActionListener(new ActionListener(){

        public void actionPerformed(ActionEvent event) {

        double num1 = Double.parseDouble(textField1.getText());

        double num2 = Double.parseDouble(textField2.getText());

        double t7=Math.pow(num1, num2);

        textField3.setText(Double.toString(t7));

        JOptionPane.showMessageDialog(null, num1+"的"+num2+"次幂是"+t7);

        }

        });


    

        }

public static void main(String[] args) throws IOException{

// TODO Auto-generated method stub

        jisuanqi frame=new jisuanqi();

        frame.setVisible(true);

      

}


}



就这些啦!

初学JAVA GUI自制计算器(自娱版)的评论 (共 条)

分享到微博请遵守国家法律