方法之间有java等待

时间:2015-04-14 13:26:45

标签: java wait

在我的空闲时间,我正在通过制作游戏来练习java。我有一个按钮,一个接一个地调用2个方法,它们都改变了相同的UI对象。

我找不到方法/无法理解如何让java在方法执行之间等待,以便在第一个方法完成之后和第二个方法再次更改之前我可以看到字段的值

我理解的方式,最好的方法是使用摇摆计时器,但我根本不理解它的语法。我尝试使用睡眠,但即使它等待指定的时间,它只显示原始值和最终值,省略中间的值。

我拥有的是:

label.setIcon(Alive);

private void cmdAttackActionPerformed(java.awt.event.ActionEvent evt) {
    //inside method1:
    label.setIcon(Dead);

    //wait a few seconds to see the label while setIcon(Dead) is the value

    //inside method2:
    if (reinforcements!=0){
        label.setIcon(Alive);
    }
}

所以我尝试修补一些并设法获得结果,但我仍然无法让它做我想做的事。

public void run() {
    String output="";
    for (int i = 0; i < combatInfo[info].length(); i++) {
        output=output+combatInfo[info].substring(i, i+1);
        if(i%2==0){
            cmdInfo.setText(output);
            System.out.println(output);
        }
        try {
            Thread.sleep(100);
        } catch (InterruptedException ex) {}
    }
};

println()一次只能执行一步,但是,setText()仍然只显示最终值,跳过它们之间的任何内容。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

托马斯 stackoverflow上有其他用户使用相同的(非常相似的问题)。我建议你在发帖前进行搜索。

您可以按照说法使用计时器,请以此答案为例: java: run a function after a specific number of seconds

基本上你会调用method1并使用计时器在将来调用method2(预定)。

答案 1 :(得分:0)

最好的方法是使用调试器并设置断点 - 任何现代IDE都支持:)