為什么repaint()刷新時會造成灰色塊? Scott Violet: 這是一個非常適時的問題。當我們使用AWT/SWing時,至少有兩個線程在起作用:一個線程負責接收和處理本地事件,另一個線程負責分派這些事件(即 EDT)。對于本地線程,當它接收到一個eXPose事件,會立即用灰色填充背景,當事件在EDT中被處理時才開始做實際上的繪制工作。這樣的話假如你的程序正在繁忙,在顯示灰色塊和實際的繪制之間會有一個顯而易見的延遲。有個好消息是我們正在做這方面的改進工作,讓每個窗口都有一個緩沖圖像,這樣的話,當窗口收到一個expose事件,我們立即將緩沖區的圖像復制過來,并且你的程序不用做任何事情。這樣你就再也不會看到灰色塊了,甚至于你的程序繁忙時,我們照樣能恢復窗口里的顯示內容。我們希望能盡早完成這項工作,當我們完成時會將它公布出來。
為什么不把SwingWorker(或者類似的機制)沒有成為標準API? 有什么建議的方式來處理過程靈敏的任務? Scott Violet: 很好的問題. 我們就要完成一個版本的SwingWorker,它將會是Java1.6的一部分。這也就是Igor, Brent, Bino 和我在去年JavaOne大會上談到的那個版本。這個版本的SwingWorker支持PRoperty change監聽器. 它非常好用.
JDNC和JDIC會有什么新的發展? Scott Violet: 這兩個項目一直在健狀的發展. JDNC正向下一個里程碑邁進,它會包含一個login framework, 并且修改了data model和binding API.
為什么一定要等到Java1.6,而不是以jar形式在1.5中使用? Scott Violet: 我想你在提SwingWorker吧. 我們正在考慮針對1.5發布一個非綁定的SwingWorker版本, 但還沒有作出決定.
Resizing窗口為什么要等到resizing結束后才起作用? Scott Violet: 有個好消息是,假如你要實時resize窗口, 只要簡單的調用Toolkit.getDefaultToolkit().setDynamicLayout(true). 如何相應則依靠于你的程序和窗口內容. 我要說我們正在考慮使實時resize特性成為1.6的缺省設置.