2010-12-15 14 views
1

私のプログラムにはJFrameを継承するメインウィンドウがあります。このウィンドウにはJMenuBarがあります。Java、swing、JFrame、JPanel

コードでは、いくつかのコンポーネントでJPanelのインスタンスを動的に作成し、このパネルをコンテンツウィンドウとしてメインウィンドウに設定します。

しかし、このメニューバーが私のパネルと交差すると、パネルの一部がメニューバーの後ろにあります。これは、ウィンドウサイズを変更するまで続きます。

交差点が消えた後、メニューパネルが交差せずにメニューバーの下に置かれます。

JFrame view = ApplicationContext.getInstance().getView(); 
JPanel panel = new TherapeuticProfile().getRootPanel(); 
view.setContentPane(panel); 

答えて

1

ウィンドウが表示された後でこれを行いますか?その場合はrevalidateが必要です。

これをAWT EDTから外していますか?その場合、その作業をやめる必要があります。

(またApplicationContext.getInstance()のように静は、任意のプログラムには本当に悪い考えです。)

+0

加えて...私のプログラムでは、私はシングルトンであるMVCパターンとApplicationContextの中を使うんだ、私は店のリンクだけですモデル、ビュー、およびコントローラに接続します。なぜそれは "本当に悪い考え"ですか? – Dmitriy

+0

@ドミトリーああ、google "シングルトンは悪い"。 –