该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

先前用那个代码不走样说要审核,我这里不用那个来发代码

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.border.EmptyBorder;

import javax.swing.JTextField;

import java.awt.GridLayout;

import javax.swing.JButton;

import java.awt.Color;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.ArrayList;

import java.util.List; public class CalculaterYYWF extends JFrame {

private JPanel contentPane;

private JTextField textField;

private List listSign = new ArrayList();

private List listNum = new ArrayList(); public static void main(String[] args) {

new CalculaterYYWF();

} public CalculaterYYWF() {

setResizable(false);

setBackground(new Color(240, 255, 240));

setTitle("有猿无粉牌计算器");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setBounds(100, 100, 265, 375);

contentPane = new JPanel();

contentPane.setBackground(new Color(224, 255, 255));

contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

setContentPane(contentPane);

contentPane.setLayout(null);

textField = new JTextField();

textField.setBounds(10, 10, 237, 44);

contentPane.add(textField);

textField.setColumns(10);

JPanel panel = new JPanel();

panel.setBackground(new Color(224, 255, 255));

panel.setBounds(10, 64, 237, 273);

contentPane.add(panel);

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

String stmp = "123+456-789*0.%/()";

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

JButton j = new JButton(String.valueOf(stmp.charAt(i)));

j.setActionCommand(j.getText());

panel.add(j);

j.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

textField.setText(textField.getText().trim()

+ e.getActionCommand());

}

});

}

JButton bt_clear = new JButton("C");

panel.add(bt_clear);

bt_clear.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

textField.setText("");

}

});

JButton bt_deng = new JButton("=");

panel.add(bt_deng);

bt_deng.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

String expression = textField.getText();

bracketResolve(expression);

}

});

setVisible(true);

} // 逐层消括号并计算

public void bracketResolve(String exp) {

String strjs = convertString(exp);

try {

int zkh = -1; // 要处理的括号对中左括号的位置

while ((zkh = strjs.lastIndexOf("(")) != -1) {// 每次循环处理--最里面--的哪对括号

StringBuffer str = new StringBuffer(strjs);// 存要处理的括号对里面的内容

StringBuffer str1 = new StringBuffer(strjs);// 存运算式字符串剪去处理的括号对后左边的内容

StringBuffer str2 = new StringBuffer(strjs);// 存运算式字符串剪去处理的括号对后右边的内容

str.delete(0, zkh + 1);// delete方法中end位置上的元素没有删

str1.delete(zkh, str1.length());

int ykh = str.indexOf(")");// 在最后面左括号的右边,距离左括号最近的右括号的位置(最里面的那对括号)

str.delete(ykh, str.length());

str2.delete(0, zkh + ykh + 2);// 一对括号占两位置,还有删除的最后一位加1

Double tmp = operation(new String(str));// 计算这对括号里的表达式的值

strjs = new String(str1.toString() + String.valueOf(tmp)

+ str2.toString());// 消去一对括号,重新构建表达式,循环递归处理所有的括号.

}

Double result = operation(strjs);// 分解到没有括号存在时候,进行最后一次计算.

textField.setText(String.valueOf(result));

} catch (Exception e) {

expIrregularities();// 对其他所有没考虑到的情况统一处理

} }

带括号的计算器 java_【福利】java新手做的复合型计算器!相关推荐

  1. java 复合_【福利】java新手做的复合型计算器!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 先前用那个代码不走样说要审核,我这里不用那个来发代码 import javax.swing.JFrame; import javax.swing.JPan ...

  2. 简易计算器 java_用Java做一个简易计算器,要用到哪些知识?

    分析问题关键词:Java.计算器 深夜无聊,暂且一答. 计算器分两个步骤:计算 + 器 篇一 ·「器」 在编程中,我们可以把「器」理解为「GUI(图形界面)」,Java 语言描绘的图形界面有很多种类, ...

  3. js 月份间隔计算器_15分钟用JS做一个简易计算器

    原标题:15分钟用JS做一个简易计算器 前言 这个小练手旨在帮助刚上手学习Java的同学练习最基本的Js知识,大神勿喷哈,由于这个是非常简易的计算器,可以完成的功能有加减乘除和AC(清屏),DEL(退 ...

  4. java 计算器_用Java编写一个简单的计算器

    1.使用记事本或eclipse等编程工具,建立一个图形界面应用程序. 2.程序完成简单的四则计算功能 3.用户可以在名为Number1和Number2的文本输入框中输入2个操作数,然后点击下面的4个按 ...

  5. 简易计算器 java_终于写出一个简单的计算器了

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import javax.swing.*; import java.awt.event.*; import java.awt.*; import java ...

  6. 用java编写计算器_用Java编写一个简单的计算器

    1.使用记事本或eclipse等编程工具,建立一个图形界面应用程序. 2.程序完成简单的四则计算功能 3.用户可以在名为Number1和Number2的文本输入框中输入2个操作数,然后点击下面的4个按 ...

  7. java实现计算器框架_[Java小程序] 实现简单计算器

    这学期没事学了一点点Java,想写个程序练手,因为只学了一点点,所以暂时只能先写个实现简单功能的计算器练练.感觉写完后不是很好,如果路过的哪位高手给点建议,小弟万分感激啊. 由于期末来了,没太多时间, ...

  8. java 计算器api_用JAVA编写一个简单的计算器~要使用接口的~急啊~

    展开全部 简单写的 可以有不对的地方 import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.sw ...

  9. 像素鸟多线程java_用java Swing做的小游戏像素鸟-Go语言中文社区

    最终效果 整个项目都是基于swing实现的.窗是口将图片加载到JPanel面板,然后将面板添加到到JFrame窗口实现显示. 这个类是选择几只像素鸟的类,也是main函数里执行的方法,代码有详细的注释 ...

最新文章

  1. 06-CA/TA编程:rsa demo
  2. range与enumerate的区别
  3. ios开发人员mac空间不够用的解决办法
  4. boost::hana::when_valid用法的测试程序
  5. html5点线的设置,html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点...
  6. js读取解析JSON类型数据【申明:来源于网络】
  7. python3.0程序实例_Python3 编程第一步
  8. java obj1 = obj2_无障碍assertEquals(Object obj1,Object obj2),想怎么比较就怎么比较!! [ 光影人像 东海陈光剑 的博客 ]...
  9. 正则表达式基础知识(转)
  10. vue-router总结2
  11. 模拟退火 (poj 2420, poj 2069)
  12. myeclipse导入项目的问题,无法next
  13. 华为HCNA之OSPF多区域配置实验
  14. java微信扫一扫_java调用微信扫一扫
  15. 使用HoloLens 2调用深度相机和前置摄像头
  16. 第二章 数列极限与数值级数
  17. linux运行中的一个错误解决
  18. 用文心大模型生成剪纸风格的城市插画
  19. 袁萌浅谈C919大飞机(二)
  20. 修改vscode终端字体

热门文章

  1. 如何把照片压缩到20k一下_如何将图像压缩10倍?阿里工程师有个大胆的想法!...
  2. 小米一键上锁工具_小米智能门锁和猫眼,可女声变男声与访客隔门沟通
  3. 油田智能化远程监控系统_十种远程无线视频监控系统拓扑图
  4. Python 处理带中文 Excel 文件
  5. verilog一些小知识点注意事项集合
  6. Linux下dislocate命令用法,五个超酷Linux命令
  7. 【下载】RSA1024及RSA2048加密算法漏洞CVE-2017-7526 问题出在GnuPG加密库
  8. 如何安装透明窗口主题Emerald在Ubuntu 13.04/12.10/12.04中-PPA
  9. Open-E DSS V7 应用系列之三 Web管理简介
  10. RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”...