私はJavaデスクトップアプリケーションで作業していますが、時にはjumeubarが表示されることもあります。そうでないと、プログラム全体がフリーズし、私はそれを殺さなければなりません。JavaスイングJMenuBarが表示されない場合があります
私はそれを作成し、フレームのコンストラクタに設定しています。
コード:
// Load any settings we might have made from last time.
loadSettings();
menuBar = createMenuBar();
setJMenuBar(menuBar);
// re-evaluate and re-layout things, since they've been changed.
validate();
addWindowListener(this);
あなたは私のコードで見ることができるように、私はそれが役立つだろう期待して、検証()の呼び出しを追加しました。それは実際には起こりますが、問題は依然として時々発生します。
ご協力いただきありがとうございます。
[SSCCE](http://pscode.org/sscce.html)を投稿しようとしてください。 – Howard
ちょうど興味のない、なぜ誰もが彼らのSwingの例で 'validate()'を呼び出すように見えることを誰かが明確にすることができますか?私はそれを一度呼び出さないスイングアプリ全体を持っている...それは必要か悪いか良いデザインの練習ですか? – aardvarkk
@aardvarkk - 私はほとんどの場合、これを行う必要はないと言います。レイアウトマネージャを使用している場合は、ほとんどのケースを自動的に処理する必要があります。一般に、それを含む例の普及は、スイング塗装システムが実際にどのように機能するかを理解していないという(IMHO)症状です。 – wolfcastle