JFrame显示的文字无法更新

时间:2015-12-23 21:35:30

标签: java swing jframe jtextarea jtextpane

我正在制作一个垄断程序,在单独的JFrame中显示所有游戏信息,例如名称,银行帐户和所拥有的属性。我可以开始显示正确的信息,但没有根据要求更新。到目前为止,我已经尝试过类似代码的JPanes和JTextAreas。

JFrame infoFrame = new JFrame();
String finString;
JTextPane info = new JTextPane();

info.setBackground(Color.GRAY);
info.setEditable(true);
infoFrame.add(info);
infoFrameControl();
info.setEditable(false);

void infoFrameControl(){
    finString = "Current Standings\n=================\n";

    for(int i=0; i<players.size(); i++){

        //this loop determines what is stored in finString
        //I know this works because I've printed it in the console
    }

    finString += "\n";
    System.out.println(finString);

    info.setText(finString);    
}

这个工作正常,直到我使用此代码从另一个类调用此方法

mn.info.setEditable(true);
mn.infoFrameControl();
mn.info.setEditable(false);

其中mn是包含infoFrameControl()类的类的对象。此时,它从未更新过。我也使用过info.updateUI(),但它也没有用。我做错了什么。

1 个答案:

答案 0 :(得分:-1)

我对[{1}}并不太熟悉,但也许,您应该在Swing内使用JTextPane,而不是JLabel?您可以找到文档here,但它似乎很容易切换上面显示的文本。