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 作为标志。
当我尝试为 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 作为标志。