Тут выдает ошибку Exception in thread “main” помогите пж [закрыт]

297
04 февраля 2020, 04:50
Закрыт. Этот вопрос не по теме. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Переформулируйте вопрос, чтобы он соответствовал тематике «Stack Overflow на русском».

Закрыт 10 месяцев назад.

    import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;``
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
    class AppWindow extends JFrame implements ActionListener {
        private JButton button_signin;
        private JButton button_signup;
        CardLayout layout;
        public AppWindow() {
            initialize();
            setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
            Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
            setLocation((int) dimension.getHeight() / 5, (int) dimension.getWidth() / 5);
            setMinimumSize(new Dimension(500, 200));
            setVisible(true);
        }

        private void initialize() {
            setTitle("Application");
            layout = new CardLayout();
            setLayout(layout);
            add(new SignInpanel(), "sign in");
            add(new SignUppanel(), "sign up");
            addWindowListener(new WindowAdapter() {
                @Override
                public void windowClosing(WindowEvent e) {
                    int result = JOptionPane.showConfirmDialog(AppWindow.this, "Are u sure you want to exit?");
                    if (result == 0) {
                        dispose();
                    }
                }
            });
            JPanel mainpanel = new JPanel(new FlowLayout());
            JPanel panel_buttons = new JPanel(new GridLayout(2, 2));
            button_signin = new JButton("SIGN IN");
            button_signup = new JButton("SIGN UP");
            panel_buttons.add(new Label("Sign in if you have account"));
            panel_buttons.add(button_signin);
            panel_buttons.add(new Label("If you don't have account, sign up"));
            panel_buttons.add(button_signup);
            mainpanel.add(panel_buttons);
            add(mainpanel);
        }

        @Override
        public void actionPerformed(ActionEvent e) {
            if (e.getSource() == button_signin) {
                CardLayout layout = (CardLayout) getParent().getLayout();
                layout.show(getParent(), "signin");
            } else if (e.getSource() == button_signup) {
                CardLayout layout = (CardLayout) getParent().getLayout();
                layout.show(getParent(), "signup");
            }
        }
    }

    class SignInpanel extends AppWindow implements ActionListener {
        private JPanel panelMain;
        private JMenuBar menuBar;
        private JMenu fileMenu;
//        public SignInpanel() {
//            execute();
//        }
//
//        public void execute() {
//            menuBar = new JMenuBar();
//            fileMenu = new JMenu("File");
//
//        }
        @Override
        public void actionPerformed(ActionEvent e) {
        }
    }

    class SignUppanel extends AppWindow implements ActionListener {
        private JPanel panel_textfield;
        private JPanel panel_buttons;
        private JPanel main_panel;
        private JButton button_save;
        private JButton button_cancel;
        private JTextField textField_name;
        private JTextField textField_surname;
        private JTextField textField_email;
        public SignUppanel() {
            start();
        }
        public void start() {
            main_panel = new JPanel(new FlowLayout());
            panel_textfield = new JPanel(new GridLayout(2, 2));
            panel_buttons = new JPanel(new GridLayout(1, 3));
            panel_textfield.add(new JLabel("Name "));
            textField_name = new JTextField(10);
            panel_textfield.add(textField_name);
            panel_textfield.add(new JLabel("Surname "));
            textField_surname = new JTextField(10);
            panel_textfield.add(textField_surname);
            panel_textfield.add(new JLabel("Email: "));
            textField_email = new JTextField(10);
            panel_textfield.add(textField_email);
            panel_textfield.add(new JLabel("Login "));
            panel_textfield.add(new JTextField(10));
            panel_textfield.add(new JLabel("Password "));
            panel_textfield.add(new JPasswordField(10));
            panel_textfield.add(new JLabel("Confirm password "));
            panel_textfield.add(new JPasswordField(10));
            main_panel.add(panel_textfield);
            button_save = new JButton("SAVE");
            button_save.addActionListener(this);
            panel_buttons.add(button_save);
            button_cancel = new JButton("CANCEL");
            button_cancel.addActionListener(this);
            panel_buttons.add(button_cancel);
            main_panel.add(panel_buttons);
            add(main_panel);
        }
        @Override
        public void actionPerformed(ActionEvent e) {
            if (e.getSource() == button_save) {
                CardLayout cardLayout = (CardLayout) getParent().getLayout();
                cardLayout.previous(getParent());
            } else if (e.getSource() == button_cancel) {
                CardLayout cardLayout = (CardLayout) getParent().getLayout();
                cardLayout.first(getParent());
            }
        }

    }
    class Main
    {
        public static void main(String[] args) {
            AppWindow appWindow= new AppWindow();
        }
    }
Answer 1

Похоже что Вы вставляете JFrame в JFrame:

class SignUppanel extends AppWindow implements ActionListener

add(new SignUppanel(), "sign up");

И похоже на рекурсию в конструкторе - для построения AppWindow нужен SignUppanel и наоборот

READ ALSO
ImageIO.write слишком медленный

ImageIO.write слишком медленный

Хочу реализовать передачу видео по UDP(тут, очевидно, только получение картинки)Строка №3 преобразует картинку очень медленно

223
Переход с общим элементом

Переход с общим элементом

Цель сделать переход между окнами с общим элементом (изображением)Нужно из окна А перейти в окно B с общим изображением (изображение ниже)

248
метод configure в Spring Security

метод configure в Spring Security

Есть конфиг в Spring Security:

242