我正在使用Java创建一个UDP对等聊天程序。在while循环中更新我的textArea
没有这个while循环我的textarea
while(true)
{
DatagramPacket incoming = new DatagramPacket(buffer, buffer.length);
try {
serverSocket.receive(incoming);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String incomingMessage = new String (incoming.getData());
textArea.setText("Client: " + incomingMessage);
System.out.println(incomingMessage);
textArea.setText("Client: " + incomingMessage);
}
随着while循环我的textarea母鹿不更新,我已经用在那里的调用尝试:
java.awt.EventQueue.invokeLater(new Runnable() { public void run() {
try {
textArea.append(msg);
但它似乎并没有继续工作。
我使用Eclipse月神窗口的核心建设者,它会自动做出这种自动化代码
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Server window = new Server();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
这是一个被写入自动化的代码,并通过查看API,这将更新GUI几乎每通常取决于事件。
但是,它不能在while循环中更新,因为没有事件。
我该如何解决这个问题,谢谢。
运行一个例子, while(true)在单独的线程中并在逻辑中包装SwingUtilities中的textArea更改。invokeAndWait() – StanislavL
“我可以看到你正在使用一个线程,并且该线程被阻塞,因为你的进程没有进入睡眠状态,请尝试睡眠一段时间或者使用多个线程。” [@maframaran](http://stackoverflow.com/users/4405606/maframaran) – Werner