Java小应用程序:

package applet;

 

import java.applet.AudioClip;

import java.awt.BorderLayout;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.ItemEvent;

import java.awt.event.ItemListener;

 

import javax.swing.JApplet;

import javax.swing.JButton;

import javax.swing.JComboBox;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JTextField;

 

public class AppletCalculator extends JApplet implements ItemListener,ActionListener{

    

    //author:王晓勃

    //学号:100102060122

    

    //定义程序变量和对象

    JLabel name,id,result;

    JTextField text1,text2;

    JTextField number1,number2,number3;

    double nb1,nb2,nb3;

    JComboBox jcstyle; //列表框对象

    String[] style = new String[]{"+","-","*","/","%","1/x","sqrt"};

    AudioClip au; //音乐文件对象

    Image img;

    JButton start = new JButton("播放");

    JButton stop = new JButton("停止");

    JButton jbloop = new JButton("循环");

    JButton count = new JButton("计算");

    JButton mc = new JButton("清空");

    

    //初始化init()

    public void init(){

        //初始化对象

        img = getImage(getCodeBase(),"1.jpg");

        JPanel jp1 = new JPanel(); //定义面板jp1

        name = new JLabel("姓名:");        

        id = new JLabel("学号:");

        text1 = new JTextField("王晓勃",10);

        text1.setHorizontalAlignment(JTextField.CENTER); //设置文本对齐方式

        text1.setEnabled(false); //设置文本框不可编辑

        text2 = new JTextField("100102060122",10);

        text2.setHorizontalAlignment(JTextField.CENTER);

        text2.setEnabled(false);

        //把组件加入面板

        jp1.add(name);

        jp1.add(text1);

        jp1.add(id);        

        jp1.add(text2);

        
 

        //定义面板jp2

        JPanel jp2 = new JPanel();

        number1 = new JTextField("",5);

        number2 = new JTextField("",5);

        number3 = new JTextField("",5);

        number1.setHorizontalAlignment(JTextField.RIGHT);

        number2.setHorizontalAlignment(JTextField.RIGHT);

        number3.setHorizontalAlignment(JTextField.RIGHT);

        result = new JLabel("=");        

        jcstyle = new JComboBox(style); //为列表框添加选项数组

        //添加事件监听器

        count.addActionListener(this);

        mc.addActionListener(this);

        jcstyle.addItemListener(this);

        jp2.add(number1);

        jp2.add(jcstyle);

        jp2.add(number2);

        jp2.add(result);

        jp2.add(number3);        

        jp2.add(count);

        jp2.add(mc);

        
 

        //定义面板jp3

        JPanel jp3 = new JPanel();

        au = getAudioClip(getCodeBase(),"nan.wav");

        //添加事件监听器

        start.addActionListener(this);

        stop.addActionListener(this);

        jbloop.addActionListener(this);

        jp3.add(start);

        jp3.add(jbloop);

        jp3.add(stop);

        
 

        //设置布局管理器

        setLayout(new BorderLayout());

        add(BorderLayout.NORTH,jp1);

        add(BorderLayout.CENTER,jp2);

        add(BorderLayout.SOUTH,jp3);

        setSize(500,200);

        
 

        

    }

    

    //JComboBox事件处理函数

    public void itemStateChanged(ItemEvent e){

        if(e.getItem()=="1/x"){

            number2.setText("");

            number2.setEditable(false);

        }

        if(e.getItem()=="sqrt"){

            number2.setText("");

            number2.setEditable(false);

        }

        if(e.getItem()=="+"){

            number2.setEditable(true);

        }

        if(e.getItem()=="-"){

            number2.setEditable(true);

        }

        if(e.getItem()=="*"){

            number2.setEditable(true);

        }

        if(e.getItem()=="/"){

            number2.setEditable(true);

        }

        if(e.getItem()=="%"){

            number2.setEditable(true);

        }

    }

    

    //其他事件处理函数

    public void actionPerformed(ActionEvent e){

        JButton b = (JButton)e.getSource();

        
 

        if(b.equals(start))

        {

            au.play();

        }

        if(b.equals(jbloop)){

            au.loop();

        }

        if(b.equals(stop)){

            
 

            au.stop();

        }

        if(b.equals(mc)){

            number1.setText("");

            number2.setText("");

            number3.setText("");

        }

        if(b.equals(count)){

            try{

            if(jcstyle.getSelectedItem()=="+"){

                
 

                
 

                nb1 = Double.parseDouble(number1.getText());

                nb2 = Double.parseDouble(number2.getText());

                nb3 = nb1 + nb2;

                number3.setText(""+nb3);

                
 

                
 

            }

            if(jcstyle.getSelectedItem()=="-"){

                
 

                nb1 = Double.parseDouble(number1.getText());

                nb2 = Double.parseDouble(number2.getText());

                nb3 = nb1 - nb2;

                number3.setText(""+nb3);

            }

            if(jcstyle.getSelectedItem()=="*"){

                
 

                nb1 = Double.parseDouble(number1.getText());

                nb2 = Double.parseDouble(number2.getText());

                nb3 = nb1 * nb2;

                number3.setText(""+nb3);

            }

            if(jcstyle.getSelectedItem()=="/"){

                
 

                nb1 = Double.parseDouble(number1.getText());

                nb2 = Double.parseDouble(number2.getText());

                nb3 = nb1 / nb2;

                number3.setText(""+nb3);

            }

            if(jcstyle.getSelectedItem()=="%"){

                
 

                nb1 = Double.parseDouble(number1.getText());

                nb2 = Double.parseDouble(number2.getText());

                nb3 = nb1 % nb2;

                number3.setText(""+nb3);

            }

            if(jcstyle.getSelectedItem()=="1/x"){

                
 

                nb1 = Double.parseDouble(number1.getText());

                
 

                
 

                number3.setText(""+1/nb1);

            }

            if(jcstyle.getSelectedItem()=="sqrt"){

            
 

                nb1 = Double.parseDouble(number1.getText());

                
 

                
 

                number3.setText(""+Math.sqrt(nb1));

            }

            }

            catch(Exception ee){

                JOptionPane.showMessageDialog(null, "输入格式有误,请检查后重新输入!");

            }

            
 

        }

    }

    public void stop(){

        au.stop();

    }

    
 

    
 

    

 

}

Java小应用程序的更多相关文章

  1. 《java小应用程序(Applet)和java应用程序(Application)分别编写的简单计算器》

    Application和Java Applet的区别.Java语言是一种半编译半解释的语言.Java的用户程序分为两类:Java Application和Java Applet.这两类程序在组成结构和 ...

  2. 如何在浏览器网页中实现java小应用程序的功能

    我们知道,java语言的运用就是面向对象实现功能,和c不同,java语言对于程序员来说,运用起来更为简便. 小应用程序与应用程序不同,小应用程序只能在与Java兼容的容器中运行,可以嵌入在HTML网页 ...

  3. Java小应用程序Applet,画布上新建按钮和文本

    <pre name="code" class="java">package com.hx; import java.applet.*; import ...

  4. Java面试常见知识点总结(二)

    11.构造方法(构造器): 构造方法是一种特殊的方法,具有以下特点.    (1) 构造方法的方法名必须与类名相同.    (2) 构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类 ...

  5. java面试知识(来自牛客网)

    接口和抽象类的区别是什么? 接口和抽象类的区别是什么? Java提供和支持创建抽象类和接口.它们的实现有共同点,不同点在于:接口中所有的方法隐含的都是抽象的.而抽象类则可以同时包含抽象和非抽象的方法. ...

  6. java必备基础知识点

    Java基础 1. 简述Java的基本历史 java起源于SUN公司的一个GREEN的项目,其原先目的是:为家用消费电子产品发送一个信息的分布式代码系统,通过发送信息控制电视机.冰箱等 2. 简单写出 ...

  7. Java面试题总结(二)

    43.Java中的两种异常类型是什么?他们有什么区别? Java中有两种异常:受检查的(checked)异常和不受检查的(unchecked)异常.不受检查的异常不需要在方法或者是构造函数上声明,就算 ...

  8. 115个Java面试题和答案——终极列表(上)

    本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力.下面的章节分为上下两篇,第一篇将要讨论面向对象编程和它的特点,关于Java和它的功能 ...

  9. Java 和 Google Chrome 浏览器

    来源:https://java.com/zh_CN/download/faq/chrome.xml 本文适用于: 浏览器: Chrome Java 版本: 7.0, 8.0 Chrome 不再支持 N ...

随机推荐

  1. Android IOS WebRTC 音视频开发总结(九)-- webrtc入门001

    下面这篇介绍webrtc的文章不错,我花了大半天翻译了一下. 翻译的时候不是逐字逐句的,而是按照自己的理解翻译的,同时为了便于理解,也加入一些自己组织的语言. 本文主要介绍webrtc的信令,stun ...

  2. JavaScript高级 函数表达式 《JavaScript高级程序设计(第三版)》

    函数表达式的特征 使用函数实现递归 使用闭包定义私有变量 前面我们说到定义函数有两种方式:函数声明.函数表达式. 两者的区别在于函数声明提升,前者在执行之前的上下文环境中直接被赋值,而后者不会. 一. ...

  3. Oracle VM VirtualBox 设置本机与虚拟机共享文件

    文章转载自http://wenku.baidu.com/link?url=5uZ1xWnGC55FGW2XUqzLVdttRcik2xCqwRKEdh6z-nZJ63UQn3j2750ES_q4Oro ...

  4. [转]从两道经典试题谈C/C++中联合体(union)的使用

    宋宝华 21cnbao sweek@21cn.com 试题一:编写一段程序判断系统中的CPU是Little endian还是Big endian模式? 分析: 作为一个计算机相关专业的人,我们应该在计 ...

  5. 在PHP项目中使用Standford Moss代码查重系统

    Standford Moss 系统是斯坦福大学大名鼎鼎的代码查重系统,它可以查出哪些同学提交的代码是抄袭别人的,从而将提交结果拒之门外.它对一切希望使用该系统的人都是开放的,那么在PHP的项目中如何使 ...

  6. jquery 获取元素坐标

    不错哦! 原文地址:http://jianzhong5137.blog.163.com/blog/static/9829049201182295833503/ 绝对X,Y坐标,可以用offset()方 ...

  7. Cassandra 备份 - 1 - 节点镜像恢复

    之前比较关注如何使用Cassandra,但是真正想大规模使用前提还是需要搞清楚备份机制,确保数据安全. 本文主要内容来自文档 "Cassandra2.2"的翻译.最后部分为真实操作 ...

  8. WindowManager和WindowManager.LayoutParams的使用以及实现悬浮窗口的方法

    写Android程序的时候一般用WindowManager就是去获得屏幕的宽和高,来布局一些小的东西.基本上没有怎么看他的其他的接口. 这两天想写一个简单的类似于Toast的东西,自定义布局,突然发现 ...

  9. Oracle之Linux下核心参数

    kernel.shmmax 用于定义单个共享内存段的最大值: 建议一个大的共享内存段能容纳整个SGA,这样在任何时候都不会有性能下降的隐患: 建议:32位Linux 物理内存大于4G 的设置为4G 即 ...

  10. Python学习之静态页面数据抓取

    1 页面信息抓取 定义getPage函数,根据传入的页码get到整个页面的html内容 getContent函数,通过正则匹配把页面中的表格部分的html内容取出 最后定义getData函数,同样是通 ...