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

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

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

import javaawtBorderLayout;

import javaawtGridLayout;

import javaawteventActionEvent;

import javaawteventActionListener;

import javaawteventKeyAdapter;

import javaawteventKeyEvent;

import javaxswingJButton;

import javaxswingJFrame;

import javaxswingJPanel;

import javaxswingJTextField;

/

  计算器类

  

  @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 = 00;

    // 运算符

    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");

        // 文本右对齐

        resultsetHorizontalAlignment(JTextFieldRIGHT);

        // 设置是否可编辑

        resultsetEditable(false);

        / 按钮初始化 /

        buttons = new JButton[characterslength];

        for (int i = 0; i < buttonslength; i++) {

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

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

        }

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

        add(result, BorderLayoutNORTH);

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

        for (JButton jButton : buttons) {

            pnladd(jButton);

        }

        add(pnl);

        thisgetContentPane()setFocusable(true);

    }

    /

      注册监听器

     /

    private void registerListener() {

        for (JButton jButton : buttons) {

            jButtonaddActionListener(this);

        }

        // 注册键盘事件

        thisgetContentPane()addKeyListener(new KeyAdapter() {

            @Override

            public void keyPressed(KeyEvent e) {

                String text = StringvalueOf(egetKeyChar());

                if (CharacterisDigit(textcharAt(0)) || ""equals(text)) { // 数字或小数点

                    handleNumber(text);

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

                    handleOperator(text);

                } else if (egetKeyCode() == 8) { // 退格键

                    String tmp = resultgetText()trim();

                    if (tmplength() == 1) {

                        resultsetText("0");

                        isFirstDigit = true;

                    } else {

                        resultsetText(tmpsubstring(0, tmplength() - 1));

                    }

                }

            }

        });

    }

    @Override

    public void actionPerformed(ActionEvent e) {

        JButton btn = (JButton) egetSource();

        String text = btngetText()trim();

        if (CharacterisDigit(textcharAt(0)) || ""equals(text)) { // 处理数字和小数点

            handleNumber(text);

        } else { // 处理运算符

            handleOperator(text);

        }

    }

    /

      处理数字和小数点

      

      @param text

     /

    private void handleNumber(String text) {

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

            if (""equals(text)) {

                thisresultsetText("0");

            } else {

                thisresultsetText(text);

            }

        } else if ("0"equals(text) && "0"equals(thisresultgetText())) {

            isFirstDigit = true;

            return;

        } else if (""equals(text) && thisresultgetText()indexOf("") == -1) {

            thisresultsetText(thisresultgetText() + "");

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

            thisresultsetText(thisresultgetText() + text);

        }

        isFirstDigit = false;

    }

    /

      处理运算符

      

      @param text

     /

    private void handleOperator(String text) {

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

        case "+":

            resultNum += DoubleparseDouble(thisresultgetText());

            break;

        case "-":

            resultNum -= DoubleparseDouble(thisresultgetText());

            break;

        case "":

            resultNum = DoubleparseDouble(thisresultgetText());

            break;

        case "/":

            resultNum /= DoubleparseDouble(thisresultgetText());

            break;

        case "=":

            resultNum = DoubleparseDouble(thisresultgetText());

            break;

        }

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

        thisresultsetText(StringvalueOf(resultNum));

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

        operator = text;

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

        isFirstDigit = true;

    }

    

    public static void main(String[] args) {

              new Calculator("My Calculator");

          }

}

运行结果如下:

修改后的代码,改了speed:

import javaappletApplet;

import javaawtColor;

import javaawtFont;

import javaawtGraphics;

import javautilRandom;

public class Circ extends Applet {

int x, y; // 圆的位置

int W_H; // 圆的大小

int R, G, B; // 圆的颜色

int i;

public int speed = 10; // 因为没有嵌入到网页中,没有值传入,改为固定值即可。

Random rd = new Random();

public void init() {

thisresize(1024, 768);// 初始窗口大小

}

public void paint(Graphics g) {

i = 0;// 初始化半径

while (i <= 75) {

W_H = i;

gsetColor(Colorwhite);

gfillRect(0, 0, thisgetWidth(), thisgetHeight()); // 抹除先前画的圆--画一个窗口大小的白色矩形

Color color = new Color(R, G, B);

gsetColor(color);

gfillOval(x - i, y - i, i  2, i  2);

try {

Threadsleep(speed); // 设置两圆之间延迟

} catch (InterruptedException e) {

eprintStackTrace();

}

i++;

// 擦出重新画

if (i == 75) {

i = 0;

// x = rdnextInt(thisgetWidth() - 50);

// y = rdnextInt(thisgetHeight()- 50);

x = (int) (Mathrandom()  (thisgetWidth() - 50) + 50);

y = (int) (Mathrandom()  (thisgetHeight() - 50) + 50);

speed = (int) (Mathrandom()  60); // 控制变化速度

y = rdnextInt(thisgetHeight() - 50);

R = rdnextInt(255);// 红色随机码 --0到255的随机数

G = rdnextInt(255);// 绿色随机码

B = rdnextInt(255);// 蓝色随机码

}

}

Systemexit(0);

}

}

以上就是关于java程序,用图形实现乘除运算全部的内容,包括:java程序,用图形实现乘除运算、java applet程序没错 可是编译出现未初始化程序怎么回事啊、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9818696.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存