質問: はじめまして。 質問したいのですが... 今、とあるアプリケーションを作っています。 MainFrame : JFrameをextends、Runnableをimplements MyPanel : JPanelをextends MainFrameにMyPanelを貼り付け、 MainFrameのrun()の中にwhileループを作って定期的にMyPanelのインスタンスを更新しています。 で、MainFrameにJMenuBarでつくったメニューを付けました。 メニュー単体、パネル単体だとちゃんとできているのですが、両方一緒だとうまくいきません。 メニューをクリックすると、メニューアイテムが出てくるのですが、その上からパネルが上書きしてしまうようなのです。 __________________ | メニュー | ---------------- | |アイテム| | | |アイテム| |アイテムが出てくると | ̄ ̄ ̄ ̄ ̄ | | | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ __________________ |メニュー | ---------------- | | |パネル |上からパネルが上書きする。 | | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ それで、パネルを更新するフラグを作って、 メニュー選択の間パネルを更新しないようにしようと思いました。 JMenuBarの、isSelected()というメソッドが、Menuを選択している間TRUEを返すらしいので、isSelected()がTRUEの間はパネルを更新しないようにしました。 すると、今度はパネルが全く更新されず、アイテム欄のあった場所が白く残ってしまいます。 プログラムを実行している間のisSelectedを観察してみました。始めはfalseだったのでパネルが更新されていました。メニューを選択すると、TRUEになり、パネルの更新が止まりました。メニュー選択を終えると、falseに...なると思ったのに、TRUEのままでした。なので、パネルの更新も止まったままになりました。 いろいろ調べてみたものの、解決策が思いつきません。 お知恵をお借りできないでしょうか?
回答: Timerを使うことで解決できました。 ご意見いただき、ありがとうございました。m(_ _)mペコリ