2011-07-08 8 views
0

私は2つのクラスを持っています。そのうちの1つはJPanelから拡張し、もう1つはJFrameから継承します JPanelから継承するクラスを他のクラスに追加し、JPanelクラスからJFrameのfalseをsetVisibleにしたい私はそれをしなければなりませんか?JPanelの不可視JFrame

 
public class test extends JPanel{ 
... 
} 

public class test2 extends JFrame{ 
    test t; 
    public test2(){ 
    t = new test(); 
    } 
} 

私はテストからinvisible test2にしたいです、どうすればいいですか?

+1

主な方法はどこですか? JPanelクラスからJFrameクラスのインスタンスを作成していますか? – Logan

+0

私は方法を見つけました。 テストメソッドにtest2 objを設定してから、それを無効にします –

+1

クラス名は大文字で始まります:Test、Test2。 – extraneon

答えて

3

を呼び出せるように、をJPanelに書き換えてください。

これは、それぞれのクラスを互いに参照することが密接な結合であり、推奨されないため、これは設計が悪いように思えますが、私は両方の項目からの要求を受け取り、GUIに変更を加える第3の "Controller"タイプのクラスを用意することをお勧めします。

+0

+1、デザインが悪いようです。 :) – mre

+0

フレームの参照をパネルに渡す必要はありません。 SwingUtilitiesを使用して、パネルが追加されたウィンドウを取得できます。 – camickr