Java 直接更改JTextField显示的文本
我有一个JTextField活动,它是我的程序控制台。每当发生什么事情,我都会显示一个文本,让用户知道发生了什么 除了我尝试让一些函数直接编辑文本外,它工作得很好。 我的checkJob方法就是一个很好的例子: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
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");