java语言计算器怎么写_求助,一个计算器的括号功能怎么写啊。

ca56232b3bbedf9a539d07f37fffb99a.gif

3144d8b7615c79d9f638db40d5689d26.gif

a218af6549b45ee526caf607ebff1358.gif

0f8df0e29816ae721419de940fb833d1.gif

求助,一个计算器的括号功能怎么写啊。

import javax.swing.*;

import javax.swing.event.*;

import java.awt.*;

import java.awt.event.*;

public class computer1 extends JFrame implements ActionListener{

Double r1,r2,total,c1,c2;

int i,j,j1=10,j2=7,c;

JButton[] Button1,Button2;

String str1=new String();

String str2=new String();

String str=new String();

String strr=new String();

boolean flag=true;

Container cp;

JLabel output=new JLabel("输出");

JTextField outarea=new JTextField(10);

JButton Button3=new JButton("=");

JButton clear=new JButton("清除");

JButton exit=new JButton("退出");

JMenuBar menubar=new JMenuBar();

JMenu now =new JMenu("文件(F)");

JMenu edit=new JMenu("编辑(E)");

JMenu help=new JMenu("帮助(H)");

JMenu format=new JMenu("格式(O)");

JMenuItem properties=new JMenuItem("属性",'P');

JMenuItem editer=new JMenuItem("退出",'X');

JMenuItem naw =new JMenuItem("新建",'N');

JMenuItem open=new JMenuItem("打开",'O');

JMenuItem paste=new JMenuItem("复制",'C');

JMenuItem cut=new JMenuItem("剪切",'X');

JMenuItem delet=new JMenuItem("删除",'D');

JMenuItem Auok=new JMenuItem("自动换行",'W');

JMenuItem font=new JMenuItem("字体",'F');

JMenuItem about=new JMenuItem("关于..",'A');

public computer1(){

super("祥祥的简单的计算器");

super.setJMenuBar(menubar);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setSize(300,300);

now .add(naw);naw.setEnabled(false);

now.add(open);open.setEnabled(false);

now.add(properties); properties.setEnabled(false);

now.add(editer); editer.addActionListener(new exit());

edit.add(paste); paste.setEnabled(false);

edit.add(cut);cut.setEnabled(false);

edit.add(delet);delet.setEnabled(false);

format.add(Auok);Auok.setEnabled(false);

format.add(font);font.setEnabled(false);

help.add(about);about.addActionListener(new message());

now.setMnemonic('F');

edit.setMnemonic('E');

format.setMnemonic('F');

help.setMnemonic('H');

menubar.add(now);

menubar.add(edit);

menubar.add(format);

menubar.add(help);

BorderLayout layout1=new BorderLayout();

GridLayout layout2=new GridLayout(4,4,6,6);

cp=getContentPane();

JPanel panel1=new JPanel(new GridLayout(2,1));

panel1.add(output);

panel1.add(outarea);

cp.add("North",panel1);

JPanel panel2=new JPanel(layout2);

Button1=new JButton[j1];

Button2=new JButton[j2];

Button2[2]=new JButton("*");

Button2[3]=new JButton("%");

Button2[4]=new JButton("(");

Button2[5]=new JButton(")");

Button1[1]=new JButton("1");

Button1[2]=new JButton("2");

Button1[3]=new JButton("3");

Button2[0]=new JButton("+");

Button1[4]=new JButton("4");

Button1[5]=new JButton("5");

Button1[6]=new JButton("6");

Button2[1]=new JButton("-");

Button1[7]=new JButton("7");

Button1[8]=new JButton("8");

Button1[9]=new JButton("9");

Button1[0]= new JButton("0");

for (i=0 ;i<10;i++) {

panel2.add(Button1[i]);

Button1[i].addActionListener(this);

};

for (j=0 ;j<6;j++) {

panel2.add(Button2[j]);

Button2[j].addActionListener(new operation());

};

Button3=new JButton("=");

JPanel panel3=new JPanel(new GridLayout());

panel3.add(Button3);

panel3.add(clear);

panel3.add(exit);

cp.add("Center",panel2);

cp.add("South",panel3);

Button3.addActionListener(this);

clear.addActionListener(this);

exit.addActionListener(new exit());

}

public void clear(){

this.total=0.0 ;

this.str=this.str1=" ";

this.str1=" ";

this.str2=" ";

outarea.setText(" ");

flag=true;

}

class exit implements ActionListener{

public void actionPerformed(ActionEvent e)

{System.exit(0);}

}

public void actionPerformed(ActionEvent e){

for(i=0;i<10;i++){

if(e.getSource()==Button1[i]){

if(flag){

str=str.valueOf(i);

str1+=str;

outarea.setText(str1);

r1=Double.parseDouble(str1);

}

else{

str=str.valueOf(i);

str2+=str;

outarea.setText(str2);

r2=Double.parseDouble(str2);

}

}

}

if(e.getSource()==clear) clear();

if(e.getSource()==Button3){

total=0.00;

switch(c){

case 0:total=r1+r2;outarea.setText(strr.valueOf(total));strr=strr.valueOf(total);break;

case 1:total=r1-r2;outarea.setText(strr.valueOf(total));strr=strr.valueOf(total);break;

case 2:total=r1*r2;outarea.setText(strr.valueOf(total));strr=strr.valueOf(total);break;

case 3:total=r1/r2;outarea.setText(strr.valueOf(total));strr=strr.valueOf(total);break;

}

}

}

class operation implements ActionListener{

public void actionPerformed(ActionEvent a){

for(j=0;j<4;j++)

if(a.getSource()==Button2[j]){

c=j;

char aa[ ]=new char[4];

aa[0]='+';aa[1]='-';aa[2]='*';aa[3]='/';

str=str.valueOf(aa[j]);

outarea.setText(str);

flag=false;

}

}

}

class message extends JFrame implements ActionListener{

public void actionPerformed(ActionEvent e){

JFrame frame=new JFrame("信息...");

frame.setSize(60,250);

frame.getContentPane().setLayout(new FlowLayout());

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

JLabel label1=new JLabel("关于作者信息:" );

JLabel label2=new JLabel("祥。");

frame.getContentPane().add(label1);

frame.getContentPane().add(label2);

}

}

public static void main(String[] args){

computer1 fr= new computer1();

fr.setVisible(true);

fr.pack();

}

}

图片附件: 游客没有浏览图片的权限,请 登录 或 注册

我就是实现不了括号功能,请同道友人指点一下,谢谢。

还有我觉得我的计算器还有一些不好的地方,请大家指点一下。修正一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489046.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows打开的winform当前焦点 是否是hwnd_推介几款 windows 下非常好用的工具

在下工具控一枚&#xff0c;平时会留意收集各种各样给我们生活生产带来便捷的工具&#xff0c;毕竟人生苦短&#xff1b;下面主要介绍一些我在 Windows 系统上发现的一些好用的工具&#xff0c;并且会一笔带过主要优点特点&#xff0c;具体详细用法可以搜一下&#xff0c;相关帖…

借力5G,云VR将推动VR产业迎“第二春”

来源&#xff1a;VR每日必看在近期举办的第八届全球物联网峰会上&#xff0c;作为中国电信5G商用产品的集约运营单位&#xff0c;号百控股在会展区域设置了天翼云VR产品专区&#xff0c;演示了韩国LG U独家授权内容&#xff0c;以及自制VR视频&#xff0c;引入关注。VR云化将实…

Linq的优点以及注意事项

转载于:https://www.cnblogs.com/hubbert123/p/6429926.html

低调!中国北斗核心卫星部署完成,开启“全球时代”!超越GPS指日可待

来源&#xff1a;科技杂谈、百度物联网智库 整理发布导 读2019年12月16日15时22分&#xff0c;我国在西昌卫星发射中心用长征三号乙运载火箭&#xff08;及配套远征一号上面级&#xff09;&#xff0c;以“一箭双星”的方式成功将第52、53颗北斗导航卫星发射升空。至此&#x…

数字孪生白皮书(2019)

▲ 赛迪工业互联网首席研究员袁晓庆博士发布报告来源&#xff1a;赛迪智库以下是白皮书主要内容的PPT&#xff1a;&#xff08;点击放大观看&#xff09;123456789101112131415161718192021222324252627282930未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&…

java手动线程池使用_Java手动配置线程池过程详解

线程池中&#xff0c;常见有涉及到的&#xff1a;ExecutorService executorService Executors.newSingleThreadExecutor();ExecutorService executorService1 Executors.newCachedThreadPool();ExecutorService executorService2 Executors.newFixedThreadPool(3);关于Execu…

BZOJ 1492: [NOI2007]货币兑换Cash [CDQ分治 斜率优化DP]

传送门 题意&#xff1a;不想写... 扔链接就跑 好吧我回来了 首先发现每次兑换一定是全部兑换&#xff0c;因为你兑换说明有利可图&#xff0c;是为了后面的某一天两种卷的汇率差别明显而兑换 那么一定拿全利啊&#xff0c;一定比多天的组合好 $f[i]$表示第$i$天最多能得到的钱…

集水井盖板图集07fj02_【干货】住宅通病详细图集(图文详解)

工序节点1建筑物外墙与散水坡、台阶、明沟留沉降缝图示&#xff1a;要求与做法&#xff1a;1、散水坡、台阶、明沟本身按≤6m长度(总长度均分)留沉降缝。2、外墙阴阳角位按450角留沉降缝。3、散水坡与台阶交接处留沉降缝分隔。工序节点2室外地面 伸缩缝图示&#xff1a;要求与…

最新发布!北京市机器人产业创新发展行动方案(2019-2022) “5432”推动北京机器人产业高质量发展...

来源&#xff1a;机器人大讲堂各有关单位&#xff1a;为贯彻《北京市加快科技创新发展智能装备产业的指导意见》&#xff0c;推动北京市机器人产业高质量发展&#xff0c;现将《北京市机器人产业创新发展行动方案&#xff08;2019—2022年&#xff09;》印发给你们&#xff0c;…

php png 输出,PHP直接输出一张图片代码写法

示例代码&#xff1a;public function img(){$img "https://file.zyku.net/p/b197f42c06ffff2e03bfbacee4ce94c4.jpg";$info getimagesize($img);$imgExt image_type_to_extension($info[2], false); //获取文件后缀$fun "imagecreatefrom{$imgExt}";$…

判别分析分为r型和q型吗_电流互感器天天见,但是你真正了解和知道它的一些注意事项吗?...

电流互感器也许你天天见&#xff0c;但是你真正了解电流互感器和它的一些注意事项吗&#xff1f;今天我就带大家一步步分析下电流互感器。一&#xff0c;定义&#xff0c;什么是电流互感器&#xff1f;电流互感器是根据电磁感应原理将一次侧大电流转换成二次侧小电流来测量或计…

刚刚,Science发布2019十大科学突破!

来源&#xff1a;中国生物技术网 北京时间12月20日&#xff0c;《Science》公布了今年的十大突破。“直视”黑洞图片来源&#xff1a;UNIVERSITY OF ARIZONA/INSTITUTE FOR ADVANCED STUDY图片来源&#xff1a;EHT COLLABORATION/CC 4.0巨大的、无处不在的黑洞&#xff0c;在某…

nginx php分离,nginx-php配置动静分离

实验目的&#xff1a;nginx-php配置动静分离实验环境&#xff1a;主机 192.168.88.100 NGINX服务器主机 192.168.88.102 PHP和MYSQL服务器注意&#xff1a;想要手工编译必须安装gcc gcc-c make 这三个插件并且关闭防火墙service firewalld stopsystemctl disable firewalld1.在…

模仿u-boot的makefile结构

u-boot&#xff08;2014.04&#xff09;是通过顶层makefile调用各子目录中的makefile来实现整个工程的编译的&#xff0c;实际上子目录的makefile是include进来的。这里仿照这种结构写个模板测试一下。 目录结构&#xff1a; mytest&#xff1a; add&#xff1a; mul&#xff1…

我国机器视觉企业体量偏小,上游零部件占利润大头

来源&#xff1a;仪商网根据中国机器视觉产业联盟(CMVU)调查统计&#xff0c;目前进入中国市场的国际机器视觉企业和中国本土的机器视觉企业(不包括代理商)都已经超过200家&#xff0c;产品代理商超过300家&#xff0c;专业的机器视觉系统集成商超过70家&#xff0c;覆盖全产业…

php 后端 轻量 框架,GitHub - 22cloud/mixphp: 轻量 PHP 框架,基于 Swoole 的常驻内存型 PHP 高性能框架 (开发文档完善)...

高性能 • 轻量级 • 命令行MixPHP 是什么MixPHP 秉承 "普及 PHP 常驻内存型解决方案&#xff0c;促进 PHP 往更后端发展" 的理念而创造&#xff0c;采用 Swoole 扩展作为底层引擎&#xff0c;围绕常驻内存的方式而设计&#xff0c;提供了 Web / Console 开发所需的众…

技术面试问项目难题如何解决的_技术创新 | 降本增效,青海农信社项目小伙刻苦钻研解决联合支架设计难题!...

革新READ随着建筑技术的进步&#xff0c;建筑内部功能和机电系统越来越多样&#xff0c;带来机电管线的数量成倍增加。为节约建筑空间&#xff0c;提高建筑净高&#xff0c;保证系统功能&#xff0c;提升履约品质&#xff0c;越来越多的项目选择采用联合支架的形式将各类管线集…

AI研究过于集中狭隘,我们是不是该反思了?

来源&#xff1a;AI科技大本营译者 | 陆离编辑 | 夕颜【导读】2019年是AI领域更加冷静的一年&#xff0c;少了些喧嚣和泡沫&#xff0c;大浪淘沙留下的是经过检验的真正的AI研究者、实践者。但是你也许没有发现&#xff0c;本来被寄予厚望要解决一切“疑难杂症”的AI&#xff0…

svchost占用内存过高_是什么导致你的Java服务器内存和CPU占用过高呢

一、内存占用过高1、造成服务器内存占用过高只有两种情况&#xff1a;内存溢出或内存泄漏(1)内存溢出&#xff1a;程序分配的内存超出物理内存的大小&#xff0c;导致无法继续分配物理内存&#xff0c;出现OOM报错。(2)内存泄漏&#xff1a;不再调用的对象一直占用着内存不释放…

Even Three is Odd

题意&#xff1a; 问题是对于所有的长度为n&#xff0c;且$1<ai<n$的整数序列求 $\prod_{i1}^{n-2}{max \{w_i,w_{i1},w_{i2}}\}$ 之和。 解法&#xff1a; 首先设dp状态为 $f(i,j,k)$ &#xff0c;长度为$i3$的&#xff0c;最大值为k&#xff0c;且最大值出现的位置集合…