Java addActionListener,正在发生多个实例

Java addActionListener, multiple instance is occurring

当我尝试为 comboBox_0 执行操作时,它会打印“红色”并将 comboBox_1 上的选定项目更改为“苹果”,但是它也会为 [=23] 生成操作事件=] 并且还将打印“蓝色”。

我如何执行此操作,以便程序不会将更改 comboBox_1 项目视为生成操作事件。我不需要它来打印“蓝色”,只需要打印“红色”并更改为“苹果”。

有没有办法让 java 区分用户执行的操作与程序本身?

抱歉,我是这个领域的新手,我无法查看他们讨论 ActionEvents 的来源。

示例如下:

public void actionPerformed(ActionEvent e) 
{
    if(e.getSource()==comboBox_0)
    {
        System.out.println("red");
        comboBox_1.setSelectedItem("apple");
    }
    else if(e.getSource()==comboBox_1)
    {   
        System.out.println("blue");
    }
    else if(e.getSource()==comboBox_2)
    {
        System.out.println("green");
    }
}

您正在发起一个事件,但同时又不想使用它。在您的程序中输入标志。使用这个:

private boolean flag = false;
public void actionPerformed(ActionEvent e)
{
    if(e.getSource()==comboBox_0)
    {
        System.out.println("red");
        comboBox_1.setSelectedItem("apple");
        flag = true;
    }
    else if(e.getSource()==comboBox_1)
    {
        if(flag){
            flag = false;
            return;
        }
        System.out.println("blue");
    }
    else if(e.getSource()==comboBox_2)
    {
        System.out.println("green");
    }
}

遗憾的是,无法区分事件源(软件或user-defined)。但没有必要。如果有这样的实现,它无论如何都会被简化为一个“标志”。您可以使用布尔值或 Emun 作为标志。