Переключаться между JPanels с использованием JButton? - PullRequest
0 голосов
/ 29 апреля 2019

Попытка сделать приложение флэшкартой. JButton b_switchmode будет использоваться для переключения между панелями (режим редактирования и тестовый режим, оба имеют панели, созданные для отдельного использования). Не совсем уверен, как перейти от GUI, который я создал. В идеале я бы нажал JButton b_switchmode и смог бы переключиться из «Режим редактирования» в «Режим тестирования».

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

Итак, я хочу знать, как:

  • вставить CardLayout, чтобы можно было переключаться между JPanels

  • позволяет JButton b_switchmode выполнить переключение между JPanels


public class App2 {
    private static JFrame frame;
    private static JPanel editpanel;
    private static JPanel testpanel; 
    private static JLabel l_appmode;
    private static JLabel l_number;
    private static JLabel l_question;
    private static JLabel l_answer;
    public  static JTextField t_questions;
    public  static JTextField t_answer;
    public  static JButton    b_switchmode;
    public  static JButton    b_previous;
    public  static JButton    b_next;
    public  static JButton    b_add;
    public  static JButton    b_save;
    public  static JButton    b_question;
    public  static JButton    b_answer;
    static int width  = 600;
    static int height = 450;

public static void main(String[] args) {
    // TODO Auto-generated method stub
    gui();
}

private static void gui(){
  frame = new JFrame("Assignment2");
  frame.setTitle("Flash Cards");
  frame.setSize(width,height);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  l_appmode  = new JLabel("Current Mode: Edit");  
  l_number = new JLabel ("");
  l_question  = new JLabel("Question:");
  l_answer    = new JLabel("Answer:");

  t_questions = new JTextField("");
  t_answer    = new JTextField("");

  b_switchmode = new JButton("Switch Mode");
  b_previous = new JButton("Previous");
  b_next = new JButton("Next");
  b_add = new JButton("Add");
  b_save = new JButton("Save");
  b_question = new JButton("Question");
  b_answer = new JButton("Answer");


  editpanel = new JPanel();
  int rows = 6, columns = 1;
  int hgap = 20; int vgap = 20;
  editpanel.setLayout(new GridLayout(rows, columns, hgap, 
  vgap));

  editpanel.add(l_appmode);
  editpanel.add(l_number);

  editpanel.add(l_question);
  editpanel.add(t_questions);

  editpanel.add(l_answer);
  editpanel.add(t_answer);

  editpanel.add(b_switchmode);
  editpanel.add(b_previous);
  editpanel.add(b_next);
  editpanel.add(b_add);
  editpanel.add(b_save);

  //testpanel.add(b_question);
  //testpanel.add(t_questions);
  //testpanel.add(b_answer);
  //testpanel.add(t_answer);

  frame.add(editpanel);
  //frame.add(testpanel);
  frame.setVisible(true);
}
...