JavaFX更新textArea

我有一个简单的JavaFX应用程序,它有一个TextArea。 我可以使用start()方法中的以下代码更新textArea的内容:

new Thread(new Runnable() { public void run() { for (int i = 0; i < 2000; i++) { Platform.runLater(new Runnable() { public void run() { txtarea.appendText("text\n"); } }); } } }).start(); 

代码只是将text字符串写入TextArea 2000次。 我想从一个在start()方法之外实现的函数更新此textArea。

 public void appendText(String p){ txtarea.appendText(p); } 

可以从使用JavaFX应用程序更新TextArea的任意程序调用此函数。 我怎样才能在appendText函数中执行此操作?

您可以将需要写入javafx.scene.control.TextArea的类提供给您的类的引用,该类包含public void appendText(String p)方法,然后只需调用它。 我建议你也传递一个指示调用该方法的类,例如:

 public class MainClass implements Initializable { @FXML private TextArea txtLoggingWindow; [...more code here...] public void appendText(String string, String string2) { txtLoggingWindow.appendText("[" + string + "] - " + string2 + "\n"); } } public class SecondClass { private MainClass main; public SecondClass(MainClass mClass) { this.main = mClass; } public void callMainAndWriteToArea() { this.main.appendText(this.getClass().getCanonicalName(), "This Text Goes To TextArea"); } }