JFrame写的计算器,可以运行,但一计算就会报错。。
import java.applet.Applet;import java.awt.BorderLayout;import java.awt.Choice;import java.awt.GridLayout;import java.awt.Panel;import java.awt.TextField;public class Calculation extends Applet { TextField t1 = new TextField ( "", 7 ); TextField t2 = new TextField ( "", 7 ); TextField t3 = new TextField ( "", 14 ); public void init () { setLayout ( new BorderLayout ( ) ); Panel p = new Panel ( ); add ( "North", p ); p.setLayout ( new GridLayout ( 1 , 2 ) ); p.add ( t1 ); p.add ( t2 ); Choice ch; ch = new Choice (); ch.addItem("+"); ch.addItem("-"); ch.addItem("*"); ch.addItem("/"); add ( "Center", ch ); add ( "South", t3 ); ch.addItemListener ( new LL ( )); }}import java.awt.TextField;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;public class LL implements ItemListener { public void itemStateChanged ( ItemEvent ie ) { TextField t1 = new TextField ( "", 7 ); TextField t2 = new TextField ( "", 7 ); TextField t3 = new TextField ( "", 14 ); if ( ie.getStateChange () == ItemEvent.SELECTED ) { String S = (String)ie.getItem (); String S1, S2, S3 = null; int num1, num2; S1 = t1.getText(); num1 = Integer.parseInt(S1); S2 = t2.getText(); num2 = Integer.parseInt(S2); if ( S.equals( "+" )) S3 = String.valueOf( num1 + num2 ); else if ( S.equals( "-" ) ) S3 = String.valueOf ( num1 - num2 ); else if ( S.equals ( "*" ) ) S3 = String.valueOf ( num1 * num2 ); else if ( S.equals ( "/" ) ) S3 = String.valueOf ( num1 / num2 ); t3.setText( S3 ); } } }
//import java.awt.event.ItemEvent;
//import java.awt.event.ItemListener;
public void itemStateChanged(ItemEvent ie ) {
// TextField t1 = new TextField ( "", 7 );
// TextField t2 = new TextField ( "", 7 );
// TextField t3 = new TextField ( "", 14 );
if(ie.getStateChange() == ItemEvent.SELECTED)
{
String S = (String)ie.getItem();
String S1, S2, S3 = null;
int num1, num2;
S1 = t1.getText();
num1 = Integer.parseInt(S1);
S2 = t2.getText();
num2 = Integer.parseInt(S2);
if ( S.equals( "+" ))
S3 = String.valueOf( num1 + num2 );
else if ( S.equals( "-" ) )
S3 = String.valueOf ( num1 - num2 );
else if ( S.equals ( "*" ) )
S3 = String.valueOf ( num1 * num2 );
else if ( S.equals ( "/" ) )
S3 = String.valueOf ( num1 / num2 );
t3.setText( S3 );
}
}
}