這裏的基本思想是:的Java窗口緩衝擊鍵,直到用戶用鼠標點擊
有一個java窗口(主)打開另一個Java窗口(子)。當創建了孩子,初始化的一部分設置在子窗口中相應的文本字段中的焦點:
childTextField.requestFocusInWindow();
childTextField.setCaretPosition(0);
孩子一般是一個嚴重的按鍵通過命令行接口類型打開。當窗口被請求時,90%的時間,焦點正確地進入子窗口文本字段,並且用戶可以在框中鍵入。如果打開孩子的命令被髮送(按下回車鍵),並且用戶在新窗口創建之前立即開始輸入,則文本會被正確緩衝並在窗口打開後顯示在新文本框中。
但是,每過一段時間,當用戶請求的子窗口中打開,然後開始打字,他們的文本不顯示在文本框中。只有在字段中用鼠標點擊後,纔會顯示他們輸入的文本。這就像它被存儲在某個地方,直到點擊它們纔會出現。
真正令人沮喪的是,我似乎無法可靠地重現問題。它絕對會發生,但不夠經常地調試很好。
當然還有各種其他的魔力會在幕後,其中包括與服務器應用程序的通信,但我不相信它的相關。
任何想法或想法將非常感激。
沒關係,那個幾乎肯定是*是一個錯誤。我會盡早將焦點管理器或調用logger.info或類似的東西放到焦點管理器中,查看事件的真實情況,並瀏覽代碼路徑。可能性有一個意外的情況和不刷新的代碼路徑。 – 2008-12-14 18:40:25