当前位置: 首页 > news >正文

怎么选择宜昌网站建设免费直播网站

怎么选择宜昌网站建设,免费直播网站,深圳软件公司扶持政策,推广软件app赚钱联盟【案例11-2】 简易计算器 【案例介绍】 1.案例描述 本案例要求利用Java Swing 图形组件开发一个可以进行简单的四则运算的图形化计算器。 2.运行结果 运行结果 【案例分析】 要制作一个计算器#xff0c;首先要知道它由哪些部分组成#xff0c;如下图所示#xff1a; 一…【案例11-2】 简易计算器 【案例介绍】 1.案例描述 本案例要求利用Java Swing 图形组件开发一个可以进行简单的四则运算的图形化计算器。 2.运行结果 运行结果 【案例分析】 要制作一个计算器首先要知道它由哪些部分组成如下图所示 一个简单的图形化界面计算器需要由界面组件、组件的时间监听器和具体的事件处理逻辑组成。 实现一个简易图形化界面计算器可分以下几个步骤 1.UI组件创建和初始化包括窗体的创建显示计算结果文本框、清除按钮、数字按钮、运算符等按钮的初始化。 2.在窗体中添加UI组件包括放置数字键及运算符面板、放置清除框面板。 3.布局结束之后就是计算器的难点编写事件处理程序。 4.按键的响应实现。 5.计算逻辑的实现。 6.注册监听器 【案例实现】 Calculator.java package chapter1102;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.Vector;import java.math.BigDecimal;public class Calculator {          // 操作数1为了程序的安全初值一定设置这里我们设置为0。           String str1 0;          // 操作数2     String str2 0;      // 运算符    String signal ;        // 运算结果    String result ;     // 以下k1至k5为状态开关     // 开关1用于选择输入方向将要写入str1或str2     // 为 1 时写入 str1为 2 时写入 str2    int k1 1;    // 开关 2 用于记录符号键的次数     // 如果 k21 说明进行的是 23-98 这样的多符号运算    int k2 1;     // 开关3用于标识 str1 是否可以被清 0      // 等于 1 时可以不等于1时不能被清0    int k3 1;     // 开关4用于标识 str2 是否可以被清 0     // 等于 1 时可以不等于1时不能被清0    int k4 1;     // 开关5用于控制小数点可否被录入     // 等于1时可以不为1时输入的小数点被丢掉    int k5 1;     // store的作用类似于寄存器用于记录是否连续按下符号键    JButton store;      //vt 存储之前输入的运算符。    SuppressWarnings(rawtypes)    Vector vt new Vector(20, 10);     // 创建一个 JFrame 对象并初始化。JFrame 可以理解为程序的主窗体。        JFrame frame new JFrame(Calculator); //创建一个JTextField对象并初始化。JTextField用于显示操作和计算结果的文本框。     // 参数 20 表明可以显示 20 列的文本内容    JTextField result_TextField new JTextField(result, 20);     // 清除按钮    JButton clear_Button new JButton(Clear);     // 数字键0到9    JButton button0 new JButton(0);    JButton button1 new JButton(1);    JButton button2 new JButton(2);    JButton button3 new JButton(3);    JButton button4 new JButton(4);    JButton button5 new JButton(5);    JButton button6 new JButton(6);    JButton button7 new JButton(7);    JButton button8 new JButton(8);    JButton button9 new JButton(9);     // 计算命令按钮加减乘除以及小数点等    JButton button_Dian new JButton(.);    JButton button_jia new JButton();    JButton button_jian new JButton(-);    JButton button_cheng new JButton(*);    JButton button_chu new JButton(/);    JButton button_dy new JButton();    public Calculator() {        button0.setMnemonic(KeyEvent.VK_0);    result_TextField.setHorizontalAlignment(JTextField.RIGHT);        // 创建一个 Jpanel 对象并初始化         JPanel pan new JPanel();         // 设置该容器的布局为四行四列边距为5像素        pan.setLayout(new GridLayout(4, 4, 5, 5));         // 将用于计算的按钮添加到容器内        pan.add(button7);        pan.add(button8);        pan.add(button9);        pan.add(button_chu);        pan.add(button4);        pan.add(button5);        pan.add(button6);        pan.add(button_cheng);        pan.add(button1);        pan.add(button2);        pan.add(button3);        pan.add(button_jian);         pan.add(button0);        pan.add(button_Dian);        pan.add(button_dy);        pan.add(button_jia);         // 设置 pan 对象的边距        pan.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));         // 按照同样的方式设置第二个JPanel        JPanel pan2 new JPanel();        pan2.setLayout(new BorderLayout());        pan2.add(result_TextField, BorderLayout.WEST);        pan2.add(clear_Button, BorderLayout.EAST);          // 设置主窗口出现在屏幕上的位置        frame.setLocation(300, 200);         // 设置窗体可以调大小        frame.setResizable(true);          //窗体中可以放置 JPanel这里我们将面板pan和面板pan2让如窗体        frame.getContentPane().setLayout(new BorderLayout());        frame.getContentPane().add(pan2, BorderLayout.NORTH);        frame.getContentPane().add(pan, BorderLayout.CENTER);        frame.pack();        frame.setVisible(true);         //Listener类中编写的是数字键的响应逻辑。        class Listener implements ActionListener {           SuppressWarnings(unchecked)           public void actionPerformed(ActionEvent e) {               String ss ((JButton) e.getSource()).getText();               store (JButton) e.getSource();               vt.add(store);               if (k1 1) {                   if (k3 1) {                       str1 ;                       k5 1;                   }                   str1 str1 ss;                   k3 k3 1;                   result_TextField.setText(str1);               } else if (k1 2) {                   if (k4 1) {                       str2 ;                       k5 1;                }                   str2 str2 ss;                   k4 k4 1;                   result_TextField.setText(str2);               }                                         }        }          //Listener_signal类中编写了运算符号键的响应逻辑        class Listener_signal implements ActionListener {           SuppressWarnings(unchecked)           public void actionPerformed(ActionEvent e) {               String ss2 ((JButton) e.getSource()).getText();               store (JButton) e.getSource();               vt.add(store);               if (k2 1) {                   k1 2;                   k5 1;                   signal ss2;                   k2 k2 1;               } else {                   int a vt.size();                   JButton c (JButton) vt.get(a - 2);                   if (!(c.getText().equals())                           !(c.getText().equals(-))                           !(c.getText().equals(*))                           !(c.getText().equals(/)))                   {                       cal();                       str1 result;                       k1 2;                       k5 1;                       k4 1;                       signal ss2;                   }                   k2 k2 1;               }           }        }     //Listener_clear类中编写了清除键的响应逻辑    class Listener_clear implements ActionListener {           SuppressWarnings(unchecked)           public void actionPerformed(ActionEvent e) {               store (JButton) e.getSource();               vt.add(store);               k5 1;               k2 1;               k1 1;               k3 1;               k4 1;               str1 0;               str2 0;               signal ;               result ;               result_TextField.setText(result);               vt.clear();           }        }     //Listener_dy类中编写的是等于号键的响应逻辑    class Listener_dy implements ActionListener {           SuppressWarnings(unchecked)           public void actionPerformed(ActionEvent e) {               store (JButton) e.getSource();               vt.add(store);               cal();               k1 1;                k2 1;               k3 1;               k4 1;               str1 result;            }        }//Listener_xiaos类中编写的是小数点键的相应逻辑class Listener_xiaos implements ActionListener {           SuppressWarnings(unchecked)           public void actionPerformed(ActionEvent e) {               store (JButton) e.getSource();               vt.add(store);               if (k5 1) {                   String ss2 ((JButton) e.getSource()).getText();                   if (k1 1) {                       if (k3 1) {                           str1 ;                           k5 1;                        }                       str1 str1 ss2;                       k3 k3 1;                       result_TextField.setText(str1);                   } else if (k1 2) {                       if (k4 1) {                           str2 ;                           k5 1;                       }                       str2 str2 ss2;                       k4 k4 1;                       result_TextField.setText(str2);                   }               }               k5 k5 1;           }        }          // 监听等于键        Listener_dy jt_dy new Listener_dy();         // 监听数字键        Listener jt new Listener();         // 监听符号键        Listener_signal jt_signal new Listener_signal();         // 监听清除键        Listener_clear jt_c new Listener_clear();          // 监听小数点键        Listener_xiaos jt_xs new Listener_xiaos();        button7.addActionListener(jt);        button8.addActionListener(jt);        button9.addActionListener(jt);        button_chu.addActionListener(jt_signal);        button4.addActionListener(jt);        button5.addActionListener(jt);        button6.addActionListener(jt);        button_cheng.addActionListener(jt_signal);        button1.addActionListener(jt);        button2.addActionListener(jt);        button3.addActionListener(jt);        button_jian.addActionListener(jt_signal);        button0.addActionListener(jt);        button_Dian.addActionListener(jt_xs);        button_dy.addActionListener(jt_dy);        button_jia.addActionListener(jt_signal);        clear_Button.addActionListener(jt_c);          // 窗体关闭事件的响应程序        frame.addWindowListener(new WindowAdapter() {           public void windowClosing(WindowEvent e) {               System.exit(0);           }        });    }     // calc()方法中编写了计算逻辑的实现。    public void cal() {        double a2;        double b2;        String c signal;        double result2 0;        if (c.equals()) {           result_TextField.setText(Please input operator);        } else {           if (str1.equals(.))               str1 0.0;           if (str2.equals(.))               str2 0.0;           a2 Double.valueOf(str1).doubleValue();           b2 Double.valueOf(str2).doubleValue();           if (c.equals()) {               result2 a2 b2;           }           if (c.equals(-)) {               result2 a2 - b2;           }           if (c.equals(*)) {               BigDecimal m1 new BigDecimal(Double.toString(a2));                   BigDecimal m2 new                                    BigDecimal(Double.toString(b2));                   result2 m1.multiply(m2).doubleValue();           }           if (c.equals(/)) {               if (b2 0) {                   result2 0;               } else {                   result2 a2 / b2;               }           }           result ((new Double(result2)).toString());           result_TextField.setText(result);        }    }    SuppressWarnings(unused)    public static void main(String[] args) {    try {    //通过 UIManager 来设置窗体的 UI 风格 UIManager.setLookAndFeel(javax.swing.plaf.metal.MetalLookAndFeel);        } catch (Exception e) {           e.printStackTrace();        }        Calculator cal new Calculator();    }} 上述代码中第7-32行代码定义了一些成员变量方便响应的逻辑实现。第34-35行代码创建了一个Vector对象存储之前输入的运算符。第37行代码创建了一个 JFrame 对象并初始化。JFrame 可以理解为程序的主窗体。第40行代码创建了一个JTextField对象并初始化。JTextField用于显示操作和计算结果的文本框。参数 20 表明可以显示 20 列的文本内容。第42行代码创建了一个清除按钮对象。第44-53行创建数字键0-9按钮对象。第55-60行创建计算命令按钮加减乘除以及小数点等按钮对象。第65-101行代码是对计算器进行布局。Listener类中编写的是数字键的响应逻辑。Listener_xiaos类中编写的是小数点键的相应逻辑。Listener_signal类中编写了运算符号键的响应逻辑。Listener_dy类中编写的是等于号键的响应逻辑。Listener_clear类中编写了清除键的响应逻辑。calc()方法中编写了计算逻辑的实现。第222-247行代码创建监听对象斌对各个按键进行监听。第249-253行代码为窗体关闭事件的响应程序。第297行代码通过 UIManager 来设置窗体的 UI 风格。
http://www.dnsts.com.cn/news/28470.html

相关文章:

  • 做网站都有哪些软件wordpress 功能开发
  • 医药企业网站设计制作下载wordpress程序
  • 长春网站建设案例网站的根目录下是哪个文件夹
  • 宽屏网站ui培训课程
  • 成都建网站多少钱高校里做网站的工作
  • 大连网站建设招标微信crm软件
  • 做网站客户wordpress 查询 分页
  • 国内免费plm百度seo排名优化软件
  • 一个网站绑定两个域名wordpress cdn无作用
  • 网站建设培训班上的讲话企业网站建设应具备的功能
  • 园林工建设有限公司网站建e网室内设计网背景墙
  • ppt模板网站大全哈尔滨网站建设教程
  • 建设网站条件东莞房产信息网
  • 商丘网站建设商丘佛山网站建设zingup
  • 动画型网站深圳品牌网站设计格
  • 商城网站设计定制百度收录最快网站
  • 班级网站设计素材淄博网站的建设
  • 网站商城前台模板免费下载做门户网站建设多少钱
  • 快三彩票网站开发聊城做网站的公司市场
  • 注册网站怎么注册不了wordpress 管理界面
  • 太原网站建设名录海南省建设工程质量安全检测协会网站
  • 网站建设中的英文单词电商wordpress和thinkphp
  • 怎么做网站数据分析辽宁建设工程信息网专家名单
  • 购物网站开发需求新鸿儒网站
  • 网站为什么没有排名了w7系统那个网站做的好
  • 南昌专业做网站公司哪家好Wordpress用户名是哪个
  • 建个地方门户网站要多少钱驻马店建设网站
  • 昆明网站建设的公司云南省工程建设信息网站
  • 湖南网站推广建设公司网店推广的目的
  • 顺德做网站那家好唐山市住房城乡建设局网站