基本上我有一個簡單的文本編輯器的JFrame。 您正在處理的文件名出現在標題中。 所以我設置了一些代碼來在必要時更改標題,並且它被調用的很好。JFrame標題沒有改變,直到焦點丟失
問題出在代碼被調用後,JFrame標題不會改變。 getTitle()函數和所有內容都顯示標題被更改。只有當你放鬆對JFrame的關注時,標題實際上會發生圖形變化。
我實現的一個快速和骯髒的(非常非常)修復是toBack()後跟toFront()有效地迫使你失去焦點 - 這在一個非常醜陋的方式做的伎倆。我嘗試了invalidate()和validate(),各種repaint()調用和setVisible(true),但他們都沒有伎倆。
我已經做了一些搜索,似乎無法找到解決方案,這是一個小錯誤,但一個惱人的。有沒有人有一些見解?
下面的代碼我使用
private void() updateTitle() {
setTitle(((filename == null) ? "untitled" : filename) + ((unsaved) ? "*" : ""));
toBack();
toFront();
}
,這是所有擴展JFrame的一類中。
編輯:
值得一提的是,有沒有循環或線程或任何佔用的EDT。只是簡單而簡單的東西。禁用所有的偵聽器和所有的東西來嘗試和調試。 SetTitle在程序中被稱爲NOWHERE。如果我打印的getTitle()導致到控制檯,它會告訴我的標題是應該顯示,但不是顯示,直到焦點在窗口上失去
EDIT2:
原來這只是我的JDK中的一個錯誤。重新安裝jdk解決了這個問題。抱歉誤導你們,謝謝你們的迴應。
*「值得一提的。」 *代碼勝於雄辯。爲了更快地獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。 – 2012-04-08 08:32:05
如果您已得到答案,請接受答案,方法是在答案左側打勾,不要將其標題更改爲已解決。 – MByD 2012-04-08 15:50:29