tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
763
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    savvo savvo ist offline Mitglied Bronze
    Registriert seit
    Dec 2004
    Beiträge
    49
    Hallo zusammen

    Habe seit kurzem mit Java angefangen. Nun wollte ich eine GUI schreiben die sich mit einer MySQL Datenbank verbindet. Soweit eigentlich kein Problem, jedoch sobald ich mich verbinden will bekomme ich die Fehlermeldung NullPointerException . Könnte mir jemand helfen und mir mitteilen wo mein Fehler liegt?

    Mein Programm besteht aus 3 Klassen:

    main - Klasse
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    import javax.swing.*;
     
    public class SalRosso implements Runnable{
     private Frame p_window;
     
     public static void main( String[] args ) {
      SwingUtilities.invokeLater(new SalRosso());
     }
     
     public void run() {
      this.p_window = new Frame();
      p_window.build();
     }
    }

    DB connector Klasse
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    
    import java.sql.*;
     
    public class Connector {
     private Frame p_frame;
     private Connection con;
     
     public Connector(Frame p_frame) {
      this.p_frame = p_frame;
     }
     
     public void connect() {
      try {
       if(!(p_frame.database().equals(""))) {
        Class.forName("com.mysql.jdbc.Driver");
        con = DriverManager.getConnection("jdbc:mysql://localhost/"
          + p_frame.database(), p_frame.username(), p_frame.password());
        p_frame.info();
       }
       else {
        p_frame.dbWrong();
       }
      }
      catch (Exception ex) {
       p_frame.conTrouble();
      }
     }
     
     public void disconnect() {
      try {
       con.close();
      } 
      catch (Exception ex) {
       p_frame.dbNoDisc();
      }
     }
    }

    Frame Klasse
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.sql.SQLException;
     
    public class Frame {
     private Connector p_conn;
     
     private JTabbedPane tab = new JTabbedPane();
     private JPanel mainPanel = new JPanel();
     
     private JButton connect = new JButton("Connect");
     private JButton close = new JButton("Close");
     
     private JTextField uname = new JTextField();
     private JTextField db = new JTextField();
     private JPasswordField pw = new JPasswordField();
     
     public void build() {
      JFrame.setDefaultLookAndFeelDecorated(true);
      JFrame window = new JFrame("DB Tool");
      window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
      JMenuBar menuBar = new JMenuBar();
      menuBar.add(new JMenu("File")).add(new JMenuItem("Close"));
      window.setJMenuBar(menuBar);
      
      Container pane = window.getContentPane();
      
      pane.add(tab);
      
      mainPanel.setLayout( new GridLayout(4,2));
      ((JComponent) mainPanel).setBorder(BorderFactory.createEmptyBorder(30,30,30,30));
      mainPanel.add(new JLabel("Database: "));
      mainPanel.add(db);
      mainPanel.add(new JLabel("Username: "));
      mainPanel.add(uname);
      mainPanel.add(new JLabel("Password: "));
      mainPanel.add(pw);
      mainPanel.add(connect);
      mainPanel.add(close);
      
      tab.addTab("Connection", mainPanel);
      
      window.pack();
      window.setVisible(true);  
      
      connect.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {
        p_conn.connect();
       }
      });
      
      close.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {
        System.exit(0);
       }
      });
     }
     
     /*
      * Messages
      */
     
     public void dbWrong() {
      JOptionPane.showMessageDialog(null, "Please enter a valid database name");
     }
     
     public void conTrouble() {
      JOptionPane.showMessageDialog(null, "Please check your data");
     }
     
     public void info() {
      JOptionPane.showMessageDialog(null, "You are connected with \""
        + database() + "\" as user \"" + username() + "\"");
     } 
     
     public void dbNoDisc() {
      JOptionPane.showMessageDialog(null, "Cannot close connection to database");
     }
     
     /*
      * get Strings
      */
     
     public String database() {
      return db.getText().toString();
     }
     
     public String username() {
      return uname.getText().toString();
     }
     
     public String password() {
      return pw.getText().toString();
     }
    }

    Besten Dank für Eure hilfe.

    Gruss
    Savvo
     

  2. #2
    Registriert seit
    Mar 2001
    Ort
    München
    Beiträge
    4.785
    Wenn du uns eine aussagekräftige Fehlermeldung bringst können wir dir helfen.

    Eine Zeilennummer wäre z.b recht hilfreich dann müssten wir nicht den ganzen code auf eventuelle NullPointer abchecken.
     
    Erst wenn der letzte Programmierer eingesperrt...
    ...und die letzte Idee patentiert ist, werdet ihr merken, dass Anwälte nicht programmieren können.
    -------------------
    chris: hey Tom hast du eigentlich ne Freundin
    jdar: ich bin tutorials.de Mod!

  3. #3
    savvo savvo ist offline Mitglied Bronze
    Registriert seit
    Dec 2004
    Beiträge
    49
    Hallo, sorry hab gar nicht daran gedacht. Hier ist die Meldung, danke.

    java.lang.NullPointerException
    at Frame$1.actionPerformed(Frame.java:60)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
     

  4. #4
    savvo savvo ist offline Mitglied Bronze
    Registriert seit
    Dec 2004
    Beiträge
    49
    Hallo, hab den Fehler gefunden, war eigentlich ganz einfach. In der Klasse Frame fehlte folgender Eintrag:

    Code :
    1
    
    private Connector p_conn = new Connector(this);
    War ja doch nicht so schlimm


    Sorry für solche Themen und besten Dank für die gebotene Hilfe.

    Grüsse und frohes neues Jahr.
    Savvo
     

Ähnliche Themen

  1. NullPointerException?
    Von Maik20 im Forum Java
    Antworten: 1
    Letzter Beitrag: 08.12.08, 23:06
  2. NullPointerException
    Von Teufelslama im Forum Java
    Antworten: 2
    Letzter Beitrag: 18.06.08, 23:44
  3. NullPointerException
    Von dadon511 im Forum Java
    Antworten: 2
    Letzter Beitrag: 05.04.07, 19:16
  4. NullPointerException
    Von dadon511 im Forum Java
    Antworten: 8
    Letzter Beitrag: 02.04.07, 08:46
  5. NullPointerException... wo? :(
    Von target im Forum Java
    Antworten: 2
    Letzter Beitrag: 30.05.05, 17:19