我想知道是否有什么方法可以将switch语句与actionListener一起使用,而不是if-else语句。

我尝试了两件事:

1)尝试使用ae.getSource()作为开关

public void actionPerformed(ActionEvent ae)
{
    switch(ae.getSource())
    {
       case b1:
           //statement
           break;
    }
}


我发现这显然不起作用,因为ae.getSource()将返回该对象

2)尝试将ae.getSource()值转换为String

public void actionPerformed(ActionEvent ae)
{
    String src = ae.getSource().toString();
        switch(src)
        {
            case "b1":
                //statement
                break;
        }
}


这也不起作用,但我虽然值得一试。因此,有什么方法可以使这项工作奏效,或者我应该只依靠可靠的If-Else。

最佳答案

您可以像这样使用它(因为它对我有用)

public void actionPerformed(ActionEvent ae)
{
    switch(ae.getActionCommand())
    {
       case "b1":
           //statement
           break;
    }
}

10-08 08:27