import java.awt.*;
import java.awt.event.*;
public class Caculator1
{
public static void main(String args[])
{
new TFrame().launchFrame();
}
}
class TFrame extends Frame
{
String sFirst,sLast;
int i=0; TextField num1;
Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bplus,bdiv,bdel,badd,bequal,bpoint;
public void launchFrame()
{
//初始化文本框
num1 = new TextField(" ",40);
Panel p = new Panel();
//初始化按钮
b1 = new Button("1");
b2 = new Button("2");
b3 = new Button("3");
b4 = new Button("4");
b5 = new Button("5");
b6 = new Button("6");
b7 = new Button("7");
b8 = new Button("8");
b9 = new Button("9");
b0 = new Button("0");
bplus = new Button("*");
bdiv = new Button("/");
bdel = new Button("-");
badd = new Button("+");
bequal = new Button("=");
bpoint = new Button(".");
//设置布局,使用网格布局
p.setLayout(new GridLayout(4,4));
p.add(b1);
p.add(b2);
p.add(b3);
p.add(bplus);
p.add(b4);
p.add(b5);
p.add(b6);
p.add(bdiv);
p.add(b7);
p.add(b8);
p.add(b9);
p.add(badd);
p.add(b0);
p.add(bdel);
p.add(bpoint);
p.add(bequal);
add(num1,"North");
add(p,"Center");
//设置窗体名称
setTitle("MyCaculator");
//setBounds(400,500);
pack();
setVisible(true);
b1.addActionListener(new b1Monitor());
b2.addActionListener(new b2Monitor());
b3.addActionListener(new b3Monitor());
b4.addActionListener(new b4Monitor());
b5.addActionListener(new b5Monitor());
b6.addActionListener(new b6Monitor());
b7.addActionListener(new b7Monitor());
b8.addActionListener(new b8Monitor());
b9.addActionListener(new b9Monitor());
b0.addActionListener(new b0Monitor());
bplus.addActionListener(new bplusMonitor());
bdiv.addActionListener(new bdivMonitor());
badd.addActionListener(new baddMonitor());
bdel.addActionListener(new bdelMonitor());
bequal.addActionListener(new bequalMonitor()); }
//为每一个按钮设置事件监听器
class b1Monitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String s = num1.getText();
num1.setText(s+b1.getLabel());
}
}
class b2Monitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String s = num1.getText();
num1.setText(s+b2.getLabel());
}
}
class b3Monitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String s = num1.getText();
num1.setText(s+b3.getLabel());
}
}
class b4Monitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String s = num1.getText();
num1.setText(s+b4.getLabel());
}
}
class b5Monitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String s = num1.getText();
num1.setText(s+b5.getLabel());
}
}
class b6Monitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String s = num1.getText();
num1.setText(s+b6.getLabel());
}
}
class b7Monitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String s = num1.getText();
num1.setText(s+b7.getLabel());
}
}
class b8Monitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String s = num1.getText();
num1.setText(s+b8.getLabel());
}
}
class b9Monitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String s = num1.getText();
num1.setText(s+b9.getLabel());
}
}
class b0Monitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String s = num1.getText();
num1.setText(s+b0.getLabel());
}
}
class bplusMonitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
sFirst = num1.getText();
num1.setText(" ");
System.out.println(sFirst);
i=1;
}
}
class bdivMonitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
sFirst = num1.getText();
num1.setText(" ");
System.out.println(sFirst);
i=2;
}
}
class baddMonitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
sFirst = num1.getText();
num1.setText(" ");
System.out.println(sFirst);
i=3;
System.out.println(i);
}
}
class bdelMonitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
sFirst = num1.getText();
num1.setText(" ");
System.out.println(sFirst);
i=4;
}
}
class bequalMonitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
sLast = num1.getText();
int n1 = Integer.parseInt(sFirst);
int n2 = Integer.parseInt(sLast);
switch(i)
{
case 1: num1.setText("" + (n1*n2)); System.out.println(n1*n2);break;
case 2: num1.setText("" + (n1/n2)); System.out.println(n1/n2);break;
case 3: num1.setText("" + (n1+n2)); System.out.println(n1+n2);break;
case 4: num1.setText("" + (n1-n2)); System.out.println(n1-n2);break;
default: break;
}
}
}
//System.out.println(i);
//System.out.println(sFirst);
}
编译能够通过,但是运行时出现异常。求指教
import java.awt.event.*;
public class Caculator1
{
public static void main(String args[])
{
new TFrame().launchFrame();
}
}
class TFrame extends Frame
{
String sFirst,sLast;
int i=0; TextField num1;
Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bplus,bdiv,bdel,badd,bequal,bpoint;
public void launchFrame()
{
//初始化文本框
num1 = new TextField(" ",40);
Panel p = new Panel();
//初始化按钮
b1 = new Button("1");
b2 = new Button("2");
b3 = new Button("3");
b4 = new Button("4");
b5 = new Button("5");
b6 = new Button("6");
b7 = new Button("7");
b8 = new Button("8");
b9 = new Button("9");
b0 = new Button("0");
bplus = new Button("*");
bdiv = new Button("/");
bdel = new Button("-");
badd = new Button("+");
bequal = new Button("=");
bpoint = new Button(".");
//设置布局,使用网格布局
p.setLayout(new GridLayout(4,4));
p.add(b1);
p.add(b2);
p.add(b3);
p.add(bplus);
p.add(b4);
p.add(b5);
p.add(b6);
p.add(bdiv);
p.add(b7);
p.add(b8);
p.add(b9);
p.add(badd);
p.add(b0);
p.add(bdel);
p.add(bpoint);
p.add(bequal);
add(num1,"North");
add(p,"Center");
//设置窗体名称
setTitle("MyCaculator");
//setBounds(400,500);
pack();
setVisible(true);
b1.addActionListener(new b1Monitor());
b2.addActionListener(new b2Monitor());
b3.addActionListener(new b3Monitor());
b4.addActionListener(new b4Monitor());
b5.addActionListener(new b5Monitor());
b6.addActionListener(new b6Monitor());
b7.addActionListener(new b7Monitor());
b8.addActionListener(new b8Monitor());
b9.addActionListener(new b9Monitor());
b0.addActionListener(new b0Monitor());
bplus.addActionListener(new bplusMonitor());
bdiv.addActionListener(new bdivMonitor());
badd.addActionListener(new baddMonitor());
bdel.addActionListener(new bdelMonitor());
bequal.addActionListener(new bequalMonitor()); }
//为每一个按钮设置事件监听器
class b1Monitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String s = num1.getText();
num1.setText(s+b1.getLabel());
}
}
class b2Monitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String s = num1.getText();
num1.setText(s+b2.getLabel());
}
}
class b3Monitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String s = num1.getText();
num1.setText(s+b3.getLabel());
}
}
class b4Monitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String s = num1.getText();
num1.setText(s+b4.getLabel());
}
}
class b5Monitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String s = num1.getText();
num1.setText(s+b5.getLabel());
}
}
class b6Monitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String s = num1.getText();
num1.setText(s+b6.getLabel());
}
}
class b7Monitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String s = num1.getText();
num1.setText(s+b7.getLabel());
}
}
class b8Monitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String s = num1.getText();
num1.setText(s+b8.getLabel());
}
}
class b9Monitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String s = num1.getText();
num1.setText(s+b9.getLabel());
}
}
class b0Monitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String s = num1.getText();
num1.setText(s+b0.getLabel());
}
}
class bplusMonitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
sFirst = num1.getText();
num1.setText(" ");
System.out.println(sFirst);
i=1;
}
}
class bdivMonitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
sFirst = num1.getText();
num1.setText(" ");
System.out.println(sFirst);
i=2;
}
}
class baddMonitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
sFirst = num1.getText();
num1.setText(" ");
System.out.println(sFirst);
i=3;
System.out.println(i);
}
}
class bdelMonitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
sFirst = num1.getText();
num1.setText(" ");
System.out.println(sFirst);
i=4;
}
}
class bequalMonitor implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
sLast = num1.getText();
int n1 = Integer.parseInt(sFirst);
int n2 = Integer.parseInt(sLast);
switch(i)
{
case 1: num1.setText("" + (n1*n2)); System.out.println(n1*n2);break;
case 2: num1.setText("" + (n1/n2)); System.out.println(n1/n2);break;
case 3: num1.setText("" + (n1+n2)); System.out.println(n1+n2);break;
case 4: num1.setText("" + (n1-n2)); System.out.println(n1-n2);break;
default: break;
}
}
}
//System.out.println(i);
//System.out.println(sFirst);
}
编译能够通过,但是运行时出现异常。求指教
public void actionPerformed(ActionEvent e)
{
sLast = num1.getText().trim();
System.out.println("sFirst:" + sFirst);
sFirst = sFirst.trim();
int n1 = Integer.parseInt(sFirst);
int n2 = Integer.parseInt(sLast);主要是加trim()把前后的空格去掉。