【发布时间】:2010-05-05 20:22:50
【问题描述】:
我有一个 JavaFX 应用程序,其中包含类似这样的代码...
public class MainListener extends EventListener{
override public function event (arg0 : String) : Void {
statusText.content = arg0;
}
}
statusText 是这样定义的...
var statusText = Text {
x: 30
y: stageHeight - 40
font: Font { name: "Bitstream Vera Sans Bold" size: 10 }
wrappingWidth: 420
fill: Color.WHITE
textAlignment: TextAlignment.CENTER
content: "Status: awaiting DBF file."
};
我还有其他一些加载数据的 Javacode,就像这样..
public ArrayList<CustomerRecord> read(EventListener listener) {
ArrayList<CustomerRecord> listOfCustomerRecords = new ArrayList<CustomerRecord>();
listener.event("Status: Starting read");
// ** takes a while...
List<Map<String, CustomerField>> customerRecords = new Reader(file).readData(listener);
// ** long running method over.
listener.event("Status: Loaded all customers, count:" + listOfCustomerRecords.size());
return listOfCustomerRecords;
}
现在,虽然最后一个方法处于长时间运行的调用中,但我希望看到我的 statusText 更新为“状态:开始读取”,但它没有。只有当 read() 方法返回时才会更新文本。
如果它是“直接”java,我会假设长时间运行的作业正在占用 CPU,或者 statusText 需要调用 repaint()。
谁能给我一些想法?
谢谢 杰夫·波特
【问题讨论】:
标签: javafx