2010-12-07 34 views
4

j'ai la méthode suivante:java MouseListener et MouseAdapter - passent dans la variable

public static void createDialog(Button b, String message) 
{ 
    MouseListener mouseListener = new MouseAdapter() { 
     public void mousePressed(MouseEvent mouseEvent) { 
      if (SwingUtilities.isLeftMouseButton(mouseEvent)) { 
       JOptionPane.showConfirmDialog(null, 
         "mymessage", "mymessage", JOptionPane.YES_NO_OPTION); 
      } 
     } 
    }; 
} 

Je veux être en mesure d'obtenir le message de paramètres, dans le JOptionPane où est dit MonMessage. Y a-t-il un moyen de faire cela?

Je ne peux accéder à aucune variable de l'intérieur de la classe qui se trouve à l'extérieur. Y a-t-il un moyen d'obtenir cette valeur? J'aimerais éventuellement avoir quelques autres paramètres ici aussi.

Merci!

+0

« Je ne peux pas accéder à toutes les variables à l'intérieur de la classe qui sont à l'extérieur." Pourquoi? Êtes-vous résistant à la déclaration de vos variables/paramètres 'final'? –

+0

non, pas résistant, juste ignorant de la possibilité je suppose ... merci DIEU vous étiez là pour me mettre le détroit! – kralco626

Répondre

5

Je ne peux accéder à aucune variable à l'intérieur de la classe qui est à l'extérieur.

pas en général, mais vous pouvez accéder à des variables finales, donc il suffit de mettre final en face du paramètre String message:

public static void createDialog(Button b, final String message) { 
    //         ^^^^^ 
    MouseListener mouseListener = new MouseAdapter() { 
     public void mousePressed(MouseEvent mouseEvent) { 
      if (SwingUtilities.isLeftMouseButton(mouseEvent)) { 
       JOptionPane.showConfirmDialog(null, 
         message, message, JOptionPane.YES_NO_OPTION); 
      } 
     } 
    }; 
} 
+0

Merci! Quelle merveilleuse réponse! et tu l'as dit si gentiment! – kralco626

+0

+1 Fonctionne comme un charme! Vous avez répondu si vite que je dois attendre 10 minutes de plus pour le marquer – kralco626

+0

Excellent travail. Travaillé comme un charme – qasimzee