什么';这个Java小程序代码有什么问题?
我试图通过Fedora18中的appletviewer在JavaApplet中运行这段代码。但是我得到了这个错误什么';这个Java小程序代码有什么问题?,java,applet,Java,Applet,我试图通过Fedora18中的appletviewer在JavaApplet中运行这段代码。但是我得到了这个错误 java.lang.NullPointerException at main.init(main.java:42) at sun.applet.AppletPanel.run(AppletPanel.java:436) at java.lang.Thread.run(Thread.java:722) 根据我的代码,我代码中的第42行是bMul.setBoun
java.lang.NullPointerException
at main.init(main.java:42)
at sun.applet.AppletPanel.run(AppletPanel.java:436)
at java.lang.Thread.run(Thread.java:722)
根据我的代码,我代码中的第42行是bMul.setBounds(100280,50,50)但据我所知,这并没有错。在谷歌上搜索后,我发现
NullPointerException是JVM在以下情况下引发的运行时异常:
您的应用程序代码、其他引用的API或中间件
(Weblogic、WAS、JBoss…)遇到以下情况:
- 试图调用空对象的实例方法
- 试图访问或修改空对象的特定字段
- 试图获取数组等空对象的长度
我已经尽力了,但没能成功。请帮帮我。这里我提供main.java文件的代码
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class main extends Applet implements ActionListener {
Button b0, b1, b2, b3, b4, b5, b6, b7, b8, b9;
Button bAdd, bSub, bMul, bDiv, bEqu, bCls, bDec, bSqrt, bSin, bCos, bTan;
TextField tf1;
int add, sub, mul, div, temp = 0;
double sqr, s, c, ta;
String t = "";
public void init() {
setLayout(null);
setFont(new Font("cantarell", Font.BOLD, 12));
b0 = new Button("0"); 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");
bAdd = new Button("+"); bSub = new Button("-");
bSub = new Button("*"); bDiv = new Button("/");
bEqu = new Button("="); bSqrt = new Button("sqrt");
bSin = new Button("sin"); bCos = new Button("cos");
bTan = new Button("tan"); bCls = new Button("cls");
tf1 = new TextField("0");
tf1.setEditable(false);
tf1.setColumns(8);
tf1.setBounds(100, 100, 250, 50);
b0.setBounds(100, 130, 50, 50);
b1.setBounds(150, 130, 50, 50);
b2.setBounds(200, 130, 50, 50);
b3.setBounds(250, 130, 50, 50);
b4.setBounds(100, 180, 50, 50);
b5.setBounds(150, 180, 50, 50);
b6.setBounds(200, 180, 50, 50);
b7.setBounds(250, 180, 50, 50);
b8.setBounds(100, 230, 50, 50);
b3.setBounds(150, 230, 50, 50);
bAdd.setBounds(200, 230, 50, 50);
bSub.setBounds(250, 230, 50, 50);
bMul.setBounds(100, 280, 50, 50);
bDiv.setBounds(150, 280, 50, 50);
bEqu.setBounds(200, 280, 50, 50);
bSin.setBounds(300, 130, 50, 50);
bCos.setBounds(300, 180, 50, 50);
bTan.setBounds(300, 230, 50, 50);
bSqrt.setBounds(250, 280, 50, 50);
bCls.setBounds(300, 280, 50, 50);
add(b0); add(b1); add(b2);
add(b3); add(b4); add(b5);
add(b6); add(b7); add(b8); add(b9);
add(bAdd); add(bSub); add(bMul); add(bDiv);
add(bEqu); add(bSin); add(bCos); add(bTan);
add(bSqrt); add(bCls); add(tf1);
b0.addActionListener(this);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
bAdd.addActionListener(this);
bSub.addActionListener(this);
bMul.addActionListener(this);
bDiv.addActionListener(this);
bEqu.addActionListener(this);
bSqrt.addActionListener(this);
bSin.addActionListener(this);
bCos.addActionListener(this);
bTan.addActionListener(this);
bCls.addActionListener(this);
}
public void actionPerformed(ActionEvent ae) {
if(ae.getSource() == b0) {
zero();
if(tf1.getText().equals("0"))
tf1.setText(b0.getLabel());
else
tf1.setText(tf1.getText()+b0.getLabel());
temp = 0;
}
if(ae.getSource() == b1) {
zero();
if(tf1.getText().equals("0"))
tf1.setText(b1.getLabel());
else
tf1.setText(tf1.getText()+b1.getLabel());
temp = 0;
}
if(ae.getSource() == b2) {
zero();
if(tf1.getText().equals("0"))
tf1.setText(b2.getLabel());
else
tf1.setText(tf1.getText()+b2.getLabel());
temp = 0;
}
if(ae.getSource() == b3) {
zero();
if(tf1.getText().equals("0"))
tf1.setText(b3.getLabel());
else
tf1.setText(tf1.getText()+b3.getLabel());
temp = 0;
}
if(ae.getSource() == b4) {
zero();
if(tf1.getText().equals("0"))
tf1.setText(b4.getLabel());
else
tf1.setText(tf1.getText()+b4.getLabel());
temp = 0;
}
if(ae.getSource() == b5) {
zero();
if(tf1.getText().equals("0"))
tf1.setText(b5.getLabel());
else
tf1.setText(tf1.getText()+b5.getLabel());
temp = 0;
}
if(ae.getSource() == b6) {
zero();
if(tf1.getText().equals("0"))
tf1.setText(b6.getLabel());
else
tf1.setText(tf1.getText()+b6.getLabel());
temp = 0;
}
if(ae.getSource() == b7) {
zero();
if(tf1.getText().equals("0"))
tf1.setText(b7.getLabel());
else
tf1.setText(tf1.getText()+b7.getLabel());
temp = 0;
}
if(ae.getSource() == b8) {
zero();
if(tf1.getText().equals("0"))
tf1.setText(b8.getLabel());
else
tf1.setText(tf1.getText()+b8.getLabel());
temp = 0;
}
if(ae.getSource() == b9) {
zero();
if(tf1.getText().equals("0"))
tf1.setText(b9.getLabel());
else
tf1.setText(tf1.getText()+b9.getLabel());
temp = 0;
}
if(ae.getSource() == bSqrt) {
sqr = Double.parseDouble(tf1.getText());
tf1.setText(Double.toString(Math.sqrt(sqr)));
}
if(ae.getSource() == bSin) {
s = Double.parseDouble(tf1.getText());
tf1.setText(Double.toString(Math.sin(s)));
}
if(ae.getSource() == bCos) {
c = Double.parseDouble(tf1.getText());
tf1.setText(Double.toString(Math.cos(c)));
}
if(ae.getSource() == bTan) {
ta = Double.parseDouble(tf1.getText());
tf1.setText(Double.toString(Math.tan(ta)));
}
if(ae.getSource() == bAdd) {
add = Integer.parseInt(tf1.getText());
tf1.setText("");
t = "+";
}
if(ae.getSource() == bSub) {
sub = Integer.parseInt(tf1.getText());
tf1.setText("");
t = "-";
}
if(ae.getSource() == bMul) {
mul = Integer.parseInt(tf1.getText());
tf1.setText("");
t = "*";
}
if(ae.getSource() == bDiv) {
div = Integer.parseInt(tf1.getText());
tf1.setText("");
t = "/";
}
if(ae.getSource() == bEqu) {
if(t == "+") {
int add1 = Integer.parseInt(tf1.getText());
int add2 = add + add1;
tf1.setText(String.valueOf(add2));
}
else if(t == "-") {
int sub1 = Integer.parseInt(tf1.getText());
int sub2 = sub - sub1;
tf1.setText(String.valueOf(sub2));
}
else if(t == "*") {
int mul1 = Integer.parseInt(tf1.getText());
int mul2 = mul * mul1;
tf1.setText(String.valueOf(mul2));
}
else if(t == "/") {
int div1 = Integer.parseInt(tf1.getText());
int div2 = div / div1;
tf1.setText(String.valueOf(div2));
}
if(temp == 0) temp = 1;
}
if(ae.getSource() == bCls)
tf1.setText("0");
if(ae.getSource() == bDec) {
String s = tf1.getText();
for(int i = 0; i < s.length(); i++) {
if((s.charAt(i)) == '.') break;
else tf1.setText(tf1.getText()+bDec.getLabel());
}
}
}
void zero() {
if(temp == 1) tf1.setText("0");
}
}
import java.awt.*;
导入java.applet.*;
导入java.awt.event.*;
公共类主扩展小程序实现ActionListener{
按钮b0、b1、b2、b3、b4、b5、b6、b7、b8、b9;
按钮添加、bSub、bMul、bDiv、bEqu、bCls、bDec、bSqrt、bSin、bCos、bTan;
文本字段tf1;
int add、sub、mul、div、temp=0;
双sqr、s、c、ta;
字符串t=“”;
公共void init(){
setLayout(空);
setFont(新字体(“cantarell”,Font.BOLD,12));
b0=新按钮(“0”);b1=新按钮(“1”);
b2=新按钮(“2”);b3=新按钮(“3”);
b4=新按钮(“4”);b5=新按钮(“5”);
b6=新按钮(“6”);b7=新按钮(“7”);
b8=新按钮(“8”);b9=新按钮(“9”);
bAdd=新按钮(“+”);bSub=新按钮(“-”);
bSub=新按钮(“*”);bDiv=新按钮(“/”);
bEqu=新按钮(“=”);bSqrt=新按钮(“sqrt”);
bSin=新按钮(“sin”);bCos=新按钮(“cos”);
bTan=新按钮(“tan”);bCls=新按钮(“cls”);
tf1=新文本字段(“0”);
tf1.setEditable(false);
tf1.设置列(8);
tf1.立根(100100250,50);
b0.立根(100,130,50,50);
b1.立根(150、130、50、50);
b2.立根(200、130、50、50);
b3.立根(250、130、50、50);
b4.立根(100、180、50、50);
b5.立根(150、180、50、50);
b6.立根(200、180、50、50);
b7.立根(250、180、50、50);
b8.立根(100、230、50、50);
b3.立根(150、230、50、50);
新增立根(200、230、50、50);
b附属立根(250、230、50、50);
bMul.立根(100280,50,50);
bDiv.立根(150、280、50、50);
bEqu.立根(200280,50,50);
b英寸立根(300、130、50、50);
bCos.立根(300、180、50、50);
b.立根(300、230、50、50);
bSqrt.立根(250、280、50、50);
BCL.立根(300、280、50、50);
添加(b0);添加(b1);添加(b2);
添加(b3);添加(b4);添加(b5);
添加(b6);添加(b7);添加(b8);添加(b9);
添加(添加);添加(bSub);添加(bMul);添加(bDiv);
添加(bEqu);添加(bSin);添加(bCos);添加(bTan);
添加(bSqrt);添加(bCls);添加(tf1);
b0.addActionListener(本);
b1.添加ActionListener(本);
b2.addActionListener(本);
b3.添加ActionListener(本);
b4.添加ActionListener(本);
b5.添加ActionListener(本);
b6.addActionListener(本);
b7.addActionListener(本);
b8.addActionListener(本);
b9.addActionListener(本);
addd.addActionListener(这个);
b sub.addActionListener(此);
bMul.addActionListener(此);
bDiv.addActionListener(本);
bEqu.addActionListener(this);
bSqrt.addActionListener(此);
bSin.addActionListener(此);
bCos.addActionListener(这个);
bTan.addActionListener(此);
bCls.addActionListener(此);
}
已执行的公共无效行动(行动事件ae){
如果(ae.getSource()==b0){
零();
if(tf1.getText().equals(“0”))
tf1.setText(b0.getLabel());
其他的
setText(tf1.getText()+b0.getLabel());
温度=0;
}
如果(ae.getSource()==b1){
零();
if(tf1.getText().equals(“0”))
tf1.setText(b1.getLabel());
其他的
setText(tf1.getText()+b1.getLabel());
温度=0;
}
如果(ae.getSource()==b2){
零();
if(tf1.getText().equals(“0”))
tf1.setText(b2.getLabel());
其他的
setText(tf1.getText()+b2.getLabel());
温度=0;
}
如果(ae.getSource()==b3){
零();
if(tf1.getText().equals(“0”))
tf1.setText(b3.getLabel());
其他的
setText(tf1.getText()+b3.getLabel());
温度=0;
}
如果(ae.getSource()==b4){
零();
if(tf1.getText().equals(“0”))
tf1.setText(b4.getLabel());
其他的
setText(tf1.getText()+b4.getLabel());
温度=0;
}
如果(ae.getSource()==b5){
零();
if(tf1.getText().equals(“0”))
tf1.setText(b5.getLabel());
其他的
setText(tf1.getText()+b5.getLabel());
温度=0;
}
如果(ae.getSource()==b6){
零();
if(tf1.getText().equals(“0”))
setText(b6.getLabel());
其他的
setText(tf1.getText()+b6.getLabel());
温度=0;
}
如果(ae.getSource()==b7){
零();
if(tf1.getText().equals(“0”))
setText(b7.getLabel());
其他的
setText(tf1.getText()+b7.getLabel());
温度=0;
}
如果(ae.getSource()==b8){
零();
if(tf1.getText().equals(“0”))
setText(b8.getLabel());
其他的
setText(tf1.getText()+b8.getLabel());
温度=0;
}
如果(ae.getSource()==b9){
零();
if(tf1.getText().equals(“0”))
setText(b9.getLabel());
其他的
setText(tf1.getText()+b9.getLabel());
温度=0;
}
如果(ae.getSource()==bSqrt){
sqr=Double.parseDouble(tf1.getText());
tf1.setText(Double.toString(Math.sqrt(sqr));
}
如果(ae.getSource()==bSin){
s=Double.parseDouble(tf1.getText());
tf1.setText(Double.toString(Math.sin));
}
如果(ae.getSource()==bCos){
c=Double.parseDouble(tf1.getText());
tf1.se
bAdd = new Button("+"); bSub = new Button("-");
bSub = new Button("*"); bDiv = new Button("/");
bMul.setBounds(100, 280, 50, 50);
bMul = new Button("*");