2012-02-10 11 views
0

JRadioButtonの選択に基づいてコンテンツを動的に変更しようとしています... のコードが簡略化されています。JRadioButtonに基づいてJPanelを動的に変更する

//import 
public class Thing { 
    // 
    JPanel pnlMain, pnl1, pnl2, pnlRt, pnlLt; 
    JRadioBtn btn1, btn2; 
    // 
    Thing() { 
    // 
    //initialize panels, add to them, etc. 
    pnlMain.add(pnlLt); 
    pnlMain.add(pnl1); 
    pnlMain.add(pnlRt); 
    // 
    //Get it showing and stuff. 
    // 
    } 
    // 
    //One instance of this class connected to all radio buttons. 
    class Evt implements ActionListener { 
    public void actionImplemented (ActionEvent evt) { 
     // 
     pnlMain.remove(1); 
     // 
     if (evt.getActionCommand().equals("Radio 1")) 
     pnlMain.add(pnl1); 
     else pnlMain.add(pnl2); 
     // 
     pnlMain.validate(); 
     // 
     } 
    } 
    // 
    public static void main (String[] args) { 
    new Thing(); 
    } 
    // 
    } 

これでパネルを変更できますが、以前選択したパネルに戻すことはできません...理由はわかりません。助けてください!!!

+0

あなたの内部クラスのメソッドはactionPerformed()ですか? – bmoran

+0

はい、それは... – creXALBO

答えて

3

代わりにCardLayoutを使用する必要があります。CardLayoutはまさにそのためのものです。 tutorial hereをチェックしてください。

2

適切なレイアウトマネージャを使用してください。このシナリオでは、CardLayoutを使用することをお勧めします。これにより、開発者はパネル交換の「複雑さ」をレイアウトマネージャに委任することができます。これはどのようにすべきかです。

+0

ありがとうございます! – creXALBO

+0

@creXALBO、問題ありません。喜んで助けてください。 – mre