Не создается GUI форма - Java

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

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

Добрый день! Пишу программу,которая работает с GUI и БД. Создал форму Connection_Form для подключения к БД,после подключения,я хочу перейти на следующую форму Options_Form,в которой будут указаны опции для выбора. После подключения выводит следующее исключение:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at resources.Opt_Form.$$$setupUI$$$(Opt_Form.java)
    at resources.Opt_Form.<init>(Opt_Form.java:18)
    at resources.Connection_Form$1.actionPerformed(Connection_Form.java:38)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6525)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
    at java.awt.Component.processEvent(Component.java:6290)
    at java.awt.Container.processEvent(Container.java:2234)
    at java.awt.Component.dispatchEventImpl(Component.java:4881)
    at java.awt.Container.dispatchEventImpl(Container.java:2292)
    at java.awt.Component.dispatchEvent(Component.java:4703)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
    at java.awt.Container.dispatchEventImpl(Container.java:2278)
    at java.awt.Window.dispatchEventImpl(Window.java:2739)
    at java.awt.Component.dispatchEvent(Component.java:4703)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
    at java.awt.EventQueue.access$400(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.awt.EventQueue$3.run(EventQueue.java:691)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.awt.EventQueue$4.run(EventQueue.java:719)
    at java.awt.EventQueue$4.run(EventQueue.java:717)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Стек-Трейс указывает на строчку setContentPane(panel2) А вот и сам код:
public class Connection_Form extends JFrame {
    private JPanel panel1;
    private JTextField textField1;
    private JPasswordField passwordField1;
    private JButton loginButton;
    private DBWorker worker;
 
    public JButton getLoginButton() {
        return loginButton;
    }

    public Connection_Form() {
        super();
 
        setContentPane(panel1);
        pack();
        setVisible(true);
 
        loginButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String user = textField1.getText();
                String password = passwordField1.getText();
                worker = new DBWorker(user, password);
                if (e.getSource() == loginButton) {
                    new Opt_Form();
                    setVisible(false);
                }
 
            }

        });

}
}
Класс DB_Worker(вход в БД выполняется):
public class DBWorker {
    private static final String HOST = "jdbc:postgresql://localhost:5432/Club";
    private  static   String USERNAME;
    private static  String PASSWORD;
    private static Connection connection;
 
    public DBWorker(String USERNAME,String PASSWORD) {
        this.USERNAME = USERNAME;
        this.PASSWORD = PASSWORD;
        try {
            connection = DriverManager.getConnection(HOST,USERNAME,PASSWORD);
        }catch (SQLException e) {
            System.out.println("Не правильное имя или пароль");
            e.printStackTrace();
        }
    }
}
Класс Opt_Form:
public class Opt_Form extends JFrame {
    private JButton button1;
    private JPanel panel2;
    private JButton button2;
    private JButton button3;
    private JButton button4;
 
    Opt_Form() {
        super();
 
        setContentPane(panel2);
        pack();
        setVisible(true);
    }
 
    private void createUIComponents() {
        // TODO: place custom component creation code here
    }
}

Решение задачи: «Не создается GUI форма»

textual
Листинг программы
private JButton loginButton=new JButton("hello");

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


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

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

8   голосов , оценка 4 из 5
Похожие ответы