Excepción de puntero nulo cuando se utiliza getText () con JTextField

Tinkerman255:

Yo estaba trabajando en la creación de una clase de contenedor para un objeto JTextField, pero yo sigo corriendo en problemas cada vez que intento para obtener el texto en el campo de texto.

class myTextField{
String defaultText;
String currentText = "";
JTextField field;
int xPos;
int yPos;
int xSize;
int ySize;

myTextField(JFrame frame, String newDefaultText, int newXPos, int newYPos, int newXSize, int newYSize){
    defaultText = newDefaultText;
    xPos = newXPos;
    yPos = newYPos;
    xSize = newXSize;
    ySize = newYSize;

    JTextField label = new JTextField(defaultText);
    frame.add(label);
    label.setBounds(xPos, yPos, xSize, ySize);
}

public void setText(String text) {
    this.currentText = field.getText();
    if(text == "") {
        this.currentText = this.defaultText;
    }
    this.currentText = text;
}

public String getText() {
    System.out.println(field.getText());
    this.currentText = field.getText();
    return this.currentText;

    }
}

Cada vez que utilice la función getText () de esta clase, que me da este error:

Exception in thread "main" java.lang.NullPointerException
at Examples.myTextField.getText(Example_312.java:182)
at Examples.Example_312.updateFrame(Example_312.java:81)
at Examples.Example_312.main(Example_312.java:49)

Por desgracia, este error no es muy descriptivo, y por lo que estoy teniendo problemas para encontrar lo que va mal en mi código. Sé que está fallando cuando llamo "field.getText ();", pero no sé qué. Si alguien puede explicar a mí, u ofrecer una solución, yo realmente lo aprecio!

Gracias completo Guy:

En su myTextFieldconstructor supongo que quería para inicializar la JTextField field;variable de instancia, sino que ha creado un local de la variable JTextField label = new JTextField(defaultText);.

Creo que se debe cambiar la JTextField label = new JTextField(defaultText);de su constructor para:

 field = new JTextField(defaultText);
 frame.add(field);
 field.setBounds(xPos, yPos, xSize, ySize);

A continuación, en las salas si se invoca el comprador getText()no se enfrentan a ninguna NullPointerException.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=235916&siteId=1
Recomendado
Clasificación