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

Python015

用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 javax.swing.*

import java.awt.event.*

import java.awt.*

public class Calculator  extends JFrame implements ActionListener  {

private JFrame jf

private JButton[] allButtons

private JButton clearButton

private JTextField jtf

public Calculator() {

//对图形组件实例化

jf=new JFrame("任静的计算器1.0:JAVA版")

jf.addWindowListener(new WindowAdapter(){

public void windowClosing(){

System.exit(0)

}

})

allButtons=new JButton[16]

clearButton=new JButton("清除")

jtf=new JTextField(25)

jtf.setEditable(false)

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

for(int i=0i<allButtons.lengthi++){

allButtons[i]=new JButton(str.substring(i,i+1))

}

}

public void init(){

//完成布局

jf.setLayout(new BorderLayout())

JPanel northPanel=new JPanel()

JPanel centerPanel=new JPanel()

JPanel southPanel=new JPanel()

northPanel.setLayout(new FlowLayout())

centerPanel.setLayout(new GridLayout(4,4))

southPanel.setLayout(new FlowLayout())

northPanel.add(jtf)

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

centerPanel.add(allButtons[i])

}

southPanel.add(clearButton)

jf.add(northPanel,BorderLayout.NORTH)

jf.add(centerPanel,BorderLayout.CENTER)

jf.add(southPanel,BorderLayout.SOUTH)

addEventHandler()

}

//添加事件监听

public void addEventHandler(){

jtf.addActionListener(this)

for(int i=0i<allButtons.lengthi++){

allButtons[i].addActionListener(this)

}

clearButton.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

Calculator.this.jtf.setText("")

}

})

}

//事件处理

public void actionPerformed(ActionEvent e) {

//在这里完成事件处理  使计算器可以运行

String action=e.getActionCommand()

if(action=="+"||action=="-"||action=="*"||action=="/"){

}

}

public void setFontAndColor(){

Font f=new Font("宋体",Font.BOLD,24)

jtf.setFont(f)

jtf.setBackground(new Color(0x8f,0xa0,0xfb))

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

allButtons[i].setFont(f)

allButtons[i].setForeground(Color.RED)

}

}

public void showMe(){

init()

setFontAndColor()

jf.pack()

jf.setVisible(true)

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

}

public static void main(String[] args){

new Calculator().showMe()

}

}