我有一个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;我直接设置文本后会自己做什么?