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

Posted 太自由

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《java小应用程序(Applet)和java应用程序(Application)分别编写的简单计算器》相关的知识,希望对你有一定的参考价值。

Application和Java Applet的区别。
Java语言是一种半编译半解释的语言。Java的用户程序分为两类:Java Application和Java Applet
这两类程序在组成结构和执行机制上都有一定的差异,主要体现在以下几方面:
(1)运行方式不同。Java Application是完整的程序,可以独立运行;Java Applet程序不能单独运行,
它必须嵌入到用html语言编写的Web页面中,通过与Java兼容的浏览器来控制执行。
(2)运行工具不同。Java Application程序被编译以后,用普通的Java解释器就可以使其边解释边执行,
而Java Applet必须通过网络浏览器或者Applet观察器才能执行。
(3)程序结构不同。每个Java Application程序必定含有一个并且只有一个main方法,程序执行时
首先寻找main方法,并以此为入口点开始运行。含有main方法的那个类,常被称为主类,也就是说
Java Application程序都含有一个主类。而Applet程序则没有含main方法的主类,这也正是Applet程序不能独立运行的原因。
尽管Applet没有含main方法的主类,但Applet一定有一个从 java.applet.Applet派生的类,它是由Java系统提供的。
(4)受到的限制不同Java Application程序可以设计成能进行各种操作的程序,包括读/写文件的操作
但是 Java Applet 对站点的磁盘文件既不能进行读操作,也不能进行写 操作。然而,由于Applet的引入
使Web页面具有动态多媒体效果和可交互性能,这使由名为超文本、实为纯文本的HTML语言编写成的Web页面真正具有了超文本功能
不但可以显示文本信息,而且还可以有各种图片效果和动态图形效果,从而使页面显得生动美丽;另外,Applet使Web页面增加了按钮等功能,从而增加了交互性。



1
//用Java小应用程序(Applet)编写一个简单的计算器。(Java语言程序设计教程 第二版 第173页 习题) 2 3 import java.applet.Applet; 4 import java.awt.TextField; 5 import java.awt.Checkbox; 6 import java.awt.CheckboxGroup; 7 import java.awt.Button; 8 import java.awt.event.ItemEvent; 9 import java.awt.event.ActionEvent; 10 import java.awt.event.ActionListener; 11 import java.awt.event.ItemListener; 12 13 public class Test1 extends Applet implements ActionListener,ItemListener 14 { 15 int n = 0; 16 TextField tf1 = new TextField(5); 17 Checkbox[] c = new Checkbox[4]; 18 CheckboxGroup cg = new CheckboxGroup(); 19 TextField tf2 = new TextField(5); 20 Button bt = new Button("等于"); 21 TextField tf3 = new TextField(10); 22 String[] str = {"+","-","*","/"}; 23 24 public void init(){ 25 this.add(tf1); 26 for(int i=0;i<str.length;i++){ 27 c[i] = new Checkbox(str[i],false,cg); 28 this.add(c[i]); 29 } 30 this.add(tf2); 31 this.add(bt); 32 this.add(tf3); 33 tf3.setEditable(false); 34 35 bt.addActionListener(this); 36 for(int i=0;i<str.length;i++){ 37 c[i].addItemListener(this); 38 } 39 } 40 41 public void itemStateChanged(ItemEvent e){ 42 String s = (String)e.getItem(); 43 for(int i=0;i<str.length;i++){ 44 if(s == str[i]){ 45 n = i; 46 } 47 } 48 } 49 public void actionPerformed(ActionEvent e){ 50 if(e.getSource() == bt){ 51 switch(n){ 52 case 0: 53 tf3.setText((Double.parseDouble(tf1.getText())) + (Double.parseDouble(tf2.getText()))+""); 54 break; 55 case 1: 56 tf3.setText((Double.parseDouble(tf1.getText()))-(Double.parseDouble(tf2.getText()))+""); 57 break; 58 case 2: 59 tf3.setText((Double.parseDouble(tf1.getText()))*(Double.parseDouble(tf2.getText()))+""); 60 break; 61 case 3: 62 tf3.setText((Double.parseDouble(tf1.getText()))/(Double.parseDouble(tf2.getText()))+""); 63 break; 64 } 65 } 66 } 67 } 68 69 //<applet code = Test1.class width = 400 height = 100></applet>

 

  1 //用Java应用程序(Application)编写一个简单的计算器。(Java语言程序设计教程 第二版 第173页 习题)
  2 //这个应用程序还可以添加菜单,以后慢慢添加完善.
  3 package myclass;
  4 
  5 import java.awt.Frame;
  6 import java.awt.TextField;
  7 import java.awt.Checkbox;
  8 import java.awt.CheckboxGroup;
  9 import java.awt.Button;
 10 import java.awt.event.ActionListener;
 11 import java.awt.event.ActionEvent;
 12 import java.awt.event.ItemListener;
 13 import java.awt.event.ItemEvent;
 14 import java.awt.event.WindowAdapter;
 15 import java.awt.event.WindowEvent;
 16 import java.awt.FlowLayout;
 17 
 18 public class Test2 
 19 {
 20     int n = 0;//定义一个全局变量。
 21     private Frame f;
 22     private TextField tf1;
 23     private Checkbox[] c;
 24     private CheckboxGroup cg;
 25     private TextField tf2;
 26     private Button bt;
 27     private TextField tf3;
 28     String[] str = {"+","-","*","/"};
 29 
 30     public Test2(){
 31         init();
 32         addEvents();
 33     }
 34 
 35     public void init(){
 36         f = new Frame("计算器");
 37         f.setLayout(new FlowLayout());
 38         //f.setBounds(600,100,400,200);
 39         tf1 = new TextField(5);
 40         f.add(tf1);
 41         c = new Checkbox[4];
 42         for(int i=0;i<str.length;i++){
 43             c[i] = new Checkbox(str[i],false,cg);
 44                 f.add(c[i]);
 45         }
 46         tf2 = new TextField(5);
 47         f.add(tf2);
 48         bt = new Button("等于");
 49         f.add(bt);
 50         tf3 = new TextField(10);
 51         f.add(tf3);
 52         tf3.setEditable(false);
 53         f.pack();
 54         f.setVisible(true);
 55     }
 56 
 57     public void addEvents(){
 58 
 59         f.addWindowListener(new WindowAdapter(){
 60             public void windowClosing(WindowEvent e){
 61                 System.exit(0);
 62             }
 63         });
 64 
 65 
 66         //为复选框组件添加事件监听器.
 67         for(int i=0;i<str.length;i++){
 68             c[i].addItemListener(new ItemListener(){
 69                 public void itemStateChanged(ItemEvent e){
 70                     String st = (String)e.getItem();
 71                     for(int i=0;i<str.length;i++){
 72                         if(st == str[i])
 73                             n = i;
 74                     }
 75                 }
 76             });
 77         }
 78 
 79         //为按钮天剑事件监听器.
 80         bt.addActionListener(new ActionListener(){
 81             public void actionPerformed(ActionEvent e){
 82                 if(e.getSource() == bt){
 83                     switch(n){
 84                         case 0:
 85                             tf3.setText((Double.parseDouble(tf1.getText())) + (Double.parseDouble(tf2.getText())) + "");
 86                             break;
 87                         case 1:
 88                             tf3.setText((Double.parseDouble(tf1.getText()))-(Double.parseDouble(tf2.getText()))+"");
 89                             break;
 90                         case 2:
 91                             tf3.setText((Double.parseDouble(tf1.getText()))*(Double.parseDouble(tf2.getText()))+"");
 92                             break;
 93                         case 3:
 94                             tf3.setText((Double.parseDouble(tf1.getText()))/(Double.parseDouble(tf2.getText()))+"");
 95                             break;
 96                     }
 97                 }
 98             }
 99         });
100     }
101     public static void main(String[] args) 
102     {
103         new Test2();
104     }
105 }

 

Application和Java Applet的区别。
Java语言是一种半编译半解释的语言。Java的用户程序分为两类:Java Application和Java Applet。
这两类程序在组成结构和执行机制上都有一定的差异,主要体现在以下几方面:
(1)运行方式不同。Java Application是完整的程序,可以独立运行;Java Applet程序不能单独运行,
它必须嵌入到用HTML语言编写的Web页面中,通过与Java兼容的浏览器来控制执行。
(2)运行工具不同。Java Application程序被编译以后,用普通的Java解释器就可以使其边解释边执行,
而Java Applet必须通过网络浏览器或者Applet观察器才能执行。
(3)程序结构不同。每个Java Application程序必定含有一个并且只有一个main方法,程序执行时
首先寻找main方法,并以此为入口点开始运行。含有main方法的那个类,常被称为主类,也就是说
Java Application程序都含有一个主类。而Applet程序则没有含main方法的主类,这也正是Applet程序不能独立运行的原因。
尽管Applet没有含main方法的主类,但Applet一定有一个从 java.applet.Applet派生的类,它是由Java系统提供的。
(4)受到的限制不同Java Application程序可以设计成能进行各种操作的程序,包括读/写文件的操作
但是 Java Applet 对站点的磁盘文件既不能进行读操作,也不能进行写 操作。然而,由于Applet的引入
使Web页面具有动态多媒体效果和可交互性能,这使由名为超文本、实为纯文本的HTML语言编写成的Web页面真正具有了超文本功能
不但可以显示文本信息,而且还可以有各种图片效果和动态图形效果,从而使页面显得生动美丽;另外,Applet使Web页面增加了按钮等功能,从而增加了交互性。

以上是关于《java小应用程序(Applet)和java应用程序(Application)分别编写的简单计算器》的主要内容,如果未能解决你的问题,请参考以下文章

java 5周 applet

Java ee第五周作业

将Applet应用程序迁移到Java 11

Java EE开发技术课程第五周(Applet程序组件与AJAX技术)

Java 11 迁移上的 Applet/JNLP

Applet和Ajax