Java小应用程序
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小应用程序的更多相关文章
- 《java小应用程序(Applet)和java应用程序(Application)分别编写的简单计算器》
Application和Java Applet的区别.Java语言是一种半编译半解释的语言.Java的用户程序分为两类:Java Application和Java Applet.这两类程序在组成结构和 ...
- 如何在浏览器网页中实现java小应用程序的功能
我们知道,java语言的运用就是面向对象实现功能,和c不同,java语言对于程序员来说,运用起来更为简便. 小应用程序与应用程序不同,小应用程序只能在与Java兼容的容器中运行,可以嵌入在HTML网页 ...
- Java小应用程序Applet,画布上新建按钮和文本
<pre name="code" class="java">package com.hx; import java.applet.*; import ...
- Java面试常见知识点总结(二)
11.构造方法(构造器): 构造方法是一种特殊的方法,具有以下特点. (1) 构造方法的方法名必须与类名相同. (2) 构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类 ...
- java面试知识(来自牛客网)
接口和抽象类的区别是什么? 接口和抽象类的区别是什么? Java提供和支持创建抽象类和接口.它们的实现有共同点,不同点在于:接口中所有的方法隐含的都是抽象的.而抽象类则可以同时包含抽象和非抽象的方法. ...
- java必备基础知识点
Java基础 1. 简述Java的基本历史 java起源于SUN公司的一个GREEN的项目,其原先目的是:为家用消费电子产品发送一个信息的分布式代码系统,通过发送信息控制电视机.冰箱等 2. 简单写出 ...
- Java面试题总结(二)
43.Java中的两种异常类型是什么?他们有什么区别? Java中有两种异常:受检查的(checked)异常和不受检查的(unchecked)异常.不受检查的异常不需要在方法或者是构造函数上声明,就算 ...
- 115个Java面试题和答案——终极列表(上)
本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力.下面的章节分为上下两篇,第一篇将要讨论面向对象编程和它的特点,关于Java和它的功能 ...
- Java 和 Google Chrome 浏览器
来源:https://java.com/zh_CN/download/faq/chrome.xml 本文适用于: 浏览器: Chrome Java 版本: 7.0, 8.0 Chrome 不再支持 N ...
随机推荐
- Solaris的vi
进入输入模式i: 在光标之前插入a: 在光标之后插入o: 在下面新建一行输入I: 光标移动到本行首插入A: 光标移动到本行末尾插入O: 在上面新建一行输入 移动光标M:移到屏幕中间一行的行首L:移到屏 ...
- 个人博客实现Archives查询小记
这两天正在做博客,刚刚遇到一个问题,就是需要在主页实现文档分类功能,即通过日期将文章进行按日期进行分类. 比如这样的: 我个人的想法是,查询所有文章的日期,然后将日期进行格式化,只留下年份和月份,然后 ...
- Hbase Interface HConnection
HTablePool 在Hbase 0.94.0.95.0.97被废弃,在0.98中被清除( HTablePool 对比HConnection.getTable),hbase0.98 HTablePo ...
- AeroSpike 资料
文档总览:http://www.aerospike.com/docs/ JAVA AeroSpike知识总览:http://www.aerospike.com/docs/client/java/sta ...
- Nginx Location匹配举例
1.location / { if (!-f $request_filename){ rewrite ^/(.+)$ /uri.php last; }} ...
- python网络画图——networkX
networkX tutorial 绘制基本网络图 用matplotlib绘制网络图 基本流程: 1. 导入networkx,matplotlib包 2. 建立网络 3. 绘制网络 nx.draw() ...
- Python脚本控制的WebDriver 常用操作 <九> 定位一组对象
下面将使用WebDriver来模拟操作定位一组对象的操作 测试用例场景 从上一节的例子中可以看出,webdriver可以很方便的使用find_element方法来定位某个特定的对象,不过有时候我们却需 ...
- Python学习教程(learning Python)--3.3 分支语句的条件表达式详解
本节主要讨论分支语句的条件表达式问题. 在if或者if-else分支控制语句里由于都用到条件判断(表达式是真还是假),条件判断可以是一种关系运算也可以是布尔表达式. 本节将对if及if-else语句的 ...
- openSUSE13.1安装搜狗输入法 for Linux
一句话总结:爽死我了!什么叫输入的快感终于体会到了,搜狗输入法,码农的好伙伴!!! 转自openSUSE论坛 女王陛下 https://forum.suse.org.cn/viewtopic.php? ...
- Github上LeakCanary编译报错CreateProcess error=2的解决方法
现象说明: 从github上拉下LeakCanary编译时报错 CreateProcess error=2, ϵͳÕҲ»µ½ָ¶ 原因分析: 该现象是由于Windows中Gradle调用命令未加cmd ...