Переключение между 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()); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д