博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java swing 计算器
阅读量:4608 次
发布时间:2019-06-09

本文共 5636 字,大约阅读时间需要 18 分钟。

简易计算器(可用)

package com.wt010.enjoy;    import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.Font;import java.awt.GridLayout;import java.awt.Image;import java.awt.Toolkit;import java.awt.event.ActionEvent;  import java.awt.event.ActionListener;  import java.awt.event.KeyAdapter;  import java.awt.event.KeyEvent;import javax.swing.ImageIcon;import javax.swing.JButton;  import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;  import javax.swing.JTextField;    public class Calculator extends JFrame {            public static void main(String[] args) {          // Create application frame.          Calculator frame = new Calculator();                    frame.setTitle("Calculator");          frame.setSize(240, 320);          frame.setResizable(false);          frame.setDefaultCloseOperation(EXIT_ON_CLOSE);          frame.setLocationRelativeTo(null);                  frame.init();                //更改默认java图标        Toolkit tk= Toolkit.getDefaultToolkit();        Image image=tk.createImage("images/b.jpg");        frame.setIconImage(image);        // Show frame          frame.setVisible(true);                      }            private void init()       {          textField = new JTextField();             textField.setEditable(false);          textField.setHorizontalAlignment (JTextField.RIGHT);          JPanel panel = new JPanel();          panel.setLayout(new GridLayout(4, 4));                  ImageIcon img =new ImageIcon("images/a.jpg");               JLabel label=new JLabel("sdfsdf");         label.setIcon(img);        textField.setBackground(Color.blue);        textField.setFont(new Font("黑体",Font.BOLD,19));        textField.setForeground(Color.WHITE);        Container container = getContentPane();          container.add(textField, BorderLayout.NORTH);          //container.add(label, BorderLayout.NORTH);        container.add(panel, BorderLayout.CENTER);                    panel.add(useButton('7'));          panel.add(useButton('8'));          panel.add(useButton('9'));          panel.add(useButton('+'));          panel.add(useButton('4'));          panel.add(useButton('5'));          panel.add(useButton('6'));          panel.add(useButton('-'));          panel.add(useButton('1'));          panel.add(useButton('2'));          panel.add(useButton('3'));          panel.add(useButton('*'));          panel.add(useButton('0'));          panel.add(useButton('.'));          panel.add(useButton('='));          panel.add(useButton('/'));      }            public JButton useButton (final char key)       {          JButton button = new JButton(String.valueOf(key));                    button.addActionListener(new ActionListener()          {              public void actionPerformed(ActionEvent event)              {                  JButton btn = (JButton) event.getSource();                  char key2 = btn.getText().charAt(0);                                    action(key2);              }          });          button.addKeyListener(new KeyAdapter()          {              public void keyReleased(KeyEvent event)              {                  char key2 = event.getKeyChar ();                                    //if(key2 != key)                    //  return;                                    action(key2);              }          });                    return button;      }            private void action(char key2)      {          if(reop)          {              textField.setText("");              reop = false;          }                    switch(key2)          {              case '+':                  v1 = Double.parseDouble(textField.getText());                  textField.setText("");                  operator = '+';                  break;              case '-':                  v1 = Double.parseDouble(textField.getText());                  textField.setText("");                  operator = '-';                  break;              case '*':                  v1 = Double.parseDouble(textField.getText());                  textField.setText("");                  operator = '*';                  break;              case '/':                  v1 = Double.parseDouble(textField.getText());                  textField.setText("");                  operator = '/';                  break;              case '=':                  reop = true;                  v2 = Double.parseDouble(textField.getText());                  switch(operator)                  {                      case '+':                          value = v1 + v2;                          break;                      case '-':                          value = v1 - v2;                          break;                      case '*':                          value = v1 * v2;                          break;                      case '/':                          value = v1 / v2;                          break;                      default: ;                  }                  textField.setText(String.valueOf(value));                  break;              case '1':              case '2':              case '3':              case '4':              case '5':              case '6':              case '7':              case '8':              case '9':              case '0':              case '.':                  String text = textField.getText() + key2;                  textField.setText(text);                  break;              default: ;          }      }      private JTextField textField;      private double v1, v2, value;      private char operator;      private boolean reop = false;  }

 

转载于:https://www.cnblogs.com/phpdo100/p/8297885.html

你可能感兴趣的文章
Emacs学习笔记(13):在Emacs中打开pdf
查看>>
flask模板应用-空白控制 --
查看>>
学习过程笔记 7月上
查看>>
ASP.NET WebAPI String 传值问题
查看>>
【2017-3-1】冒泡排序
查看>>
[转载]后缀数组算法总结
查看>>
pandas数据结构练习题(部分)
查看>>
NOI2016 区间 【线段树】
查看>>
第二阶段团队绩效评估
查看>>
.net第三方数据库物理卡号同步功能实现
查看>>
机器学习02_逻辑回归作业(附加)
查看>>
zstu.4189: 逻辑运算(构建 && 前缀表达式入门)
查看>>
iOS中常见的自定义宏
查看>>
Android中Context详解 ---- 你所不知道的Context
查看>>
8.存储过程和触发器
查看>>
NOIP模拟题——LGTB与桌子
查看>>
64位Navicat Premium安装/破解【含资源】
查看>>
事件查看器常见ID代码解释
查看>>
使用mdf和ldf附加还原SQL Server数据文件
查看>>
python函数
查看>>