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

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

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

Добрый день! Пишу программу,которая работает с GUI и БД. Создал форму Connection_Form для подключения к БД,после подключения,я хочу перейти на следующую форму Options_Form,в которой будут указаны опции для выбора. После подключения выводит следующее исключение:
Листинг программы
  1. Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
  2. at resources.Opt_Form.$$$setupUI$$$(Opt_Form.java)
  3. at resources.Opt_Form.<init>(Opt_Form.java:18)
  4. at resources.Connection_Form$1.actionPerformed(Connection_Form.java:38)
  5. at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
  6. at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
  7. at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
  8. at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
  9. at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
  10. at java.awt.Component.processMouseEvent(Component.java:6525)
  11. at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
  12. at java.awt.Component.processEvent(Component.java:6290)
  13. at java.awt.Container.processEvent(Container.java:2234)
  14. at java.awt.Component.dispatchEventImpl(Component.java:4881)
  15. at java.awt.Container.dispatchEventImpl(Container.java:2292)
  16. at java.awt.Component.dispatchEvent(Component.java:4703)
  17. at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
  18. at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
  19. at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
  20. at java.awt.Container.dispatchEventImpl(Container.java:2278)
  21. at java.awt.Window.dispatchEventImpl(Window.java:2739)
  22. at java.awt.Component.dispatchEvent(Component.java:4703)
  23. at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
  24. at java.awt.EventQueue.access$400(EventQueue.java:97)
  25. at java.awt.EventQueue$3.run(EventQueue.java:697)
  26. at java.awt.EventQueue$3.run(EventQueue.java:691)
  27. at java.security.AccessController.doPrivileged(Native Method)
  28. at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
  29. at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
  30. at java.awt.EventQueue$4.run(EventQueue.java:719)
  31. at java.awt.EventQueue$4.run(EventQueue.java:717)
  32. at java.security.AccessController.doPrivileged(Native Method)
  33. at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
  34. at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
  35. at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
  36. at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
  37. at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
  38. at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
  39. at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
  40. at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Стек-Трейс указывает на строчку setContentPane(panel2) А вот и сам код:
Листинг программы
  1. public class Connection_Form extends JFrame {
  2. private JPanel panel1;
  3. private JTextField textField1;
  4. private JPasswordField passwordField1;
  5. private JButton loginButton;
  6. private DBWorker worker;
  7. public JButton getLoginButton() {
  8. return loginButton;
  9. }
  10.  
  11. public Connection_Form() {
  12. super();
  13. setContentPane(panel1);
  14. pack();
  15. setVisible(true);
  16. loginButton.addActionListener(new ActionListener() {
  17. public void actionPerformed(ActionEvent e) {
  18. String user = textField1.getText();
  19. String password = passwordField1.getText();
  20. worker = new DBWorker(user, password);
  21. if (e.getSource() == loginButton) {
  22. new Opt_Form();
  23. setVisible(false);
  24. }
  25. }
  26.  
  27. });
  28.  
  29. }
  30. }
Класс DB_Worker(вход в БД выполняется):
Листинг программы
  1. public class DBWorker {
  2. private static final String HOST = "jdbc:postgresql://localhost:5432/Club";
  3. private static String USERNAME;
  4. private static String PASSWORD;
  5. private static Connection connection;
  6. public DBWorker(String USERNAME,String PASSWORD) {
  7. this.USERNAME = USERNAME;
  8. this.PASSWORD = PASSWORD;
  9. try {
  10. connection = DriverManager.getConnection(HOST,USERNAME,PASSWORD);
  11. }catch (SQLException e) {
  12. System.out.println("Не правильное имя или пароль");
  13. e.printStackTrace();
  14. }
  15. }
  16. }
Класс Opt_Form:
Листинг программы
  1. public class Opt_Form extends JFrame {
  2. private JButton button1;
  3. private JPanel panel2;
  4. private JButton button2;
  5. private JButton button3;
  6. private JButton button4;
  7. Opt_Form() {
  8. super();
  9. setContentPane(panel2);
  10. pack();
  11. setVisible(true);
  12. }
  13. private void createUIComponents() {
  14. // TODO: place custom component creation code here
  15. }
  16. }

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

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

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


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

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

8   голосов , оценка 4 из 5

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

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

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