Gen*_*ist 4 java user-interface javafx javafx-2
我有一个简单的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();
Run Code Online (Sandbox Code Playgroud)
代码只是将text字符串写入TextArea 2000次.我想从一个在start()方法之外实现的函数更新此textArea.
public void appendText(String p){
txtarea.appendText(p);
}
Run Code Online (Sandbox Code Playgroud)
可以从使用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");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11205 次 |
| 最近记录: |