3

对 Java 来说是全新的,我在一个完整的砖墙上。

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

我完全不知道如何做到这一点,尽管我已经确定我需要使用 Thread 来让它工作。

非常感谢任何/所有帮助(我有点时间紧迫)

4

1 回答 1

6

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

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

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

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

于 2012-02-17T06:26:45.750 回答