Переключение между JPanel (вход, регистрация и другие панели) - Java

Узнай цену своей работы

Формулировка задачи:

хочу создать фрейм приложения где переключаются панели входа, регистрации и так далее, но выскакивает исключение....помогите пожалуйста разобраться в ошибке
Листинг программы
  1. package frame;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import javax.swing.*;
  5. public class TestFrame extends JFrame
  6. {
  7. public TestFrame()
  8. {
  9. //создается фрейм
  10. JFrame frame=new JFrame("ShellTest");
  11. frame.setSize(400, 250);
  12. frame.setLocation(350, 200);
  13. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  14. //создается вторая панель (на которую надо перейти если совпали логин и пароль)
  15. JPanel panel2=new JPanel();
  16. panel2.add(new JLabel("HELLO"));
  17. //создается третья панель для регистрации пользователя
  18. JPanel panel3=new JPanel();
  19. panel3.add(new JLabel("Registration"));
  20. //создается первая панель с полями для входа в приложение
  21. JPanel panel1=new JPanel();
  22. panel1.setLayout(new BorderLayout());
  23. JPanel logPanel = new JPanel();
  24. logPanel.setLayout(new GridLayout(2,2));
  25. logPanel.add(new JLabel("Login:"));
  26. JTextField login=new JTextField("");
  27. logPanel.add(login);
  28. logPanel.add(new JLabel("Password:"));
  29. JPasswordField password=new JPasswordField("");
  30. logPanel.add(password);
  31. //кнопка подверждение входа, если логин и пароль правельные
  32. JPanel buttonPanel=new JPanel();
  33. JButton logButton=new JButton("Intra");
  34. logButton.addActionListener(new ActionListener()
  35. {
  36. public void actionPerformed(ActionEvent event)
  37. {
  38. CardLayout cl = (CardLayout) (panel2.getLayout());
  39. cl.show(panel2, ((JButton) event.getSource()).getText());
  40. }
  41. });
  42. buttonPanel.add(logButton);
  43. //кнопка регистрации, перекидывает на панель регистрации
  44. JButton registrareButton=new JButton("Inregistrare");
  45. registrareButton.addActionListener(new ActionListener()
  46. {
  47. public void actionPerformed(ActionEvent event)
  48. {
  49. CardLayout cl = (CardLayout) (panel1.getLayout());
  50. cl.show(panel1, ((JButton) event.getSource()).getText());
  51. }
  52. });
  53. buttonPanel.add(registrareButton);
  54. panel1.add(logPanel, BorderLayout.NORTH);
  55. panel1.add(buttonPanel, BorderLayout.CENTER);
  56.  
  57. JPanel mainPanel=new JPanel(new CardLayout());
  58. mainPanel.add(panel1);
  59. mainPanel.add(panel2, "Intra");
  60. mainPanel.add(panel3, "Inregistrare");
  61.  
  62. frame.add(mainPanel);
  63. frame.setVisible(true);
  64. }
  65. public static void main(String[] args)
  66. {
  67. EventQueue.invokeLater(new Runnable()
  68. {
  69. public void run()
  70. {
  71. new TestFrame();
  72. }
  73. });
  74. }
  75. }

Решение задачи: «Переключение между JPanel (вход, регистрация и другие панели)»

textual
Листинг программы
  1. public void actionPerformed(ActionEvent event)
  2.             {
  3.                 CardLayout cl = (CardLayout) (mainPanel.getLayout());
  4.                 cl.show(mainPanel, ((JButton) event.getSource()).getText());
  5.             }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут