再次,大家好。我的加密代码比较麻烦 - 按下按钮似乎没有注册。检测按钮按下的代码如下所示。
@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)");
}
}
这个问题确实与this one有关,感谢Pshemo让我知道:)
当按下按钮时,我有System.out.println()
告诉我,当我按下下面指定的任一按钮时,没有任何内容打印到控制台。如果您需要更多信息,请询问,我很乐意添加它。
我尝试在代码中添加addActionListener()
,但我不知道如何使用它...
答案 0 :(得分:2)
我建议在评估其中一个条件之前放置一个日志语句,以查看ActionEvent实际上是否正确触发。如果是,请尝试输出动作源以确保按下正确的按钮。
否则,我首先检查你的两个按钮是否正在注册添加actionListener ....“enc.addActionListener();”。
如果看起来不错,我会尝试在setText行周围放置一个try / catch来查看“EncDec.e”或“EncDec.d”是否会抛出某种异常。
无论如何要尝试一些东西! :)
答案 1 :(得分:2)
我认为这个问题与this one有关。
您需要做的就是将您的类的对象(实现ActionListener
)与addActionListener
添加到您的按钮中,例如:
EncDecExample decExample = new EncDecExample();
enc.addActionListener(decExample);
dec.addActionListener(decExample);
enc.setVisible(true);
dec.setVisible(true);