2010-04-18 5 views
1

J'ai créé un homme tableau:L'utilisation d'un tableau en tant que paramètre à une classe

 
public main blah blah{ 
man = man[10]; 
} 

L'homme a des domaines tels que

 
Man.name; 
Man.age; 
... 

En classe Homme, il existe une méthode OnClick qui ouvre une nouvelle fenêtre montrant son nom et son âge.

 
public Man(){ 

    Onclick(){ 
     InfoWindow showinfo = new InfoWindow(this.getid()) // If this is Man[2] the id would be 2. 

} 

Et en classe InfoWindow:

 
public class InfoWindow extends JFrame{ 
    public InfoWindow(Man selectedMan){ 
     setSize(300, 200); 
     JLabel info = new JLabel(selectedMan.getname()); 
     add(info); 
     info.setVisible(true); 
    } 
} 

Fondamentalement, c'est wanna acomplish (spectacle en pseudocode), passer un homme [i] dans une classe que lorsqu'une fenêtre est créée, montre les informations connexes à cet homme. C'est comme ça que je suis en train d'essayer de l'implémenter mais ça ne marche pas, je suis à peu près sûr qu'il y a une idée fausse de ma part dans une certaine partie.

Une aide?

Code actuel:

 
***MAN CLASS*** 
private class MouseListenerHandler extends MouseAdapter { 
     public void mousePressed(MouseEvent e) { 
      InfoWindow manShowInfo = new InfoWindow(this); Not Working. Getting "constructor not defined" 
      unitShowInfo.setVisible(true); 

     } 
    } 

*InfoWindow class* 
public class InfoWindow extends JFrame { 
    public InfoWindow(Man selectedMan){ 
     setSize(300, 200); 
     JLabel label = new JLabel(selectedMan.getName()); 
     add(label); 
     label.setVisible(true); 

    } 

And the Man[] is created in the main class. 
} 
+2

Une description des symptômes aiderait. Est-ce que ça ne compile pas? Est-ce qu'il lance une exception (quelle exception)? Est-ce juste échouer silencieusement? Autre chose? –

Répondre

4

Essayez ceci:

InfoWindow manShowInfo = new InfoWindow(Man.this); 

Parce que l'écouteur d'événement lui-même est une instance d'objet, une this simple fait référence à l'auditeur. En faisant Man.this, vous extrayez l'instance Man pour passer dans le InfoWindow.

+0

+1 voir http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.8.3 – barrowc

+0

A travaillé! C'est quand OOP devient compliqué pour les débutants ... –

Questions connexes