2012-07-25 5 views
0

Je passe de Java à Python et j'ai un peu de difficulté avec mon projet. J'écris une interface graphique dans Swing pour des chiffrements que j'enseigne. J'ai deux paquets dans mon projet - cryptolib et cryptogui. Cryptolib contient tous les différents chiffrements en tant que classes et cryptogui est mon interface graphique.Impossible d'utiliser la classe importée dans une classe anonyme

Tous mes chiffrements sont des sous-classes d'une classe de chiffrement que j'ai définie. Actuellement, j'ai de la difficulté à utiliser la classe suivante.

package cryptolib; 
public class SubstitutionCipher extends Cipher{ 
... implementation here ... 
} 

Dans ma classe de GUI, je définir un élément de menu pour passer à l'algorithme de chiffrement de substitution en utilisant une classe anonyme.

package cryptogui; 
import cryptolib.*; 
public class CryptoSwing extends JFrame { 
    private Cipher cipher; 
    public CryptoSwing() { 
     JMenuItem mntmSubstitution = new JMenuItem("Substitution"); 
     mntmSubstitution.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent arg0) { 
       cipher = SubstitutionCipher(txtSubKeyword.getText()); 
      } 
     }); 
} 

Le problème que je rencontre est que, tandis que "chiffrement de chiffrement privé;" fonctionne, le code SubstitutionCipher dans le ActionListener me donne l'erreur

The method SubstitutionCipher(String) is undefined for the type new ActionListener(){} 

Les classes I Importés depuis Swing (java.awt.CardLayout, par exemple) fonctionnent parfaitement. Je sais que c'est probablement quelque chose de fondamental que j'ai raté, mais j'ai cherché et je n'arrive pas à trouver le problème.

Répondre

1
cipher = SubstitutionCipher(txtSubKeyword.getText()); 

devrait probablement

cipher = new SubstitutionCipher(txtSubKeyword.getText()); 

Notez le mot-clé new.

+0

Je ne peux pas croire que j'ai foiré ça. J'ai tout le reste juste et c'est ce qui m'a manqué ?! – MathFreak

Questions connexes