我无法在TextArea中书写,在这种情况下我不知道该怎么做。
这是我的“Server”类中的代码,用于将文本放入TA:
public class Server implements Runnable {
.
.
.
@Override
public void run() {
while (true) {
try {
if (queue.size() !=0) {
Task task = queue.take();
String text = "Server" + Integer.toString(getIdServer()) + " is processing the task: " + Integer.toString(task.getIdTask()) + " with proc time " + Integer.toString(task.getProcessingTime());
InputShop.textArea.setText(text);
Thread.sleep(task.getProcessingTime() * 1000);
waitingTime.addAndGet(-task.getProcessingTime());
}
} catch (InterruptedException e) {
}
}
}
public void addTask(Task newTask) {
String text2 = "Task "+ Integer.toString(newTask.getIdTask()) + " arrives at s " + Integer.toString(newTask.getArrivalTime())+ " on server "+ Integer.toString(getIdServer());
InputShop.textArea.setText(text2);
queue.add(newTask);
waitingTime.addAndGet(newTask.getProcessingTime());
}
我的UI类使用TextArea查看该部分,如下所示:
TextArea textArea = new TextArea();
textArea.setPrefWidth(300);
textArea.setPrefHeight(300);
GridPane.setConstraints(textArea, 8, 8);
gridPane.getChildren().add(textArea);
textArea.setEditable(false);
如果我写“System.out.println(...);”而不是“InputShot.textArea.setText(...);”的部分一切正常,它会在屏幕的输出日志上打印所有内容。
我一直在搜索这个问题好几个小时并且我不知道如何管理它,所以我很感激每一个帮助!
如果我错过了代码或信息的重要部分,请通知我以便编辑问题!