基本的に私は単純なテキストエディタの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はプログラムでは他には呼び出されていません。
それが判明:私はあるgetTitle()は、コンソールに結果印刷する場合はフォーカスがウィンドウ
EDIT2に失われるまで表示され、それはが表示されるべきであることを私のタイトルを教えてくれますが、はではありませんそれは私のJDKの単なるエラーでした。 jdkを再インストールすると問題が解決しました。あなたを誤解して申し訳ありません、そしてあなたの応答に感謝します。
を*「言及する価値..」*コードは言葉よりも雄弁に語っています。もっと早く助けを求めるには、[SSCCE](http://sscce.org/)を投稿してください。 –
答えがある場合は、答えの左側にチェックマークを付けて受け入れます。タイトルをSOLVEDに変更しないでください。 – MByD