java计算器制作_java用制作小计算器

本文展示了如何使用Java Swing创建一个简单的计算器应用。通过定义框架、文本框和按钮,实现了数字输入、运算符选择以及计算结果的展示。点击事件监听器处理用户交互,包括清除、加减乘除和百分比等操作。
摘要由CSDN通过智能技术生成

import java.awt.BorderLayout;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class Caculator implements ActionListener {

private JFrame frame;

private JTextField jtx;

private JButton[] bus;

private char[] strs;

private JButton bu;

private String d_one = "";

private String operator = "";

public static void main(String[] args) {

new Caculator();

}

public Caculator() {

// 定义一个框架,显示信息为“计算器”

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

// 定义文本框,长度定为14(JTextField是单行文本框,里面的内容只能显示为一行)

jtx = new JTextField(14);

// 创建16个按钮

bus = new JButton[16];

strs = "789/456*123-0%+=".toCharArray();

// 给每个按钮添加一个显示信息,并且创建点击监听

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

bus[i] = new JButton(strs[i] + "");

bus[i].addActionListener(this);

}

bu = new JButton("AC");

bu.addActionListener(this);

init();

}

public void init() {

// 创建一个中间容器,用来存放文本框和按钮

JPanel jp1 = new JPanel();

jp1.add(jtx);

jp1.add(bu);

frame.add(jp1, BorderLayout.NORTH);

JPanel jp2 = new JPanel();

jp2.setLayout(new GridLayout(4, 4));

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

jp2.add(bus[i]);

}

frame.add(jp2, BorderLayout.CENTER);

// 根据窗口的布局和组件来确定边框的大小

frame.pack();

frame.setLocation(300, 400);

frame.setVisible(true);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

@Override

public void actionPerformed(ActionEvent actionEvent) {

String conn = actionEvent.getActionCommand();

if ("AC".equals(conn)) {

d_one = "";

operator = "";

jtx.setText("");

return;

}

if (("+-*/%".indexOf(conn)) != -1) {

if ("".equals(d_one) && "".equals(jtx.getText()))

return;

d_one = jtx.getText();

operator = conn;

jtx.setText("");

return;

}

if ("=".equals(conn)) {

if ("".equals(d_one) && "".equals(jtx.getText()))

return;

double value = 0;

if ("+".equals(operator)) {

value = Double.parseDouble(d_one)

+ Double.parseDouble(jtx.getText());

jtx.setText(value + "");

}

if ("-".equals(operator)) {

value = Double.parseDouble(d_one)

- Double.parseDouble(jtx.getText());

jtx.setText(value + "");

}

if ("*".equals(operator)) {

value = Double.parseDouble(d_one)

* Double.parseDouble(jtx.getText());

jtx.setText(value + "");

}

if ("/".equals(operator)) {

value = Double.parseDouble(d_one)

/ Double.parseDouble(jtx.getText());

jtx.setText(value + "");

}

if ("%".equals(operator)) {

value = Double.parseDouble(d_one)

% Double.parseDouble(jtx.getText());

jtx.setText(value + "");

}

d_one = value + "";

return;

}

jtx.setText(jtx.getText() + conn);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值