更新:
仍然有同样的问题,主要的应用程序代码修改的源程序: http://pastebin.com/fLCwuMVq
一定有什么东西在CoreTest
阻止用户界面,但它做的东西各种各样的(异步XMLRPC请求,异步HTTP请求,文件IO等),我试图把一切都写进runLater
但它不帮助。
更新2:
我验证代码运行并正确地产生输出,但UI组件不能管理,以显示它的年龄
更新3:
OK我固定它。 我不知道为什么,但没有关于JavaFX的导游说这个,它非常重要的:
始终把你的程序逻辑在一个单独的线程从Java FX线程
我有这个工作与Swing的JTextArea
,但由于某种原因,它不使用JavaFX工作。
我试着调试和并做.getText()
每写返回什么似乎是正确写入字符后,但实际TextArea
在GUI显示任何文本。
难道我忘了不知何故刷新它还是什么?
TextArea ta = TextAreaBuilder.create()
.prefWidth(800)
.prefHeight(600)
.wrapText(true)
.build();
Console console = new Console(ta);
PrintStream ps = new PrintStream(console, true);
System.setOut(ps);
System.setErr(ps);
Scene app = new Scene(ta);
primaryStage.setScene(app);
primaryStage.show();
与Console
类:
import java.io.IOException;
import java.io.OutputStream;
import javafx.scene.control.TextArea;
public class Console extends OutputStream
{
private TextArea output;
public Console(TextArea ta)
{
this.output = ta;
}
@Override
public void write(int i) throws IOException
{
output.appendText(String.valueOf((char) i));
}
}
注:这是基于从溶液中这个答案 ,我删除了我也没在意,但未经修改的(除了从摆动变为JavaFX的),它有同样的结果位:写入UI元素的数据,没有数据展示屏幕。