检测按钮的功能是否完成
Detecting that a button's function is completed
我在我创建的一些 JButton 上放置了一个 actionListener。这样一来,如果用户单击一个按钮,就会调用另一个 class。我想检测 class 是否已完成其功能...为了更清楚起见,这是我的代码:
Quest.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent iq) {
JButton source = (JButton) iq.getSource();
if (point.equals(points.get(0))){
q1 = new Quest1(); //class called up
source.setEnabled(false);
//This is where my problem lies.... I want to be able to detect when the button's action is finished...than some other action takes place!
}
});
请帮帮我.....
你为什么不在那里调用一个方法?
Quest.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent iq) {
JButton source = (JButton) iq.getSource();
if (point.equals(points.get(0))){
q1 = new Quest1(); //class called up
source.setEnabled(false);
}
onButtonActionDone()
});
private void onButtonActionDone() {
...
}
您已经为此编写了代码!
你看,除非你付出额外的努力,否则调用另一个方法的方法(比如在这种情况下:使用 new 构造另一个对象)会做一些事情依次!
意思是:在你的方法中所有其他事情发生之后到达你的监听器中的最后一行评论!
唯一需要注意的是:如果 Quest 的构造函数将创建并启动另一个 Thread,那么当然,事情会有所不同。然后,您需要在所涉及的线程之间进行手工通信。但是我以某种方式猜测这里不是这种情况。
将 boolean completed
更改为 true
然后检查。
我在我创建的一些 JButton 上放置了一个 actionListener。这样一来,如果用户单击一个按钮,就会调用另一个 class。我想检测 class 是否已完成其功能...为了更清楚起见,这是我的代码:
Quest.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent iq) {
JButton source = (JButton) iq.getSource();
if (point.equals(points.get(0))){
q1 = new Quest1(); //class called up
source.setEnabled(false);
//This is where my problem lies.... I want to be able to detect when the button's action is finished...than some other action takes place!
}
});
请帮帮我.....
你为什么不在那里调用一个方法?
Quest.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent iq) {
JButton source = (JButton) iq.getSource();
if (point.equals(points.get(0))){
q1 = new Quest1(); //class called up
source.setEnabled(false);
}
onButtonActionDone()
});
private void onButtonActionDone() {
...
}
您已经为此编写了代码!
你看,除非你付出额外的努力,否则调用另一个方法的方法(比如在这种情况下:使用 new 构造另一个对象)会做一些事情依次!
意思是:在你的方法中所有其他事情发生之后到达你的监听器中的最后一行评论!
唯一需要注意的是:如果 Quest 的构造函数将创建并启动另一个 Thread,那么当然,事情会有所不同。然后,您需要在所涉及的线程之间进行手工通信。但是我以某种方式猜测这里不是这种情况。
将 boolean completed
更改为 true
然后检查。