Java 更新JTabbedPane组件
我正在编写一个简单的聊天程序,在Java 更新JTabbedPane组件,java,swing,jtabbedpane,Java,Swing,Jtabbedpane,我正在编写一个简单的聊天程序,在JTabbedPane的不同选项卡中显示不同的对话框。我使用JTextArea来显示对话框。我在选项卡中添加了一个JTextArea,如下所示: JTextArea referenceToAppend = new JTextArea(); JTabbedPane.addTab(title,new JPanel(new JScrollBar(referenceToAppend))); 我将引用referenceToAppend放入一个列表,然后当我需要追加文本
JTabbedPane
的不同选项卡中显示不同的对话框。我使用JTextArea
来显示对话框。我在选项卡中添加了一个JTextArea
,如下所示:
JTextArea referenceToAppend = new JTextArea();
JTabbedPane.addTab(title,new JPanel(new JScrollBar(referenceToAppend)));
我将引用referenceToAppend
放入一个列表
,然后当我需要追加文本时,我会这样做
以下是:
List.get(index).append(textForAppend);
问题是:我的应用程序没有响应。我怎样才能解决这个问题?我在论坛上查阅了很多信息,当然还有甲骨文。我找不到我需要的东西。也许我没有注意到,也许我不理解一些简单的事情。如果有人能给出一个简单的例子或链接到另一个讨论这个问题的论坛,我将不胜感激。看一看。它允许您在后台线程中执行操作,并向事件调度线程报告信息。如果需要阻止套接字读取,则需要在后台线程上执行该操作,以保持UI的响应。听起来像是在阻止套接字读取。发布更多您的代码,或者一个,将帮助我们帮助您。非常感谢Jeffrey和Devon_C__Miller!我知道swing中的单线程模型,但认为追加文本的操作不会花费太多时间。但据我所知,问题更为严重-我必须仅在EDT中使用swing组件。下一个代码解决了我的所有问题:new SwingWorker(){public Object doInBackGround(){return null}public void done(){JTextArea.append(text)}.execute();非常感谢!!