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

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

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

хочу создать фрейм приложения где переключаются панели входа, регистрации и так далее, но выскакивает исключение....помогите пожалуйста разобраться в ошибке
package frame;
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
public class TestFrame extends JFrame
{   
    public TestFrame()
    {
//создается фрейм
        JFrame frame=new JFrame("ShellTest");
        frame.setSize(400, 250);
        frame.setLocation(350, 200);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
//создается вторая панель (на которую надо перейти если совпали логин и пароль)
        JPanel panel2=new JPanel();
        panel2.add(new JLabel("HELLO"));
 
//создается третья панель для регистрации пользователя
        JPanel panel3=new JPanel();
        panel3.add(new JLabel("Registration"));
 
//создается первая панель с полями для входа в приложение
        JPanel panel1=new JPanel();
        panel1.setLayout(new BorderLayout());
        JPanel logPanel = new JPanel();
        logPanel.setLayout(new GridLayout(2,2));
        logPanel.add(new JLabel("Login:"));
        JTextField login=new JTextField("");
        logPanel.add(login);
        logPanel.add(new JLabel("Password:"));
        JPasswordField password=new JPasswordField("");
        logPanel.add(password);
                
//кнопка подверждение входа, если логин и пароль правельные
        JPanel buttonPanel=new JPanel();
        JButton logButton=new JButton("Intra");
        logButton.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent event)
            {
                CardLayout cl = (CardLayout) (panel2.getLayout());
                cl.show(panel2, ((JButton) event.getSource()).getText());
            }
        });
        buttonPanel.add(logButton);
        
//кнопка регистрации, перекидывает на панель регистрации
        JButton registrareButton=new JButton("Inregistrare");
        registrareButton.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent event)
            {
                CardLayout cl = (CardLayout) (panel1.getLayout());
                cl.show(panel1, ((JButton) event.getSource()).getText());
            }
        });
        buttonPanel.add(registrareButton);
        
        panel1.add(logPanel, BorderLayout.NORTH);
        panel1.add(buttonPanel, BorderLayout.CENTER);

        JPanel mainPanel=new JPanel(new CardLayout());
        mainPanel.add(panel1);
        mainPanel.add(panel2, "Intra");
        mainPanel.add(panel3, "Inregistrare");

        frame.add(mainPanel);       
        
        frame.setVisible(true);
    }
 
    public static void main(String[] args) 
    {
        EventQueue.invokeLater(new Runnable()
        {
            public void run()
            {
                new TestFrame();
            }
        });
 
    }
    
}

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

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

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


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

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

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