自动更新JTextArea

时间:2012-02-17 06:23:37

标签: java swing concurrency jtextarea automatic-updates

完全是Java新手,我正处于一个完整的砖墙。

我的系统上有一个JTextArea,我希望有一个实时更新,所以当某些东西被添加到table2(在我的数据库中)时,我的服务器从数据库中提取新值,然后更新JTextArea。 / p>

我完全不知道如何做到这一点,虽然我已经知道我需要使用Thread来使它工作。

非常感谢任何/所有帮助(我对此有点紧张)

1 个答案:

答案 0 :(得分:5)

您可以做的是让您的线程在给定的时间段内轮询您的数据库,否则,让更新数据库的过程触发您的GUI类可以接收的某种事件。

一旦发生这种情况,您就可以使用SwingUtilities.invokeLater()更新您的JTextArea。这样的事情应该做:

if (eventIsFired)
{
    final String jtextAreaText = ...
    SwingUtilities.invokeLater(new Runnable()
    {
        @Override
        public void run()
        {
            jTextArea.setText(jTextAreaText);
        }            
    });
}

假设jTextArea是您实际的JTextArea,它被声明为全局变量。 jTextAreaText需要被声明为final,以便可以通过内部类访问它。