2017-10-13 2 views
-1

J'ai des problèmes pour appeler une méthode get d'une classe et l'implémenter dans une classe actionlistner séparée. Voici le code de ma méthode get qui récupère le texte d'un JTextField.La classe ActionListener ne peut pas obtenir les valeurs d'une autre classe

public String getTitleTextField() { 
    return this.TitleTextField.getText(); 
} 

Le bouton qui appelle la classe listner est ci-dessous:

this.AddButton = new JButton("Add"); 
AddButton.setBounds(20, 161, 89, 23); 
AddButton.addActionListener(new Listener()); 
add(AddButton); 

Voici le code de ma classe listner: `

import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

public class Listener implements ActionListener{ 

    FilmPanel view; 
    SaveData save; 
    Object[] row = new Object[1]; 

    public void actionPerformed(ActionEvent arg0) { 
     row[0] = view.getTitleTextField(); 
     view.model.addRow(row); 
     try { 
      save.saveTable(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    }; 
} 

L'erreur vient comme

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException 
    at assignment.listener.actionPerformed(listener.java:13) 

whi les points ch à ce row[0] = view.getTitleTextField();

Merci pour toute aide :)

EDIT:

Essayer de comprendre ce qui ne va pas ne est pas une exception NULL

+3

Copie possible de [Qu'est-ce qu'une exception NullPointerException, et comment la réparer?] (Https://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i -fix-it) –

+0

Comment est-ce un double? – user123123123

+1

Quand la vue est-elle réglée? 'FilmPanel view;' signifie 'view' obtiendra la valeur' null', ce qui explique le 'NullPointerException' – Stefan

Répondre

1

Ajouter une référence à ce lorsque vous créez le Listener :

new Listener(this); // instead of new Listener() in your code 

Ajouter un constructeur dans le Listener:

public Listener(FilmPanel view) { 
    super(); 
    this.view = view; 
} 
+1

Ceci est la réponse PARFAITE c'était quelque chose de si simple mais merci !!! – user123123123

+0

Je suis heureux d'aider :) – Stefan

+1

Juste une note se référant à la question originale. Il y a aussi un champ 'SaveData save' qui n'est pas initialisé comme' FilmView view'. Cependant, votre gestion des exceptions masquera cette erreur. Mais vous en êtes peut-être déjà conscient et la raison pour laquelle la gestion des exceptions existe est parce qu'elle doit encore être implémentée. –