Динамическое изменение JPanel на основе JRadioButton - PullRequest
0 голосов
/ 10 февраля 2012

Я пытаюсь динамически изменять содержимое на основе выбора JRadioButton ... Мой упрощенный код выглядит примерно так.

//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();
    }
  //
  }

Это позволяет мне менять панели, но яне могу вернуться на панель, которую я ранее выбрал ... Я не понимаю почему.Пожалуйста, помогите !!!

Ответы [ 2 ]

3 голосов
/ 10 февраля 2012

Вместо этого вы должны использовать CardLayout, поскольку это именно то, для чего оно. Посмотрите учебник здесь .

2 голосов
/ 10 февраля 2012

Используйте правильный менеджер раскладки.В этом случае я рекомендую использовать CardLayout.Это позволяет разработчику делегировать «сложность» обмена панелями диспетчеру макета, как и должно быть.

...