我有一个附带ActionListener的Button。我需要单击按钮,然后等待另一个单击事件发生以完成actoionPerformed()。这种点击可能发生在gui的任何地方。
我该怎么做呢?
更新:
我的计划有两个方面。 Map和Control,Map在任意位置上显示了几个对象,Control有按钮和其他信息。我有一个对当前所选对象的引用,每次单击一个新对象时,此引用都会更新。
所以这就是我想要做的事情:
出于我的目的,我只希望一次选择一个对象,因此我不能有2个对象的引用。所以我需要获取第一个对象并复制其数据,然后获取第二个对象。
有没有办法让按钮操作等到变量值发生变化?然后继续?
答案 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;
}
}