Vì vậy, tôi biết rằng phương pháp cập nhật GUI của JavaFx trong khi sử dụng một luồng được gọi là Tác vụ nhưng mã có hoạt động theo cách tương tự hoặc có bất kỳ khác biệt nào không. hãy để tôi cung cấp cho bạn một ví dụ đu:Phản hồi JavaFx với SwingUtilities.invokeLater
Một lớp ngoài GUI chạy như một sợi
public void run(){
while (socket.isConnected()) {
String x = input.next();
System.out.println(x);
mg.updateChat(x)
}
}
Bên trong giao diện thực tế
public void updateChat(final String input){
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
txtChat.setText(input);
}
});
}
Liệu công tác làm việc cùng chính xác đường? Hoặc có sự khác biệt và nếu có làm thế nào bạn sẽ sửa đổi mã này để làm việc trong một dự án JavaFx?
Có hoạt động chính xác không? –
Theo như tôi có thể hiểu [api] (http://docs.oracle.com/javafx/2/api/javafx/application/Platform.html), vâng. Tôi sử dụng nó để cập nhật các điều khiển javafx ui trong môi trường đa luồng giống như tôi sử dụng SwingUtilities.invokeLater cho các điều khiển Swing. – amru
Không có may mắn ở đây, giao diện người dùng của tôi bị đóng băng khi tôi đang chạy runLater. –