1

再次,大家好。我的加密代码有更多问题 - 按下的按钮似乎没有注册。检测按钮按下的代码如下。

@Override
public void actionPerformed(ActionEvent e) {
    if (e.getSource() == enc && !in.getText().equalsIgnoreCase("")) {
        out.setText(EncDec.e(in.getText(), 5));
        System.out.println("Button pressed (Encrypt)");
    }
    else if(e.getSource() == dec && !in.getText().equalsIgnoreCase("")) {
        out.setText(EncDec.d(in.getText()));
        System.out.println("Button pressed (Decrypt)");
    }
}

这个问题确实与这个问题有关并且感谢 Pshemo 让我知道 :)当我按下按钮时,

System.out.println()可以告诉我,当我按下以下任一按钮时,控制台不会打印任何内容。如果您需要更多信息,请询问,我很乐意添加。

我尝试添加addActionListener()代码,但我不知道如何使用它...

4

2 回答 2

2

我建议在评估任一条件之前放置一个日志语句,以查看 ActionEvent 实际上是否正确触发。如果是,请尝试输出操作源以确保按下了正确的按钮。

否则,我将首先检查您的两个按钮是否正在注册添加的 actionListener....“enc.addActionListener();”。

如果看起来不错,我会尝试在 setText 行周围放置一个 try/catch,以查看“EncDec.e”或“EncDec.d”是否抛出某种异常。

无论如何都要尝试一些东西!:)

于 2012-12-14T18:05:50.010 回答
2

我认为这个问题与这个有关。

您需要做的就是将您的类的对象(实现ActionListener)添加addActionListener到您的按钮中,例如:

EncDecExample decExample = new EncDecExample();
enc.addActionListener(decExample);
dec.addActionListener(decExample);
enc.setVisible(true);
dec.setVisible(true);
于 2012-12-14T18:13:16.670 回答