0
我有這樣的一些代碼,一個JavaFX應用程序...javafx沒有重繪標籤,直到方法完成,爲什麼?
public class MainListener extends EventListener{
override public function event (arg0 : String) : Void {
statusText.content = arg0;
}
}
狀態文本被定義是這樣的...
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;
}
現在,而最後一種方法是在其長期運行的電話,我希望看到我的狀態文本更新爲具有「狀態:開始讀」,但它沒有。它只有在read()方法返回時才更新文本。
如果它是'直的'java,我會假定長時間運行的作業佔用CPU,或者statusText需要重新調用repaint()。
任何人都可以給我任何想法嗎?
感謝 傑夫·波特
謝謝!非常appricated。 – 2010-05-08 06:48:09