Null Pointer Exception
De nuevo con Problemas y esta vez es con la excepción Null Pointer Exception, resulta que estoy haciendo un applet que me muestre tres campos para insertar cuenta, cliente y saldo, y que me cree un objeto cuenta y me lo muestre en el applet en un TextArea, la verdad es que yo apenas estoy comenzando con la POO y no se como quitar esa excepción. Me abre el applet, me muestra los label, text, botón, pero el fondo de applet sale transparente. Y siguiente me muestra el Null Pointer Exception.
En lo que me puedas ayudar de nuevo mil gracias.
Este es el código de el applet y el de la clase Cuenta.
import java.awt.*;
import java.awt.Graphics;
import java.applet.*;
import java.awt.event.*;
// <applet width="380" height="400" code="AppletMetodos"></applet>
public class AppletMetodos extends Applet implements ActionListener {
Label l1, l2, l3,l4;
TextField t1, t2, t3;
TextArea tA;
Button b;
Cuenta c;
public AppletMetodos() {
l1 = new Label("Numero de Cuenta");
t1 = new TextField(50);
l2 = new Label("Nombre del Cliente");
t2 = new TextField(50);
l3 = new Label("Saldo del Cliente");
t3 = new TextField(50);
l4 = new Label("Resultado");
//tA = new TextArea();
b = new Button("Despliega Cuenta");
add(l1);
add(t1);
add(l2);
add(t2);
add(l3);
add(t3);
add(b);
add(l4);
add(tA);
b. AddActionListener(this);
}
public void actionPerformed(ActionEvent ae) {
double saldo = Double.parseDouble(t1.getText());
double numCuenta = Double.parseDouble(t2.getText());
String cliente = t3.getText();
c = new Cuenta(saldo, numCuenta, cliente);
tA.setText("" + c);
repaint();
}
public void paint(Graphics g) {
c.dibujaCuenta(g);
}
}
ESTA ES LA CLASE CUENTA
import java.awt.Graphics;
public class Cuenta {
private double saldo = 0.0; // variable para el sald
private double numCuenta = 0.0; // variable para el numero de cuenta
private String cliente = ""; // variable para el nombre del cliente
public Cuenta() { // método para construir un objeto sin parámetros
saldo = 0.0;
numCuenta = 0.0;
cliente = "";
}
// método para construir un objeto con parámetros
public Cuenta(double saldo , double numCuenta, String cliente) {
this.saldo = saldo;
this.numCuenta = numCuenta;
this.cliente = cliente;
}
public double obtenSaldo() { // método que te dá el valor del saldo
return saldo;
}
public double obtenCuenta() { // método que te dá el valor de la cuenta
return numCuenta;
}
public String obtenCliente() { // método que te dá el nombre del cliente
return cliente;
}
// método que sirve para cambiar el valor //del saldo
public void cambiaSaldo(double saldo) {
this.saldo = saldo; // this se utiliza porque se esta utilizando (saldo)
// como parámetro y como
// variable de instancia y esto es para que no se confunda
}
// método que te sirve para cambiar el valor de la cuenta
public void cambiaCuenta(double numCuenta) {
this.numCuenta = numCuenta; // this se utiliza porque se esta utilizando (numCuenta)
//como parámetro y como
// variable de instancia y esto es para que no se confunda Java
}
// método que te sirve para cambiar el nombre del cliente
public void cambiaCliente(String cliente) {
this.cliente = cliente; // this se utiliza porque se esta utilizando (Cliente)
//como parámetro y como
// variable de instancia y esto es para que no se confunda Java
}
public void dibujaCuenta(Graphics g) {
//tA.setText("" + saldo + numCuenta + cliente);
g.drawString("" + obtenSaldo() + obtenCuenta() + obtenCliente(),80,250);
}
}
En lo que me puedas ayudar de nuevo mil gracias.
Este es el código de el applet y el de la clase Cuenta.
import java.awt.*;
import java.awt.Graphics;
import java.applet.*;
import java.awt.event.*;
// <applet width="380" height="400" code="AppletMetodos"></applet>
public class AppletMetodos extends Applet implements ActionListener {
Label l1, l2, l3,l4;
TextField t1, t2, t3;
TextArea tA;
Button b;
Cuenta c;
public AppletMetodos() {
l1 = new Label("Numero de Cuenta");
t1 = new TextField(50);
l2 = new Label("Nombre del Cliente");
t2 = new TextField(50);
l3 = new Label("Saldo del Cliente");
t3 = new TextField(50);
l4 = new Label("Resultado");
//tA = new TextArea();
b = new Button("Despliega Cuenta");
add(l1);
add(t1);
add(l2);
add(t2);
add(l3);
add(t3);
add(b);
add(l4);
add(tA);
b. AddActionListener(this);
}
public void actionPerformed(ActionEvent ae) {
double saldo = Double.parseDouble(t1.getText());
double numCuenta = Double.parseDouble(t2.getText());
String cliente = t3.getText();
c = new Cuenta(saldo, numCuenta, cliente);
tA.setText("" + c);
repaint();
}
public void paint(Graphics g) {
c.dibujaCuenta(g);
}
}
ESTA ES LA CLASE CUENTA
import java.awt.Graphics;
public class Cuenta {
private double saldo = 0.0; // variable para el sald
private double numCuenta = 0.0; // variable para el numero de cuenta
private String cliente = ""; // variable para el nombre del cliente
public Cuenta() { // método para construir un objeto sin parámetros
saldo = 0.0;
numCuenta = 0.0;
cliente = "";
}
// método para construir un objeto con parámetros
public Cuenta(double saldo , double numCuenta, String cliente) {
this.saldo = saldo;
this.numCuenta = numCuenta;
this.cliente = cliente;
}
public double obtenSaldo() { // método que te dá el valor del saldo
return saldo;
}
public double obtenCuenta() { // método que te dá el valor de la cuenta
return numCuenta;
}
public String obtenCliente() { // método que te dá el nombre del cliente
return cliente;
}
// método que sirve para cambiar el valor //del saldo
public void cambiaSaldo(double saldo) {
this.saldo = saldo; // this se utiliza porque se esta utilizando (saldo)
// como parámetro y como
// variable de instancia y esto es para que no se confunda
}
// método que te sirve para cambiar el valor de la cuenta
public void cambiaCuenta(double numCuenta) {
this.numCuenta = numCuenta; // this se utiliza porque se esta utilizando (numCuenta)
//como parámetro y como
// variable de instancia y esto es para que no se confunda Java
}
// método que te sirve para cambiar el nombre del cliente
public void cambiaCliente(String cliente) {
this.cliente = cliente; // this se utiliza porque se esta utilizando (Cliente)
//como parámetro y como
// variable de instancia y esto es para que no se confunda Java
}
public void dibujaCuenta(Graphics g) {
//tA.setText("" + saldo + numCuenta + cliente);
g.drawString("" + obtenSaldo() + obtenCuenta() + obtenCliente(),80,250);
}
}
Respuesta de jruben
1