用JAVA编写的科学计算器源代码

用JAVA编写的科学计算器源代码,第1张

import java.awt.*

import javax.swing.*

import java.awt.event.*

class Counter extends WindowAdapter

{

static JFrame f=new JFrame("计算器")

static JTextField text1=new JTextField("0.")

static String source=""

static String cal=""

static String object=""

static boolean flag=false

static boolean flag1=true

static boolean flag2=false

public void init()

{

try

{

Container c=f.getContentPane()

JPanel pan1=new JPanel()

JButton b1=new JButton("1")

JButton b2=new JButton("2")

JButton b3=new JButton("3")

JButton b4=new JButton("4")

JButton b5=new JButton("5")

JButton b6=new JButton("6")

JButton b7=new JButton("7")

JButton b8=new JButton("8")

JButton b9=new JButton("9")

JButton b0=new JButton("0")

JButton b11=new JButton("+")

JButton b12=new JButton("-")

JButton b13=new JButton("*")

JButton b14=new JButton("/")

JButton b15=new JButton(".")

JButton b16=new JButton("=")

JButton bclar=new JButton("清零")

text1.setHorizontalAlignment(JTextField.RIGHT)

c.add(text1,"North")

c.add(pan1)

A aa=new A()

Result re=new Result()

Opertion op=new Opertion()

Clar cl=new Clar()

b1.addActionListener(aa)

b2.addActionListener(aa)

b3.addActionListener(aa)

b4.addActionListener(aa)

b5.addActionListener(aa)

b6.addActionListener(aa)

b7.addActionListener(aa)

b8.addActionListener(aa)

b9.addActionListener(aa)

b0.addActionListener(aa)

b11.addActionListener(op)

b12.addActionListener(op)

b13.addActionListener(op)

b14.addActionListener(op)

b16.addActionListener(re)

b15.addActionListener(aa)

bclar.addActionListener(cl)

pan1.add(b1)

pan1.add(b2)

pan1.add(b3)

pan1.add(b11)

pan1.add(b4)

pan1.add(b5)

pan1.add(b6)

pan1.add(b12)

pan1.add(b7)

pan1.add(b8)

pan1.add(b9)

pan1.add(b13)

pan1.add(b0)

pan1.add(b15)

pan1.add(b16)

pan1.add(b14)

pan1.add(bclar)

f.setSize(200,220)

f.setVisible(true)

}

catch(Exception e)

{

System.out.println(e.getMessage())

}

}

class A implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

String a=text1.getText()

String s=e.getActionCommand()

if(a.equals("0.")||a.equals("+")||a.equals("-")||a.equals("*")||a.equals("/"))

text1.setText(s)

else {

if(flag2)

{

text1.setText(s)

flag2=false

}

else

text1.setText(a+s)

}

}

}

class Opertion implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

cal=e.getActionCommand()

if(flag1==true)

source=text1.getText()

text1.setText(cal)

flag1=false

flag=true

}

}

class Result implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

double num1

num1=Double.parseDouble(source)

object=text1.getText()

double num2

num2=Double.parseDouble(object)

double result=0

if(cal.equals("+"))

result=num1+num2

if(cal.equals("-"))

result=num1-num2

if(cal.equals("*"))

result=num1*num2

if(cal.equals("/"))

if(num2==0)

text1.setText("除数不能为0")

else

result=num1/num2

String s1=Double.toString(result)

text1.setText(s1)

flag1=true

flag2=true

}

}

class Clar implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

text1.setText("0.")

}

}

public static void main(String[] args)

{

Counter count=new Counter()

count.init()

}

public void windowClosing(WindowEvent e){

System.exit(1)

}

public void windowOpened(WindowEvent e){}

public void windowIconified(WindowEvent e){}

public void windowDeiconified(WindowEvent e){}

public void windowClosed(WindowEvent e){}

public void windowActivated(WindowEvent e){}

public void windowDeactivated(WindowEvent e){}

}

界面漂亮堪比系统自带计算器,功能完美加减乘除开平方等等全部具备,还有清零按钮,小数点的使用,连加连乘功能完全参考系统官方计算器经过长期调试改进而成,马上拷贝代码拿去试试看吧,绝不后悔!

代码如下:

import java.awt.*

import java.awt.event.*

import javax.swing.*

import java.util.*

public class Counter {

public static void main(String[] args) {

CounterFrame frame = new CounterFrame()

frame.show()

}

}

class CounterFrame extends JFrame {

public CounterFrame() {

JMenuBar menuBar = new JMenuBar()

JMenu menuFile = new JMenu()

JMenu menuFile1 = new JMenu()

JMenu menuFile2 = new JMenu()

JMenu menuFile3 = new JMenu()

JMenuItem menuFileExit = new JMenuItem()

menuFile.setText("文件")

menuFile1.setText("编辑")

menuFile2.setText("查看")

menuFile3.setText("帮助")

menuFileExit.setText("退出")

menuFileExit.addActionListener

(

new ActionListener() {

public void actionPerformed(ActionEvent e) {

CounterFrame.this.windowClosed()

}

}

)

menuFile.add(menuFileExit)

menuBar.add(menuFile)

menuBar.add(menuFile1)

menuBar.add(menuFile2)

menuBar.add(menuFile3)

setTitle("计算器")

setJMenuBar(menuBar)

setSize(new Dimension(400, 280))

this.getContentPane().add(new Allpanel())

this.addWindowListener

(

new WindowAdapter() {

public void windowClosing(WindowEvent e) {

CounterFrame.this.windowClosed()

}

}

)

}

protected void windowClosed() {

System.exit(0)

}

}

class Tool {

public static Tool instance

private JTextField field

private Tool() {

this.field=new JTextField(30)

this.field.setHorizontalAlignment(JTextField.RIGHT)

}

public static Tool getinstance()

{

if(instance==null)

{

instance=new Tool()

}

return instance

}

public JTextField getfield()

{

return (this.field)

}

}

class Allpanel extends JPanel {

public Allpanel() {

this.setLayout(new BorderLayout(0,7))

Northpanel np=new Northpanel()

Centerpanel cp=new Centerpanel()

this.add(np,BorderLayout.NORTH)

this.add(cp,BorderLayout.CENTER)

}

}

class Centercenter extends JPanel {

static Vector Vec=new Vector()

static Vector vc=new Vector()

static Vector vc1=new Vector()

static Vector vc2=new Vector()

static Vector vc3=new Vector()

static String begin="yes"

static double add

static double jq

static double cs

static double cq

static double dy

static String jg

static String what

static double tool=0

static String to="yes"

/**

* Method Centercenter

*

*

*/

public Centercenter() {

// TODO: Add your code here

final JTextField text=Tool.getinstance().getfield()

this.setLayout(new GridLayout(4,5,3,3))

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

for(int i=0i<20i++)

{

final JButton b=new JButton(arg[i])

//this.add(new JButton(arg[i]))

this.add(b)

if(i==0||i==1||i==2||i==5||i==6||i==7||i==10||i==11||i==12||i==15)

{

b.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

String mark=b.getText()

String ma=text.getText()

if(vc3.contains("v3"))

{

text.setText("0."+mark)

vc3.clear()

}

else if(vc.contains("a"))

{

if(vc2.contains("v2"))

{

text.setText("0."+mark)

vc.clear()

vc2.clear()

}

else

{

text.setText(mark)

vc.clear()

Vec.clear()

Vec.add(mark)

}

}

else

{

text.setText(ma.trim()+mark)

Vec.add(mark)

}

begin="no"

to="yes"

}

})

}

if(i==17)

{

b.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

String mar=b.getText()

String m=text.getText()

if("yes".equals(begin))

{

vc3.add("v3")

}

if(vc1.contains("v1"))

{

vc2.add("v2")

vc1.clear()

}

if(!Vec.contains(".")&&!vc.contains("a"))

{

text.setText(m.trim()+mar)

Vec.add(".")

}

}

})

}

if(i==18)

{

b.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

String ma=text.getText()

add=Double.parseDouble(ma)

if(what==null)

{

tool=add

what="add"

}

else

{

tool=tool+add

text.setText(String.valueOf((tool)))

}

vc.add("a")

vc1.add("v1")

to="+"

}

})

}

if(i==13)

{

b.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

String ma=text.getText()

jq=Double.parseDouble(ma)

if(what==null)

{

tool=jq

what="jq"

}

else

{

tool=tool-jq

text.setText(String.valueOf((tool)))

}

vc.add("a")

vc1.add("v1")

to="-"

}

})

}

if(i==3)

{

b.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

String ma=text.getText()

cq=Double.parseDouble(ma)

if(what==null)

{

tool=cq

what="cq"

}

else

{

tool=tool/cq

text.setText(String.valueOf((tool)))

}

vc.add("a")

vc1.add("v1")

to="/"

}

})

}

if(i==4)

{

b.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

String ma=text.getText()

cq=Double.parseDouble(ma)

text.setText(String.valueOf(Math.sqrt(cq)))

}

})

}

if(i==8)

{

b.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

String ma=text.getText()

cs=Double.parseDouble(ma)

if(what==null)

{

tool=cs

what="cs"

}

else

{

tool=tool*cs

text.setText(String.valueOf((tool)))

}

vc.add("a")

vc1.add("v1")

to="*"

}

})

}

if(i==19)

{

b.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

String ma=text.getText()

dy=Double.parseDouble(ma)

if(what=="add")

{

jg=String.valueOf((tool+dy))

}

if(what=="jq")

{

jg=String.valueOf((tool-dy))

}

if(what=="cs")

{

jg=String.valueOf((tool*dy))

}

if(what=="cq")

{

jg=String.valueOf((tool/dy))

}

if(what==null)

{

if(to=="+")

{

tool=add

jg=String.valueOf(tool+dy)

}

else if(to=="-")

{

tool=jq

jg=String.valueOf(dy-tool)

}

else if(to=="*")

{

tool=cs

jg=String.valueOf(dy*tool)

}

else if(to=="/")

{

tool=cq

jg=String.valueOf(dy/tool)

}

else

{

jg=String.valueOf(dy)

}

}

text.setText(jg)

Vec.clear()

Vec.add(".")

vc.add("a")

vc1.add("v1")

what=null

tool=0

}

})

}

}

}

}

class Centernorth extends JPanel {

public Centernorth() {

final JTextField text=Tool.getinstance().getfield()

JButton jb1=new JButton("Backspace")

JButton jb2=new JButton(" CE ")

JButton jb3=new JButton(" C ")

this.add(jb1)

this.add(jb2)

this.add(jb3)

jb1.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e)

{

String back=Tool.getinstance().getfield().getText()

text.setText(backmethod(back))

Centercenter.Vec.remove(Centercenter.Vec.size()-1)

}

})

jb3.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e)

{

text.setText("0.")

Centercenter.Vec.clear()

Centercenter.Vec.add(".")

Centercenter.vc.add("a")

Centercenter.begin="yes"

Centercenter.vc1.clear()

Centercenter.what=null

Centercenter.tool=0

}

})

}

public String backmethod(String str)

{

return str.substring(0,str.length()-1)

}

}

class Centerpanel extends JPanel {

public Centerpanel() {

this.setLayout(new BorderLayout(8,7))

Centernorth cn=new Centernorth()

Centercenter cc=new Centercenter()

Centerwest cw=new Centerwest()

this.add(cn,BorderLayout.NORTH)

this.add(cc,BorderLayout.CENTER)

this.add(cw,BorderLayout.WEST)

}

}

class Centerwest extends JPanel {

public Centerwest() {

this.setLayout(new GridLayout(4,1,3,3))

this.add(new JButton("MC"))

this.add(new JButton("MR"))

this.add(new JButton("MS"))

this.add(new JButton("M+"))

}

}

class Northpanel extends JPanel {

private JTextField tf

public Northpanel() {

tf=Tool.getinstance().getfield()

this.add(tf)

}

}

---------------------------------------------------------------------------

=============《按你要求特意后改过的最简单功能的代码如下》========================

import java.awt.*

import java.awt.event.*

import javax.swing.*

import java.util.*

public class Counter2 {

public static void main(String[] args) {

CounterFrame frame = new CounterFrame()

frame.show()

}

}

class CounterFrame extends JFrame {

public CounterFrame() {

setTitle("计算器")

setSize(new Dimension(400, 280))

this.getContentPane().add(new Allpanel())

this.addWindowListener

(

new WindowAdapter() {

public void windowClosing(WindowEvent e) {

CounterFrame.this.windowClosed()

}

}

)

}

protected void windowClosed() {

System.exit(0)

}

}

class Tool {

public static Tool instance

private JTextField field

private Tool() {

this.field=new JTextField(30)

this.field.setHorizontalAlignment(JTextField.RIGHT)

}

public static Tool getinstance()

{

if(instance==null)

{

instance=new Tool()

}

return instance

}

public JTextField getfield()

{

return (this.field)

}

}

class Allpanel extends JPanel {

public Allpanel() {

this.setLayout(new BorderLayout(0,7))

Northpanel np=new Northpanel()

Centerpanel cp=new Centerpanel()

this.add(np,BorderLayout.NORTH)

this.add(cp,BorderLayout.CENTER)

}

}

class Centercenter extends JPanel {

static Vector Vec=new Vector()

static Vector vc=new Vector()

static Vector vc1=new Vector()

static Vector vc2=new Vector()

static Vector vc3=new Vector()

static String begin="yes"

static double add

static double jq

static double cs

static double cq

static double dy

static String jg

static String what

static double tool=0

static String to="yes"

/**

* Method Centercenter

*

*

*/

public Centercenter() {

// TODO: Add your code here

final JTextField text=Tool.getinstance().getfield()

this.setLayout(new GridLayout(4,5,3,3))

String arg[] ={"7","8","9","/","4","5","6","*","1","2","3","-","0","=",".","+"}

for(int i=0i<16i++)

{

final JButton b=new JButton(arg[i])

//this.add(new JButton(arg[i]))

this.add(b)

if(i==0||i==1||i==2||i==4||i==5||i==6||i==8||i==9||i==10||i==12)

{

b.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

String mark=b.getText()

String ma=text.getText()

if(vc3.contains("v3"))

{

text.setText("0."+mark)

vc3.clear()

}

else if(vc.contains("a"))

{

if(vc2.contains("v2"))

{

text.setText("0."+mark)

vc.clear()

vc2.clear()

}

else

{

text.setText(mark)

vc.clear()

Vec.clear()

Vec.add(mark)

}

}

else

{

text.setText(ma.trim()+mark)

Vec.add(mark)

}

begin="no"

to="yes"

}

})

}

if(i==14)

{

b.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

String mar=b.getText()

String m=text.getText()

if("yes".equals(begin))

{

vc3.add("v3")

}

if(vc1.contains("v1"))

{

vc2.add("v2")

vc1.clear()

}

if(!Vec.contains(".")&&!vc.contains("a"))

{

text.setText(m.trim()+mar)

Vec.add(".")

}

}

})

}

if(i==15)

{

b.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

String ma=text.getText()

add=Double.parseDouble(ma)

if(what==null)

{

tool=add

what="add"

}

else

{

tool=tool+add

text.setText(String.valueOf((tool)))

}

vc.add("a")

vc1.add("v1")

to="+"

}

})

}

if(i==11)

{

b.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

String ma=text.getText()

jq=Double.parseDouble(ma)

if(what==null)

{

tool=jq

what="jq"

}

else

{

tool=tool-jq

text.setText(String.valueOf((tool)))

}

vc.add("a")

vc1.add("v1")

to="-"

}

})

}

if(i==3)

{

b.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

String ma=text.getText()

cq=Double.parseDouble(ma)

if(what==null)

{

tool=cq

what="cq"

}

else

{

tool=tool/cq

text.setText(String.valueOf((tool)))

}

vc.add("a")

vc1.add("v1")

to="/"

}

})

}

if(i==7)

{

b.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

String ma=text.getText()

cs=Double.parseDouble(ma)

if(what==null)

{

tool=cs

what="cs"

}

else

{

tool=tool*cs

text.setText(String.valueOf((tool)))

}

vc.add("a")

vc1.add("v1")

to="*"

}

})

}

if(i==13)

{

b.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

String ma=text.getText()

dy=Double.parseDouble(ma)

if(what=="add")

{

jg=String.valueOf((tool+dy))

}

if(what=="jq")

{

jg=String.valueOf((tool-dy))

}

if(what=="cs")

{

jg=String.valueOf((tool*dy))

}

if(what=="cq")

{

jg=String.valueOf((tool/dy))

}

if(what==null)

{

if(to=="+")

{

tool=add

jg=String.valueOf(tool+dy)

}

else if(to=="-")

{

tool=jq

jg=String.valueOf(dy-tool)

}

else if(to=="*")

{

tool=cs

jg=String.valueOf(dy*tool)

}

else if(to=="/")

{

tool=cq

jg=String.valueOf(dy/tool)

}

else

{

jg=String.valueOf(dy)

}

}

text.setText(jg)

Vec.clear()

Vec.add(".")

vc.add("a")

vc1.add("v1")

what=null

tool=0

}

})

}

}

}

}

class Centernorth extends JPanel {

public Centernorth() {

final JTextField text=Tool.getinstance().getfield()

}

}

class Centerpanel extends JPanel {

public Centerpanel() {

this.setLayout(new BorderLayout(8,7))

Centernorth cn=new Centernorth()

Centercenter cc=new Centercenter()

Centerwest cw=new Centerwest()

this.add(cn,BorderLayout.NORTH)

this.add(cc,BorderLayout.CENTER)

this.add(cw,BorderLayout.WEST)

}

}

class Centerwest extends JPanel {

public Centerwest() {

}

}

class Northpanel extends JPanel {

private JTextField tf

public Northpanel() {

tf=Tool.getinstance().getfield()

this.add(tf)

}

}

------------------------------------------------------------

才子_辉祝您愉快!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7826371.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存