當前位置:編程學習大全網 - 編程語言 - java程序設計

java程序設計

package test;

import java.awt.*;

import java.awt.event.*;

import java.util.*;

import javax.swing.*;

class TestCalculator {

JFrame jf=new JFrame("calculator");

JPanel jp=new JPanel();

JPanel jpn=new JPanel();

JTextArea jta=new JTextArea(2,14);

JButton bt;

JButton reset=new JButton("Reset");

String s=new String("1234567890.=+-*/");

String numberOne="";

String numberTwo="";

double number=0d;

double result=0d;

char sign;

public TestCalculator() {

jf.setSize(250,300);

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

jta.setEditable(false);

ArrayList list=new ArrayList();

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

bt=new JButton(s.charAt(i)+"");

jp.add(bt);

list.add(bt);

}

jpn.setLayout(new FlowLayout());

jpn.add(jta);

jpn.add(reset);

jf.add(jpn,"North");

jf.add(jp);

jta.setEditable(false);

jf.setVisible(true);

jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);

reset.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

reSet();

}

});

Iterator it=list.iterator();

while(it.hasNext()){

final JButton o=(JButton)it.next();

o.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

/**判斷被點擊的按鈕所代表的String是不是數字0-9*/

if(o.getText().matches("\\d")||o.getText().equals(".")){

jta.append(o.getText());

getNumberTwo(o.getText());

}else{

getNumberOne();

double number1;

double number2;

if(numberOne.equals("")){

number1=0;

}else{

number1=Double.parseDouble(numberOne);

}

if(numberTwo.equals("")){

number2=number;

}else{

number2=Double.parseDouble(numberTwo);

}

switch(sign){

case '+':result=number1+number2;break;

case '-':result=number1-number2;break;

case '*':result=number1*number2;break;

case '/':result=number1/number2;break;

case '=':break;

default :result=number1;

}

number=number2;

numberTwo="";

jta.setText(result+"");

getSign(o.getText());

if(!o.getText().equals("="))

jta.append(o.getText());

}

}

});

}

}

public void getNumberTwo(String s){

numberTwo+=s;

// System.out.println("numberTwo:"+numberTwo);

}

public void getNumberOne(){

if(result==0){

numberOne=numberTwo;

}else{

numberOne=result+"";

}

// System.out.println("numberOne: "+numberOne);

}

public void getSign(String s){

sign=s.charAt(0);

// System.out.println("sign:"+sign);

}

public void reSet(){

numberOne="";

numberTwo="";

sign=0;

result=0;

jta.setText("");

}

}

public class Calculator2{

public static void main(String[] agrs){

TestCalculator calculator=new TestCalculator();

}

}

計算器代碼,用swing做的

  • 上一篇:常見面試題及答案
  • 下一篇:跪求用EDA Verilog HDL語言編寫的8位電子密碼鎖源程序 (quartus II平臺) PS:最好有註釋
  • copyright 2024編程學習大全網