如何使GUI上的多个按钮起作用

时间:2019-05-23 22:14:02

标签: java

我正在创建带有多个按钮的GUI程序。我目前只能使用其中一个按钮。这是我的Button Listener类。我希望能够使用“测试”按钮,然后再使用“是”或“否”按钮。让我知道您是否需要查看更多代码。

public class ButtonListener implements ActionListener
{
    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource()==TestButton)
        {

            TestWord = (Text_Input.getText());

            StringBuilder RevTestWord = new StringBuilder();
            RevTestWord.append(TestWord);
            RevTestWord = RevTestWord.reverse();

            DisplayText = "Is " + RevTestWord + " a real word?";    
            Test_Anadrome.setText(DisplayText);

            if(e.getSource()==YesButton)
            {
            DisplayText = "Word added to Anadrome list.";
            Test_Anadrome.setText(DisplayText);
            }

            if(e.getSource()==NoButton)
            {
                DisplayText = "Type a different word and press the 'Test Word' Button.";
                Test_Anadrome.setText(DisplayText);
            }

        }
    }
}

对不起,我刚接触Java。

2 个答案:

答案 0 :(得分:0)

看起来File file = new File(jar.destinationDirectory.get().asFile, "foo.txt"); YesButton的if / else语句在NoButton的if语句中,因此仅在{{ 1}}。尝试将此代码移至if语句之外:

TestButton

答案 1 :(得分:0)

您需要将所有测试都置于同一级别。嵌套的if会引起问题。并记住使用if / else。如果前一个检查成功,则继续进行其他检查毫无意义。

您还可以设置ActionCommand,它是一个字符串。对于使用actionListener的组件,您可以执行例如button.setActionCommand("mycommand")

然后在actionPerformed(ActionEvent e)中可以

String cmd = e.getActionCommand();

这使您可以在按钮或其他组件之间进行区分,而无需直接访问它们的实例。

如果您未设置ActionCommand,则默认为按钮的文本。