Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 直接更改JTextField显示的文本_Java_Swing_Jtextfield_Settext - Fatal编程技术网

Java 直接更改JTextField显示的文本

Java 直接更改JTextField显示的文本,java,swing,jtextfield,settext,Java,Swing,Jtextfield,Settext,我有一个JTextField活动,它是我的程序控制台。每当发生什么事情,我都会显示一个文本,让用户知道发生了什么 除了我尝试让一些函数直接编辑文本外,它工作得很好。 我的checkJob方法就是一个很好的例子: public void checkJob(int pos){ if(locked == false){ if(active[pos] == true){ textArea.setText(undoJob(pos)); }el

我有一个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;
}
因此,该方法返回要显示的字符串,但不适用于:

textArea.setText("Text");

我试图改变一些属性,甚至用JPane和JTextArea替换我的JTextField,但它仍然存在同样的问题。在我直接设置文本后,文本区域是否需要自我“更新”?

我刚刚注意到一件有趣的事情:文本实际上在文本区域中。我添加了一些System.out.println(textArea.getText());而且它确实写出了正确的文本。因此,这个问题似乎是一个bug,其中没有显示内容。注意:Java和Javascript是完全不同的语言。
textArea.setText("Text");