2012-05-08 28 views
0

私は、ユーザーがブラックジャックをプレイできるようにする簡単なJavaスイングプログラムを作成中です。私はプログラム内に1つの "スクリーン"を表す10-15のクラスを持っています。それらはそれぞれJLayeredPaneを拡張し、アクションリスナを実装します。デッキ、カード、ラウンド、プレーヤーなどの他のクラスもあります。JFrameでJPanelを動的に再描画する方法は?

次に、別のクラスには、配列arra(すべてのパネルを保持)とJframe(すべてのパネルが移動する)パブリックstatic voidがメインです。

public void screenInit(int i) 
{ 
    one.setContentPane(arra[i-1]); 
    one.invalidate(); 
    one.validate(); 
    one.repaint(); 
} 

は、その後、私はpsvmで、このクラスのオブジェクトを作成し、最初のパネルに入れて起動します。

は、その同じクラスに私は2つのこと、パネルを置き換える方法を実行します。

ここで私の質問は、最初のパネルがアップされ、アクションリスナーがJButtonに接続されていることです。JFrameと配列を保持するクラスで作成されたJFrameにどのようにアクセスして上記の方法を使用できるようになりますか?今、私は毎回新しいフレームを作成しなければならないので、お互いの上に構築されていますか?

これができない場合は、各パネルの複数のボタンが相互につながるようにクラスをどのように構成する必要がありますか?あなたはスイングJComponentのを使用した場合の

おかげ

答えて

4

1)あなたはJPanelは、現在表示されたGUI

の有効な要素ではないことを、現在のLayoutManagerのステータス設定が理由もなくので、コード行one.invalidate();を削除することができます2)あなたはremove/modify/add JComponentの(S)Containerすでに可視のトップなら、私はコード行での成功を持っているrevalidate()repaint()

3)誰も(本当の問題はあなたに何があるか知っているの)また、誰かがあなたのモニターでコードを見ることができない場合は、GUIの再描画で問題を切り分けて、SSCCE

関連する問題