让ActionListener等待发生单击事件

时间:2015-04-30 05:47:50

标签: java swing actionlistener

我有一个附带ActionListener的Button。我需要单击按钮,然后等待另一个单击事件发生以完成actoionPerformed()。这种点击可能发生在gui的任何地方。

我该怎么做呢?

更新:

我的计划有两个方面。 Map和Control,Map在任意位置上显示了几个对象,Control有按钮和其他信息。我有一个对当前所选对象的引用,每次单击一个新对象时,此引用都会更新。

所以这就是我想要做的事情:

  1. 点击第一个对象并检索一些信息
  2. 点击控制区域中的按钮
  3. 点击第二个对象并检索更多信息
  4. 按钮操作使用两次点击的信息。
  5. 出于我的目的,我只希望一次选择一个对象,因此我不能有2个对象的引用。所以我需要获取第一个对象并复制其数据,然后获取第二个对象。

    有没有办法让按钮操作等到变量值发生变化?然后继续?

1 个答案:

答案 0 :(得分:0)

您可以在窗口(Jframe)上使用MouseListener,在按钮上使用ActionListener,并使用全局标记buttonClicked来检查按钮是否被单击,并默认将其设置为false。

buttonClicked = false;

然后在你的行动中,

 public void actionPerformed(ActionEvent event) {
    if(event.getSource() == button) {
       //set the flag to true like 
       buttonClicked = true;
    }
 }

然后在MouseListener的鼠标点击事件中执行此操作。

public void mouseClicked(MouseEvent e) {
    if(buttonClicked) {
       //your code..

       //and you could set the button clicked flag to false again.
       buttonClicked = false;
    }
}