自动更新JTextArea

Kra*_*ath 3 java concurrency swing jtextarea automatic-updates

对Java完全陌生,我感到一头雾水。

我的系统上有一个JTextArea,我想进行实时更新,因此,当将某些内容添加到table2(在我的数据库中)时,我的服务器从数据库中提取新值,然后更新JTextArea。

我完全不知道如何执行此操作,尽管我已经确定需要使用Thread才能使其正常工作。

任何/所有帮助都将不胜感激(对此我有点时间不满)

npi*_*nti 5

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

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

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

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