不能在匿名类中使用导入的类

时间:2012-07-25 17:04:52

标签: java swing user-interface import anonymous-class

我正在从Python切换到Java,我的项目有点困难。我在Swing中为一些我教过的密码编写了一个GUI。我的项目中有两个包 - cryptolib和cryptogui。 Cryptolib包含所有不同的密码作为类,cryptogui是我的GUI。

我的所有密码都是我定义的Cipher类的子语句。目前,我在使用以下课程时遇到了困难。

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

在我的GUI类中,我定义了一个菜单项,使用匿名类切换到Substitution cipher。

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());
             }
        });
 }

我遇到的问题是“私有密码密码”;工作,ActionListener中的SubstitutionCipher代码给我错误

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

我从Swing导入的类(例如java.awt.CardLayout)工作得很好。我知道这可能是我错过的基本内容,但我已经搜索过,似乎无法找到问题。

1 个答案:

答案 0 :(得分:1)

cipher = SubstitutionCipher(txtSubKeyword.getText());

应该是

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

请注意new关键字。