java代码书写简易的图形界面计算器

5 篇文章 0 订阅
5 篇文章 0 订阅

package 计算机.java;

//导入swing和awt包,用于创建图形界面

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

//定义一个类Calculator,继承自JFrame,实现ActionListener接口

public class jisuanji extends JFrame implements ActionListener {

// 定义一些私有变量,用于存储组件和数据

private JTextField textField; // 文本框,用于显示输入和输出

private JButton[] buttons; // 按钮数组,用于存储数字和运算符按钮

private String[] labels = {"7", "8", "9", "+", "4", "5", "6", "-", "1", "2", "3", "*", ".", "0", "=", "/"}; // 按钮标签数组,用于显示按钮上的文字

private double result = 0; // 结果变量,用于存储计算结果

private String operator = "="; // 运算符变量,用于存储当前的运算符

private boolean start = true; // 开始标志变量,用于判断是否开始输入新的数字

// 定义一个构造方法,用于初始化计算器

public jisuanji() {

// 调用父类的构造方法,设置窗口标题为“简易计算器”

super("简易计算器");

// 设置窗口大小为300*300像素

setSize(300, 300);

// 设置窗口关闭时退出程序

setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

// 设置窗口布局为边界布局

setLayout(new BorderLayout());

// 创建一个文本框,设置为不可编辑,居右对齐,字体为20号粗体

textField = new JTextField("0", 12);

textField.setEditable(false);

textField.setHorizontalAlignment(JTextField.RIGHT);

textField.setFont(new Font("Arial", Font.BOLD, 20));

// 创建一个面板,设置为网格布局,4行4列,水平和垂直间距为5像素

JPanel panel = new JPanel();

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

// 创建一个按钮数组,长度为16

buttons = new JButton[16];

// 循环创建按钮,设置标签,字体和监听器,并添加到面板中

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

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

buttons[i].setFont(new Font("Arial", Font.BOLD, 15));

buttons[i].addActionListener(this);

panel.add(buttons[i]);

}

// 将文本框添加到窗口北部

add(textField, BorderLayout.NORTH);

// 将面板添加到窗口中部

add(panel, BorderLayout.CENTER);

// 设置窗口可见

setVisible(true);

}

// 实现ActionListener接口的方法,处理按钮点击事件

public void actionPerformed(ActionEvent e) {

// 获取事件源,即被点击的按钮

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

// 获取按钮上的标签文字

String label = button.getText();

// 判断标签文字是数字还是运算符

if (label.equals("+") || label.equals("-") || label.equals("*") || label.equals("/") || label.equals("=")) {

// 如果是运算符,调用calculate方法进行计算,并将结果显示在文本框中

calculate(Double.parseDouble(textField.getText()));

operator = label;

start = true;

} else {

// 如果是数字或小数点,判断是否开始输入新的数字

if (start) {

// 如果是开始输入新的数字,将文本框内容设置为标签文字,并将开始标志设为false

textField.setText(label);

start = false;

} else {

// 如果不是开始输入新的数字,将文本框内容追加标签文字

textField.setText(textField.getText() + label);

}

}

}

// 定义一个calculate方法,用于进行四则运算

public void calculate(double n) {

// 判断运算符变量的值,进行相应的计算

switch (operator) {

case "+":

result += n;

break;

case "-":

result -= n;

break;

case "*":

result *= n;

break;

case "/":

result /= n;

break;

case "=":

result = n;

break;

}

// 将结果变量的值转换为字符串,显示在文本框中

textField.setText("" + result);

}

// 定义一个main方法,用于启动程序

public static void main(String[] args) {

// 创建一个Calculator对象

new jisuanji();

}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以使用 Java Swing 库来实现可视化计算器程序。以下是一个简单的示例代码: ```java import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Calculator extends JFrame implements ActionListener { private JTextField textField; private JButton[] buttons; private String[] buttonLabels = { "7", "8", "9", "/", "4", "5", "6", "*", "1", "2", "3", "-", "", ".", "=", "+" }; private double result = ; private String operator = ""; private boolean start = true; public Calculator() { setTitle("Calculator"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setResizable(false); textField = new JTextField(10); textField.setEditable(false); textField.setHorizontalAlignment(JTextField.RIGHT); JPanel buttonPanel = new JPanel(); buttonPanel.setLayout(new GridLayout(4, 4)); buttons = new JButton[buttonLabels.length]; for (int i = ; i < buttonLabels.length; i++) { buttons[i] = new JButton(buttonLabels[i]); buttons[i].addActionListener(this); buttonPanel.add(buttons[i]); } add(textField, BorderLayout.NORTH); add(buttonPanel, BorderLayout.CENTER); pack(); setLocationRelativeTo(null); setVisible(true); } public void actionPerformed(ActionEvent e) { String command = e.getActionCommand(); if (command.matches("[-9.]")) { if (start) { textField.setText(command); start = false; } else { textField.setText(textField.getText() + command); } } else if (command.matches("[*/\\-+]")) { if (!start) { calculate(Double.parseDouble(textField.getText())); operator = command; start = true; } else { operator = command; } } else if (command.equals("=")) { if (!start) { calculate(Double.parseDouble(textField.getText())); start = true; } } else if (command.equals("C")) { result = ; operator = ""; start = true; textField.setText(""); } } private void calculate(double number) { switch (operator) { case "+": result += number; break; case "-": result -= number; break; case "*": result *= number; break; case "/": result /= number; break; default: result = number; break; } textField.setText(Double.toString(result)); } public static void main(String[] args) { new Calculator(); } } ``` 这个程序使用了一个文本框和一个按钮面板来实现计算器的界面。按钮面板使用了 GridLayout 布局管理器,将按钮按照 4 行 4 列的方式排列。每个按钮都添加了一个 ActionListener,当用户点击按钮时,程序会根据按钮的标签执行相应的操作。 程序使用了一个 result 变量来保存计算结果,一个 operator 变量来保存当前的运算符,一个 start 变量来表示是否需要清空文本框。当用户点击数字按钮时,程序会将数字添加到文本框中。当用户点击运算符按钮时,程序会根据当前的运算符和文本框中的数字计算结果,并将结果保存到 result 变量中。当用户点击等号按钮时,程序会根据当前的运算符和文本框中的数字计算结果,并将结果显示在文本框中。当用户点击清除按钮时,程序会将 result、operator 和文本框都清空。 这个程序只是一个简单的示例,还有很多可以改进的地方。例如,可以添加更多的运算符和功能,可以添加错误处理机制,可以美化界面等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值