我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

计数器java源代码 Java计数

求JAVA做的计算器完整代码,Applet实现。

下面两个可以么,是我做实验答辩时用到的!

创新互联建站成立于2013年,我们提供高端重庆网站建设公司成都网站制作成都网站设计、网站定制、全网营销推广微信小程序开发、微信公众号开发、seo优化排名服务,提供专业营销思路、内容策划、视觉设计、程序开发来完成项目落地,为成都iso认证企业提供源源不断的流量和订单咨询。

import java.awt.*;//AWT核心包

import java.awt.event.*;//提供事件类和监听器

public class Counter extends Frame implements ActionListener

{

TextField t=new TextField("");//文本框

Panel p1=new Panel();//new一个panel,用于存放数字键和符号键。

Panel p2=new Panel();//new一个panel,用于存放开方、平方、和清除键。

Button[] b=new Button[10];//实例化Button对象

Button bAdd=new Button("加");

Button bSub=new Button("减");

Button bMul=new Button("乘以");

Button bPoint=new Button(".");

Button bDiv=new Button("除以");

Button bEqual=new Button("等於");

Button bSqrt=new Button("开方");

Button bPow=new Button("平方");

Button bNull=new Button("清除");

String str1="";     //str1和str2存放两个输入的数

String str2="";

String operator=null;   //存放加减乘除以及开平方的符号

boolean first=true;    //检验输入的是否为第一个数

int countOper=0;    //累计输入符号的个数,连加连减等操作中会用到

double result=0.0;    //暂存结果

double num1=0.0,num2=0.0;  //两个输入的数做运算时转化为double存放

boolean error=false;   //检验除数是否为0

//构造方法

public Counter()

{

Frame s=new Frame("计算器");//创建Frame

for(int i=0;i10;i++)//利用for循环将数字键添加进p1中

{

b[i]=new Button(String.valueOf(i));

p1.add(b[i]);

b[i].setActionCommand("number");

b[i].setForeground(new Color(150,20,20));

b[i].addActionListener(this);//调用addActionListener()方法注册事件监听器

}

p1.add(bPoint);

bPoint.setActionCommand("number");

p1.add(bAdd); //数字键,符号键放置在panel的p1中

p1.add(bSub);

p1.add(bMul);

p1.add(bDiv);

p1.add(bEqual);

p2.add(bSqrt);//开方键,平方键,清除键放置在panel的p2中

p2.add(bPow);

p2.add(bNull);

bAdd.setActionCommand("oper");

bSub.setActionCommand("oper");

bMul.setActionCommand("oper");

bDiv.setActionCommand("oper");

bAdd.setForeground(Color.red);//为组键设计颜色

bSub.setForeground(Color.red);

bMul.setForeground(Color.red);

bDiv.setForeground(Color.red);

bPoint.setForeground(Color.black);

bEqual.setForeground(Color.red);

bSqrt.setForeground(Color.blue);

bPow.setForeground(Color.blue);

bNull.setForeground(Color.blue);

bAdd.addActionListener(this);//调用addActionListener()方法注册事件监听器

bSub.addActionListener(this);

bMul.addActionListener(this);

bDiv.addActionListener(this);

bPoint.addActionListener(this);

bEqual.addActionListener(this);

bSqrt.addActionListener(this);

bPow.addActionListener(this);

bNull.addActionListener(this);

p1.setLayout(new GridLayout(4,4,5,5));//网格布局管理器,把容器根据行数和列数分成同样大小的单元,

//每个单元可容纳一个组件,并且此组件会填满网格单元,不能控

//制其占据网格的大小。4、4为网格的行、列数。5、5为组建之间的

//间距

p2.setLayout(new FlowLayout());//用FlowLayout布局管理器将组建默认剧中排放,默认间隙为5个像素

add(t,"North");      //frame的north放置输入框,panel放置在center和south

add(p1,"Center");//将p1添加到Center中

add(p2,"South");//将p2添加到South中

setLocation(400,200);//设计按钮尺寸

setSize(200,200);//设计窗口尺寸

setBackground(new Color(20,200,10));//设置Frame的背景,默认为白色

setVisible(true);//设置Frame设置为可见

addWindowListener(new WindowAdapter(){   //关闭窗口功能

public void windowClosing(WindowEvent e)

{

System.exit(0);

}

});

}

//实现接口ActionListener

public void actionPerformed(ActionEvent e)

{

Button temp=(Button)e.getSource();

if(e.getActionCommand().equals("number"))

{

if(first)

{

str1=str1+temp.getLabel();

t.setText(str1);//将输入的str1显示在文本框中

}

else

{

str2=str2+temp.getLabel();

t.setText(str2);//将输入的str2显示在文本框中

}

}

else if(e.getActionCommand().equals("oper"))

{

if(str1=="")    //如果还没有输入数就点击运算符执行if

{

countOper=0;//若此,则将计数清零

first=true;

}

else

{

countOper++;//计算输入符号的个数

if(countOper1)//若输入的符号个数多余一个,则可以进行计算

{

getResult();

}

operator=temp.getLabel();//存放加减乘除以及开方、平方的符号

first=false;

}

}

else if(e.getActionCommand().equals("开方"))

{

double d=Math.sqrt(Double.parseDouble(str1));

str1=String.valueOf(d);//将计算出来的结果再次传给str1,为连计算准备

t.setText(String.valueOf(d));//将计算出来的结果传至文本框中

first=false;//置为false,即已输入第一个数

}

else if(e.getActionCommand().equals("平方"))

{

double f=Math.pow(Double.parseDouble(str1),2);

str1=String.valueOf(f);

t.setText(String.valueOf(f));

first=false;

}

else if(e.getActionCommand().equals("清除"))

{

str1="";//清空

str2="";

t.setText("");//将文本框清空

countOper=0;//将按键计数器清零

first=true;

error=false;

}

else if(e.getActionCommand().equals("等於"))

{

if((str1=="")||(str2==""))   //两个数没有输全就点击等号,执行if

{

countOper=0;//将按键计数器清零

first=true;

}

else

{

getResult();

countOper=0;

}

}

}

//运算结果的方法

public void getResult()

{

num1=Double.parseDouble(str1);

num2=Double.parseDouble(str2);

if(operator.equals("加"))

{

result=num1+num2;

}

else if(operator.equals("减"))

{

result=num1-num2;

}

else if(operator.equals("乘以"))

{

result=num1*num2;

}

else if(operator.equals("除以"))

{

if(num2==0.0)    //除数为0的处理方法

{

error=true;

}

else

{

result=num1/num2;

}

}

if(error)

{

t.setText("error");

}

else

{

t.setText(String.valueOf(result));

str1=String.valueOf(result);  //运算后把结果放入str1中,str2清空,为连加连减等操作做准备

str2="";

}

}

//主方法

public static void main(String[] args)

{

new Counter();//创建一个对象"计算器"

}

}

import   java.awt.*;

import   java.awt.event.*;

import   javax.swing.*;

class   CalculatorPanel   extends   JPanel

implements   ActionListener

{     public   CalculatorPanel()

{     setLayout(new   BorderLayout());

display   =   new   JTextField("0");

display.setEditable(false);

add(display,   "North");

JPanel   p   =   new   JPanel();

p.setLayout(new   GridLayout(4,   4));

String   buttons   =   "789/456*123-0.=+";

for   (int   i   =   0;   i      buttons.length();   i++)

addButton(p,   buttons.substring(i,   i   +   1));

add(p,   "Center");

}

private   void   addButton(Container   c,   String   s)

{     JButton   b   =   new   JButton(s);

c.add(b);

b.addActionListener(this);

}

public   void   actionPerformed(ActionEvent   evt)

{     String   s   =   evt.getActionCommand();

if   ('0'   =   s.charAt(0)      s.charAt(0)   =   '9'

||   s.equals("."))

{     if   (start)   display.setText(s);

else   display.setText(display.getText()   +   s);

start   =   false;

}

else

{     if   (start)

{     if   (s.equals("-"))

{   display.setText(s);   start   =   false;   }

else   op   =   s;

}

else

{     calculate(Double.parseDouble(display.getText()));

op   =   s;

start   =   true;

}

}

}

public   void   calculate(double   n)

{     if   (op.equals("+"))   arg   +=   n;

else   if   (op.equals("-"))   arg   -=   n;

else   if   (op.equals("*"))   arg   *=   n;

else   if   (op.equals("/"))   arg   /=   n;

else   if   (op.equals("="))   arg   =   n;

display.setText(""   +   arg);

}

private   JTextField   display;

private   double   arg   =   0;

private   String   op   =   "=";

private   boolean   start   =   true;

}

public   class   CalculatorApplet   extends   JApplet

{     public   void   init()

{     Container   contentPane   =   getContentPane();

contentPane.add(new   CalculatorPanel());

}

}

计数器的java代码

Java技术与Java虚拟机中文JAVA技术网g0cVV+]

中文JAVA技术网I5Zz[ }'Og G6Y

说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(Java API)。它们的关系如下图所示:

[)|)k3b9M#\)w%Q{~r0中文JAVA技术网:cP+] _2tRtm*K

中文JAVA技术网yz;_Y0FB

图1 Java四个方面的关系

,YWx ^L |Q0运行期环境代表着Java平台,开发人员编写Java代码(.java文件),然后将之编译成字节码(.class文件)。最后字节码被装入内存,一旦字节码进入虚拟机,它就会被解释器解释执行,或者是被即时代码发生器有选择的转换成机器码执行。从上图也可以看出Java平台由Java虚拟机和Java应用程序接口搭建,Java语言则是进入这个平台的通道,用Java语言编写并编译的程序可以运行在这个平台上。这个平台的结构如下图所示:

x[+DX0\:W-o@a0中文JAVA技术网"? c3Y6bj-_

中文JAVA技术网P @+O3lf_pJ b

中文JAVA技术网5h:OY TyL2\|Z

在Java平台的结构中, 可以看出,Java虚拟机(JVM) 处在核心的位置,是程序与底层操作系统和硬件无关的关键。它的下方是移植接口,移植接口由两部分组成:适配器和Java操作系统, 其中依赖于平台的部分称为适配器;JVM 通过移植接口在具体的平台和操作系统上实现;在JVM 的上方是Java的基本类库和扩展类库以及它们的API, 利用Java API编写的应用程序(application) 和小程序(Java applet) 可以在任何Java平台上运行而无需考虑底层平台, 就是因为有Java虚拟机(JVM)实现了程序与操作系统的分离,从而实现了Java 的平台无关性。

h6l-v;HV1SvYO0中文JAVA技术网-G5cAK(e w}

那么到底什么是Java虚拟机(JVM)呢?通常我们谈论JVM时,我们的意思可能是:中文JAVA技术网,T,Y5d(B5r

中文JAVA技术网yWv~s;J

对JVM规范的的比较抽象的说明;

b0r[/o_k+p0对JVM的具体实现;中文JAVA技术网Xdt8M1sP T_"_s

在程序运行期间所生成的一个JVM实例。中文JAVA技术网H k0g,~ hO\

中文JAVA技术网C3@ w6O-a

对JVM规范的的抽象说明是一些概念的集合,它们已经在书《The Java Virtual Machine Specification》(《Java虚拟机规范》)中被详细地描述了;对JVM的具体实现要么是软件,要么是软件和硬件的组合,它已经被许多生产厂商所实现,并存在于多种平台之上;运行Java程序的任务由JVM的运行期实例单个承担。在本文中我们所讨论的Java虚拟机(JVM)主要针对第三种情况而言。它可以被看成一个想象中的机器,在实际的计算机上通过软件模拟来实现,有自己想象中的硬件,如处理器、堆栈、寄存器等,还有自己相应的指令系统。中文JAVA技术网nC/D IHP,|

A)R-DFw o2X0JVM在它的生存周期中有一个明确的任务,那就是运行Java程序,因此当Java程序启动的时候,就产生JVM的一个实例;当程序运行结束的时候,该实例也跟着消失了。下面我们从JVM的体系结构和它的运行过程这两个方面来对它进行比较深入的研究。

Z6?gXm!~0Java虚拟机的体系结构

2XFZ@"I I,\0

e-i'_;P X a0刚才已经提到,JVM可以由不同的厂商来实现。由于厂商的不同必然导致JVM在实现上的一些不同,然而JVM还是可以实现跨平台的特性,这就要归功于设计JVM时的体系结构了。中文JAVA技术网{ v2TtMlG?"]*N

中文JAVA技术网,HK3YQN k

我们知道,一个JVM实例的行为不光是它自己的事,还涉及到它的子系统、存储区域、数据类型和指令这些部分,它们描述了JVM的一个抽象的内部体系结构,其目的不光规定实现JVM时它内部的体系结构,更重要的是提供了一种方式,用于严格定义实现时的外部行为。每个JVM都有两种机制,一个是装载具有合适名称的类(类或是接口),叫做类装载子系统;另外的一个负责执行包含在已装载的类或接口中的指令,叫做运行引擎。每个JVM又包括方法区、堆、Java栈、程序计数器和本地方法栈这五个部分,这几个部分和类装载机制与运行引擎机制一起组成的体系结构图为:中文JAVA技术网BW0EZCI

2o\d oz0中文JAVA技术网%K1Hl:f ~(@Y(U

图3 JVM的体系结构中文JAVA技术网0P/b(jt U$x

7{F*d8f7ySt:Q0JVM的每个实例都有一个它自己的方法域和一个堆,运行于JVM内的所有的线程都共享这些区域;当虚拟机装载类文件的时候,它解析其中的二进制数据所包含的类信息,并把它们放到方法域中;当程序运行的时候,JVM把程序初始化的所有对象置于堆上;而每个线程创建的时候,都会拥有自己的程序计数器和Java栈,其中程序计数器中的值指向下一条即将被执行的指令,线程的Java栈则存储为该线程调用Java方法的状态;本地方法调用的状态被存储在本地方法栈,该方法栈依赖于具体的实现。中文JAVA技术网 t?!Pz!B]

"^x1MT5qj0下面分别对这几个部分进行说明。

/}C2v7b:]%vo[|0中文JAVA技术网'z/@1RG7[E1`8B

执行引擎处于JVM的核心位置,在Java虚拟机规范中,它的行为是由指令集所决定的。尽管对于每条指令,规范很详细地说明了当JVM执行字节码遇到指令时,它的实现应该做什么,但对于怎么做却言之甚少。Java虚拟机支持大约248个字节码。每个字节码执行一种基本的CPU运算,例如,把一个整数加到寄存器,子程序转移等。Java指令集相当于Java程序的汇编语言。中文JAVA技术网 ^sH2X*b,Z

q3[ OT`z"M4V0Java指令集中的指令包含一个单字节的操作符,用于指定要执行的操作,还有0个或多个操作数,提供操作所需的参数或数据。许多指令没有操作数,仅由一个单字节的操作符构成。

P.R.Uxbfc0

o"o qq9_0虚拟机的内层循环的执行过程如下:中文JAVA技术网3Hn8B r,xE

MjHj(zBG t"m P0do{

l$Iz V!M9[0取一个操作符字节;中文JAVA技术网7[?3o?,v A|3b+O R

根据操作符的值执行一个动作;

I(^e)G)Hf6`0}while(程序未结束)中文JAVA技术网y}0J/|:so

中文JAVA技术网c|%L(ud

由于指令系统的简单性,使得虚拟机执行的过程十分简单,从而有利于提高执行的效率。指令中操作数的数量和大小是由操作符决定的。如果操作数比一个字节大,那么它存储的顺序是高位字节优先。例如,一个16位的参数存放时占用两个字节,其值为:

0H.w`wb}.X0中文JAVA技术网y{X;n.u4PT+e)D7\E

第一个字节*256+第二个字节字节码。中文JAVA技术网"V[]J!_0v+D

5^t6E[3aW![0指令流一般只是字节对齐的。指令tableswitch和lookup是例外,在这两条指令内部要求强制的4字节边界对齐。

#Rop'v6w FS0中文JAVA技术网g8Ai _)iw8r

对于本地方法接口,实现JVM并不要求一定要有它的支持,甚至可以完全没有。Sun公司实现Java本地接口(JNI)是出于可移植性的考虑,当然我们也可以设计出其它的本地接口来代替Sun公司的JNI。但是这些设计与实现是比较复杂的事情,需要确保垃圾回收器不会将那些正在被本地方法调用的对象释放掉。

~:Jin+U$zE SI7Y0

"j1lJ`7Dd0v"v0Java的堆是一个运行时数据区,类的实例(对象)从中分配空间,它的管理是由垃圾回收来负责的:不给程序员显式释放对象的能力。Java不规定具体使用的垃圾回收算法,可以根据系统的需求使用各种各样的算法。中文JAVA技术网'z/wgb.s

中文JAVA技术网\TMY[:H)Z#@ tr

用java编得计算器程序软件和源代码

java计算器源程序

java计算器

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

class calculation extends JFrame

{public calculation() /*构造方法*/

{super("计数器");

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

initTextPanel(); /*文本框*/

initControlPanel(); /*控制键*/

initKeyPanel(); /*数字和运算符*/

Container pane = getContentPane();

pane.setLayout(new BorderLayout());

pane.add(TextPanel,BorderLayout.NORTH);

pane.add(ControlPanel,BorderLayout.CENTER);

pane.add(KeyPanel,BorderLayout.SOUTH);

pack();

try

{UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");

}

catch(Exception ex)

{;} /*设置Windons观感*/

SwingUtilities.updateComponentTreeUI(this);

setResizable(false);

setVisible(true);

}

private void initTextPanel() /*设置文本框*/

{ TextPanel=new JPanel();

TextPanel.setLayout(new FlowLayout());

Resultarea =new JTextField("0",25);

Resultarea.setEditable(false); /*设置不可编辑*/

Color color=Color.white;

Resultarea.setBackground(color); /*颜色*/

Resultarea.setHorizontalAlignment(JTextField.RIGHT); /*设置显示位置*/

TextPanel.add(Resultarea);

}

private void initControlPanel() /*设置控制键*/

{ControlPanel=new JPanel();

ControlPanel.setLayout(new GridLayout(1,3,4,4));

JButton b1=new JButton("Backspace"); /*Backspace键*/

b1.setFont(font1);

b1.addActionListener(new ActionListener()

{public void actionPerformed(ActionEvent e)

{String s1=Resultarea.getText();

int l=s1.length();

Resultarea.setText(s1.substring(0 ,l-1));

}

});

ControlPanel.add(b1);

JButton b2=new JButton("CE"); /*CE键*/

b2.setFont(font1);

b2.addActionListener(new ActionListener()

{public void actionPerformed(ActionEvent e)

{Resultarea.setText("0");

isNew=true;

}

});

ControlPanel.add(b2);

JButton b3=new JButton("C"); /*C键*/

b3.setFont(font1);

b3.addActionListener(new ActionListener()

{public void actionPerformed(ActionEvent e)

{Resultarea.setText("0");

pnum="";

operation="";

isNew=true;

}

});

ControlPanel.add(b3);

}

private void initKeyPanel() /*设置数字键和运算符键*/

{String key[] = {"7","8","9","/","sqrt","4","5","6","*","%","1","2","3","-","1/x","0","+/-",".","+","="};

KeyPanel = new JPanel();

KeyPanel.setLayout(new GridLayout(4,5,4,4));

for(int i=0;i20;i++)

{String label = key[i];

JButton b = new JButton(label);

b.setActionCommand(key[i]);

b.setFont(font2);

KeyPanel.add(b);

b.addActionListener(new ActionListener() /*无名监听器*/

{public void actionPerformed(ActionEvent e)

{Key_actionPerformed(e);

}

});

}

}

public void Key_actionPerformed(ActionEvent e) /*数字键和运算符键无名监听器*/

{String s=(e.getActionCommand());

String st=Resultarea.getText();

if(s.equals("0")) /*输入数为0*/

{if(st.equals("0"))

return;

else

{if(!isNew)

Resultarea.setText(st+"0");

else

Resultarea.setText("0");

}

isNew=false;

return;

}

if(s.equals("+/-")) /*输入数为+/-*/

{double k=Double.parseDouble(st);

{if(k!=0)

display(-k);

}

return;

}

if(s.equals("1")||s.equals("2")||s.equals("3")||s.equals("4")||s.equals("5")||s.equals("6")||s.equals("7")||s.equals("8")||s.equals("9")) /*输入1-9*/

{if(!isNew)

Resultarea.setText(st+s);

else

{ Resultarea.setText(s);

isNew=false;

}

return;

}

if(s.equals(".")) /*输入小数点*/

{if(Resultarea.getText().indexOf(".")==-1) /*不存在小数点*/

{if(isNew)

{Resultarea.setText("0.");

isNew=false;

}

else

Resultarea.setText(st+".");

}

return;

}

isNew=true; /*按下运算符,输入新的数*/

if(s.equals("="))

{compute(s);

operation="";

}

else

{if(s.equals("+")||s.equals("-")||s.equals("*")||s.equals("/")) /*二目运算符号*/

{if(operation.equals(""))

{pnum=Resultarea.getText();

operation=s;

}

else

compute(s);

}

else /*一目运算*/

{Count count1=new Count(Double.parseDouble(st));

if(s.equals("sqrt"))

{

display(count1.sqrt());

}

else

{if(s.equals("1/x"))

{if(st.equals("0"))

{Resultarea.setText("除数不能为0.");

operation="";

pnum="";

}

else

display(count1.reciprocal()); /*求倒数*/

}

else

display(Double.parseDouble(st)/100); /*输入%,使当前显示的值除于100*/

}

}

}

}

private void compute(String s)

{if(s.equals("="))

{if(operation.equals(""))

return;

}

double data1=Double.parseDouble(pnum);

double data2=Double.parseDouble(Resultarea.getText());

Count count2=new Count(data1,data2); /*加减乘除计算*/

if(operation.equals("+"))

display((count2.plus()));

else

{if(operation.equals("-"))

display((count2.minus()));

else

{if(operation.equals("*"))

display((count2.multiply()));

else

if(operation.equals("/"))

{if(data2==0)

{Resultarea.setText("除数不能为0");

operation="";

pnum="";

return;

}

else

display((count2.divide()));

}

}

}

operation=""; /*符号为当前符*/

pnum=Resultarea.getText();/*运算数为当前文本数*/

}

public void display(double result) /*显示输出方法*/

{int a=(int)result;

if(a==result)

Resultarea.setText(String.valueOf(a));

else

Resultarea.setText(String.valueOf(result));

if(Resultarea.getText().equals("NaN"))

Resultarea.setText("输入函数无效");

}

private JPanel TextPanel; /*文本框棉板*/

private JTextField Resultarea; /*文本框*/

private JPanel ControlPanel; /*控制键键面板*/

private JPanel KeyPanel; /*数字键和运算符键面板*/

private Font font1=new Font("Dialog",0, 10); /*控制键字体*/

private Font font2 = new Font("Dialog",0,10); /*数字键和符号键字体*/

private String pnum=""; /*前操作数*/

private boolean isNew=true; /*控制是否是新数*/

private String operation=""; /*运算符*/

}

class tester /*测试类*/

{

public static void main(String[] args)

{

new calculation();

}

}

JAVA编写一个完整的计数器类Count,写出源代码

public class Count{ int countValue; Count(){ countValue=0; } public void increment() { countValue++; } public void decrement() { countValue--; } public void reset() { countValue=0; } public int getCountValue(){ return countValue; } public static void main(String args[]){ Count c = new Count(); c.increment(); System.out.println(c.getCountValue()); c.reset(); System.out.println(c.getCountValue()); } } 运行结果: 1 0

采纳哦

用java编写一个计数器或计时器

import java.awt.BorderLayout;

import java.awt.Container;

import java.awt.Font;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class TimerDemo extends JFrame implements ActionListener {

private static final long serialVersionUID = 201306211111L;

private JTextField screen = new JTextField("0");

private JButton start = new JButton("开始");

private JButton reset = new JButton("重置");

private JPanel panel = new JPanel();

private boolean isRunning;

private int time;

private int timeBetween;

public TimerDemo(int timeBetween) {

super("计时器");

this.timeBetween = timeBetween;

try {

init();

} catch (Exception e) {

e.printStackTrace();

}

}

public TimerDemo() {

super("计时器");

this.timeBetween = 100;

try {

init();

} catch (Exception e) {

e.printStackTrace();

}

}

private void init() {

panel.setLayout(new GridLayout());

panel.add(start);

panel.add(reset);

start.addActionListener(this);

reset.addActionListener(this);

screen.setFont(new Font("幼圆", Font.BOLD, 60));

screen.setHorizontalAlignment(JTextField.CENTER);

screen.setEditable(false);

Container c = getContentPane();

c.setLayout(new BorderLayout());

c.add(panel, BorderLayout.SOUTH);

c.add(screen, BorderLayout.CENTER);

this.setSize(200, 150);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setResizable(false);

this.setLocationRelativeTo(null);

this.setVisible(true);

}

public static void main(String[] args) {

new TimerDemo(1);// 设定 1ms/次

// new TimerDemo();

}

@Override

public void actionPerformed(ActionEvent e) {

if (e.getSource() == start) {

if (start.getText().equals("开始")) {

start.setText("暂停");

isRunning = true;

} else if (start.getText().equals("暂停")) {

start.setText("开始");

isRunning = false;

}

}

if (e.getSource() == reset) {

start.setText("开始");

screen.setText("0");

isRunning = false;

time = 0;

}

new Thread(new TimeZone()).start();

}

class TimeZone implements Runnable {

@Override

public void run() {

while (isRunning) {

time++;

if (time = Integer.MAX_VALUE) {

screen.setText("ERROR");

JOptionPane.showMessageDialog(null, "ERROR");

isRunning = false;

}

screen.setText(String.valueOf(time));

try {

Thread.sleep(timeBetween);

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

}

试编写java代码实现一个计数器类(Computer),其中包括:变量value初始值为0

class Computer{

int value;

Computer(int value){

this.value=value;

}

public void add(){

System.out.println("Value:"+value+"-"+(value+1));

value++;

}

public void sub(){

System.out.println("Value:"+value+"-"+(value-2));

value-=2;

}

public void clear(){

System.out.println("Value:"+value+"-"+0);

value=0;

}

}

public class Demo{

public static void main(String[] args){

Computer computer=new Computer(10);

computer.add();

computer.sub();

computer.clear();

}

}


新闻标题:计数器java源代码 Java计数
网站链接:http://shouzuofang.com/article/hipssp.html

其他资讯