java计算器拓展

news/2024/11/30 15:32:55/

源代码:

package shixun;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.SwingConstants;import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Font;
import java.awt.Color;
public class Calculator extends JFrame implements ActionListener {// 第一行:计算式private JTextField expText = new JTextField();//单行文本框// 第二行:计算结果,设初始值为0private JTextField resultText = new JTextField("0");private String num1="",num2="";//两个操作数:数1、数2private String fh=""; //运算符private double r; //计算结果// 构造方法public Calculator() {// 调用父类JFrame的构造函数,设置标题super("计算器");//设置各个按钮上的文字String[] keysValue= {"7","8","9","÷","4","5","6","×","1","2","3","-","0","CE","+","^","sin","cos","tan","=","sqrt","ln"};//设置各个按钮上的动作命令标识String[] actionCmd= {"7","8","9","÷","4","5","6","*","1","2","3","-","0","CE","+","^","sin","cos","tan","=","sqrt","ln"};//创建一个按钮数组JButton keys[]=new JButton[keysValue.length];Font font=new Font("宋体",Font.PLAIN,18);//设置计算式文本框的位置为(10,10),宽为:280,高为:40expText.setBounds(10, 10, 280, 40);expText.setFont(font);expText.setBackground(Color.white);expText.setEditable(false);// 计算式不能修改//设置计算结果文本框的大小resultText.setBounds(10, 50, 280, 40);resultText.setFont(font);resultText.setBackground(Color.white);resultText.setEditable(false);// 计算结果不能修改//设置计算结果文本框的对齐方式:右对齐resultText.setHorizontalAlignment(SwingConstants.RIGHT);// 设置窗口布局this.setLayout(null);//设置为null即为清空布局管理器this.add(expText);  // 将计算式文本框添加到窗口中this.add(resultText);// 将计算结果文本框添加到窗口中// 放置按钮int x=10,y=100;   for (int i=0;i<keysValue.length;i++) {keys[i]=new JButton();keys[i].setText(keysValue[i]);keys[i].setActionCommand(actionCmd[i]);keys[i].setBounds(x,y,70,45);//按钮的宽为70,高为45keys[i].setFont(font);if(x<=150) {x+=70;} else {x=10;y+=50;}this.add(keys[i]);//将每个按钮添加到窗口中}// 给每个按钮添加监听for (int i=0;i<keysValue.length;i++) {keys[i].addActionListener(this);}// 设置窗口大小this.setSize(310, 440);// 窗口大小不能修改this.setResizable(false);//设置窗口的相对位置,位于屏幕中央this.setLocationRelativeTo(null);//设置窗口的关闭操作:直接关闭this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setVisible(true); // 设置窗口可见}//计算功能public void result(String z) {if(z.equals("+"))r=Double.parseDouble(num1)+Double.parseDouble(num2);if(z.equals("-"))r=Double.parseDouble(num1)-Double.parseDouble(num2);if(z.equals("*"))r=Double.parseDouble(num1)*Double.parseDouble(num2);if(z.equals("÷"))r=Double.parseDouble(num1)/Double.parseDouble(num2);if(z.equals("sin"))r=Math.sin(Double.parseDouble(num1));if(z.equals("cos"))r=Math.cos(Double.parseDouble(num1));if(z.equals("tan"))r=Math.tan(Double.parseDouble(num1));if(z.equals("^"))r=Math.pow(Double.parseDouble(num1),Double.parseDouble(num2));if(z.equals("ln"))r=Math.log(Double.parseDouble(num1));if(z.equals("sqrt"))r=Math.sqrt(Double.parseDouble(num1));num1=Double.toString(r);//将结果显示在文本框resultText中resultText.setText(num1);//算完后将  数2  和  运算符  清空num2="";fh="";}//重写接口ActionListener里的抽象方法public void actionPerformed(ActionEvent e){//e.getActionCommand()得到的是组件对象上的字符串String cmd=e.getActionCommand();if(cmd.equals("0")||cmd.equals("1")||cmd.equals("2")||cmd.equals("3")||cmd.equals("4")||cmd.equals("5")||cmd.equals("6")||cmd.equals("7")||cmd.equals("8")||cmd.equals("9")) {if(fh.equals("")) {num1+=cmd;expText.setText(num1);}else { num2+=cmd;expText.setText(num1+fh+num2);}}//运算if(cmd.equals("+")) {if(fh!="")result(fh);//调用result函数计算结果,并将结果显示在文本框resultText中fh="+";//在计算式文本框中显示第一个数和符号expText.setText(num1+fh);}if(cmd.equals("-")) {if(fh!="")result(fh);fh="-";expText.setText(num1+fh);}if(cmd.equals("*")) {if(fh!="")result(fh);fh="*";expText.setText(num1+fh);}if(cmd.equals("÷")) {if(fh!="")result(fh);fh="÷";expText.setText(num1+fh);}if(cmd.equals("^")) {if(fh!="")result(fh);fh="^";expText.setText(num1+fh);}if(cmd.equals("sin")) {if(fh!="")result(fh);fh="sin";expText.setText(fh+num1);}if(cmd.equals("cos")) {if(fh!="")result(fh);fh="cos";expText.setText(fh+num1);}if(cmd.equals("tan")) {if(fh!="")result(fh);fh="tan";expText.setText(fh+num1);}if(cmd.equals("sqrt")) {if(fh!="")result(fh);fh="sqrt";expText.setText("√"+num1);}if(cmd.equals("ln")) {if(fh!="")result(fh);fh="ln";expText.setText(fh+num1);}if(cmd.equals("=")) {result(fh);}// "CE"键清空数据if(cmd.equals("CE")) {num1="";num2="";fh="";expText.setText("");resultText.setText("0");}}public static void main(String[] args) {// TODO Auto-generated method stubnew Calculator();}}

运行结果:

在这里插入图片描述


http://www.ppmy.cn/news/642805.html

相关文章

php 360,PHP之360网站安全检测!

//文件名&#xff1a;safe360.php //360网站安全检测 set_error_handler("customError",E_ERROR); function customError($errno, $errstr, $errfile, $errline) { echo "Error number: [$errno],error on line $errline in $errfile"; die(); } $getfilte…

360safe.php绕过,venom结合Metasploit绕过360安全卫士

原理&#xff1a;msfvenom是msfpayload和msfencode的结合体&#xff0c;利用msfvenom生成shellcode&#xff0c;venom生成工具使用了 一些 Veil-Evasion.py, unicorn.py, powersploit.py 等工具上的技术。但是venom 是基于 bash 编写的&#xff0c;而不是 基于 Python。相比 ve…

卸载掉360之后无法删除360safe文件夹解决办法!

卸载掉360之后无法删除360safe文件夹解决办法&#xff01; 问题是这样的&#xff1a; 选择“360safe”文件夹&#xff0c;右键选择“删除”&#xff0c;结果如下&#xff1a; 一开始觉得是360未卸载干净&#xff0c;比如“360主动防御模块”之类的&#xff01; 但是&#xff…

360 safe3.php源码,Safe3 Web漏洞扫描系统

Safe3 Web漏洞扫描系统 是保护伞网络推出的网站安全性检测工具&#xff0c;传统的方法往往依靠渗透测试(黑箱、白箱和灰箱测试)&#xff0c;这往往局限于测试人员的技术水准高低。 系统适用领域&#xff1a; 国内金融、证券、银行、电子政务、电子商务、教育、网游、综合行业门…

Safe360 BUG

清理使用痕迹 --> IE地址栏下拉列表&#xff0c;如果此时IE开着或以IE为内核的浏览器开着&#xff0c;则Safe360显示清理成功&#xff0c;但实际没有清理掉。 Safe360应该检测浏览器是否开启。 转载于:https://www.cnblogs.com/JeffYang/archive/2007/04/27/729809.html

360safe3.php讲解,Safe3的教程

热水器上 SAFE CARE 灯亮是什么意思 热水器上 SAFE CARE 灯亮的意思是&#xff1a;地线带电&#xff0c;应停止使用&#xff0c;拔掉电源&#xff0c;请专业人员处理。 SAFE 读法 英 [seɪf] 美 [seɪf] 1、adj.处境(或情况)安全;不损害(或危害)健康的;安全的;未受伤害(或未…

360 safe.php,防止网站被黑,增强网站安全文件:360_safe3.php-防SQL注入代码

这个方法非常有效&#xff0c;是360官方提供的解决方案&#xff0c;就是利用这个文件360_safe3.php来防止sql注入&#xff0c;进一步提升网站数据库安全。很多站长对这个网站安全看得非常重&#xff0c;这个SQL注入漏洞是非常之恨&#xff0c;如果用恨之入骨这个词来形容不足为…

360 safe.php,360safe/360webscan.php · 漫步者/quguoren - Gitee.com

webscan_error(); //引用配置文件 require_once(webscan_cache.php); //防护脚本版本号 define("WEBSCAN_VERSION", 0.1.2.6); //防护脚本MD5值 define("WEBSCAN_MD5", md5(file_get_contents(__FILE__))); //get拦截规则 $getfilter "\\<.>|&…