无法在TextArea JavaFX中编写

时间:2018-04-19 21:46:34

标签: java multithreading user-interface javafx textarea

我无法在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(...);”的部分一切正常,它会在屏幕的输出日志上打印所有内容。

我一直在搜索这个问题好几个小时并且我不知道如何管理它,所以我很感激每一个帮助!

如果我错过了代码或信息的重要部分,请通知我以便编辑问题!

0 个答案:

没有答案