2011-12-01 76 views
0

我目前在java中开发MineSweeper。我必须更新JTextFields(如图所示)当我调用setText()时,Logger显示它正确调用。但是在输出中没有反应。当setText(“...”)被调用时TextField没有得到更新?

enter image description here

我实际的代码如下...

​​

我做过的一切重新粉刷,重新确认为similar question给出,但有没有用..

+0

为了更好地提供帮助,请发布[SSCCE](http://sscce.org/)。 –

+3

很难用可用的信息来分辨问题。出现“奇怪”行为的许多Swing问题是因为未在事件分派线程上进行更新;确保您使用的是invokeAndWait或invokeLater。 – arcy

+0

在调用'setStatus()'之前,你是否调用'new StatusDisplayer()'或类?在调用'new StatusDisplayer()'之前,textfield并没有实际定义,所以调用'setStatus()'首先会导致NullPointerException异常。 – fireshadow52

回答

1

请尝试以下

private class StatusDisplayer{ 
    JTextField displayField; 
    Logger logger = Logger.getLogger("StatusDisplayer"); 
    StatusDisplayer(){ 
     displayField = new JTextField(); 
     gameInfoFieldsContainer.add(displayField); 
    } 
    void setStatus(String s){ 
      displayField.setText(s);   
      logger.info("I am in updating Display content...:"+displayField.getText()); 
     } 
    } 
} 
相关问题