Je suis en train d'exécuter ce code dans l'applet java via appletviewer dans Fedora 18. Mais je reçois cette erreurQuel est le problème avec ce code Java Applet?
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)
Selon mon code ligne 42ème dans mon code est bMul.setBounds(100, 280, 50, 50);
mais ce n'est pas mal AS- autant que je sache. Après une recherche sur Google, je trouve que
NullPointerException est une exception d'exécution lancée par la machine virtuelle Java lorsque votre code d'application, d'autres API référencé (s) ou middleware (Weblogic, WAS, JBoss ...) rencontre la conditions suivantes:
- tentative d'invoquer une méthode d'instance d'un objet nul
- tentative d'accès ou de modifier un champ particulier d'un objet nul
- tenter d'obtenir la longueur d'une telle ob null Ject comme un tableau
J'ai essayé dur, mais a échoué à faire fonctionner. Aidez-moi, s'il vous plaît. Ici, je fournis le code du fichier 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");
}
}
Vous venez de trouver cela dans une minute. Hou la la! Merci @JonSkeet. Maintenant, ça fonctionne bien. Merci de votre aide. – KrazzyProgrammer
@ user2078824 Pour la prochaine fois, vous pouvez simplement regarder le message d'erreur. Il dit qu'il y avait une 'NullPointerException' sur la ligne 42. A la ligne 42, vous avez deux expressions, donc l'une d'entre elles doit contenir une variable qui contient la valeur' null'. Il n'y a que deux variables utilisées ici, donc il est assez facile de trouver le problème. ;) – brimborium