直接更改JTextField显示的文本

时间:2015-01-22 14:16:21

标签: java swing jtextfield settext

我有一个JTextField活动,这是我的程序控制台。每当发生某些事情时,我只会显示一个文字,以便用户知道发生了什么。

除了我试图让一些函数直接编辑文本时,它工作正常。 一个完美的例子是我的checkJob方法:

public void checkJob(int pos){
    if(locked == false){
        if(active[pos] == true){
            textArea.setText(undoJob(pos));
        }else{
            textArea.setText(setJob(pos));
        }
    }else{
        String oldText = textArea.getText();
        textArea.setText("Das Spiel hat bereits begonnen.");
        textArea.setText(countDown(oldText));
    }

}
public String countDown(String oldText){
    long startTime = System.currentTimeMillis();
    long endTime = System.currentTimeMillis()+5000;
    long currentTime = System.currentTimeMillis();
    while (currentTime < endTime){
        if(currentTime >= startTime+1000){
            currentTime = System.currentTimeMillis();
            startTime = startTime+1000;
        }else{
            currentTime = System.currentTimeMillis();
        }
    }
    return oldText;
}

正如您所看到的,一旦锁定为true,它应该将当前在字段中的文本保存为名为oldText的String变量,将textArea设置为&#34; Das Spiel hat bereits begonnen。&#34;在countDown方法完成后,将textArea设置回旧文本。可悲的是,它只能在第二次工作,而不是在我尝试直接更改textArea时。

注意: 如果我使用它总是设置文本:

textArea.setText(method());

所以该方法返回一个要显示的String,但它不适用于:

textArea.setText("Text");

我试图改变一些属性,甚至用JPane和JTextArea替换我的JTextField,但它仍然有同样的问题。 textArea是否需要更新&#39;我直接设置文本后会自己做什么?

0 个答案:

没有答案