按下时按钮似乎没有响应

时间:2012-12-14 17:55:57

标签: java swing jframe border-layout

再次,大家好。我的加密代码比较麻烦 - 按下按钮似乎没有注册。检测按钮按下的代码如下所示。

@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(),但我不知道如何使用它...

2 个答案:

答案 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);