我正在使用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