I
Ithron
Gast
Guten Morgen Java-Forum! 
Ich hab seit gut 3 Jahren nicht mehr programmiert und wollt mich jetzt mal wieder etwas reinfinden um es nicht komplett zu verlernen.
Hierfür hab ich mir ein altes Projekt vom Studium gesucht, bei dem eine Art Automobilbörse eingerichtet wurde mit einer Datenbankanbindung. Dieses Projekt wollte ich jetzt umschreiben in eine private Filmdatenbank, falls man sich mal unschlüssig ist, welchen Film man schauen möchte
Datenbankverbindung wird hergestellt, das Suchfenster erscheint auch ohne Probleme, aber wenn ich dann die Suche bemühe und er mir Daten ausgeben sollte, erscheint nur eine leere Tabelle und er gibt eine NullPointerException in Zeile 149 zurück.
Habe schon mit Ausgabezeilen an diversen Stellen überprüft, wo und warum er die Variablen wieder auf null setzt, aber durch die lange Pause, hab ich wohl ein wenig den Blick verloren, wo der Fehler liegt. Ist sicherlich etwas ganz simples und ich seh es nur nicht
Verbesserungsvorschläge oder Tipps sind natürlich auch gern gesehen. Ich wollte das nur erstmal zum Laufen kriegen
Hier noch der komplette Fehlertext:
Ich hab seit gut 3 Jahren nicht mehr programmiert und wollt mich jetzt mal wieder etwas reinfinden um es nicht komplett zu verlernen.
Hierfür hab ich mir ein altes Projekt vom Studium gesucht, bei dem eine Art Automobilbörse eingerichtet wurde mit einer Datenbankanbindung. Dieses Projekt wollte ich jetzt umschreiben in eine private Filmdatenbank, falls man sich mal unschlüssig ist, welchen Film man schauen möchte
Datenbankverbindung wird hergestellt, das Suchfenster erscheint auch ohne Probleme, aber wenn ich dann die Suche bemühe und er mir Daten ausgeben sollte, erscheint nur eine leere Tabelle und er gibt eine NullPointerException in Zeile 149 zurück.
Habe schon mit Ausgabezeilen an diversen Stellen überprüft, wo und warum er die Variablen wieder auf null setzt, aber durch die lange Pause, hab ich wohl ein wenig den Blick verloren, wo der Fehler liegt. Ist sicherlich etwas ganz simples und ich seh es nur nicht
Verbesserungsvorschläge oder Tipps sind natürlich auch gern gesehen. Ich wollte das nur erstmal zum Laufen kriegen
Java:
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.JTextField;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JButton;
import java.awt.Rectangle;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
public class Anzeige
{
Connection con;
Statement stmt;
ResultSet rs;
private JTextField Filmtitel = null;
private JTextField Originaltitel = null;
private JTextField Genre1 = null;
private JTextField Genre2 = null;
private JTextField Genre3 = null;
private JTextField Bewertung = null;
private JTextField Jahr = null;
private JTextField Schauspieler1 = null;
private JTextField Schauspieler2 = null;
private JTextField Schauspieler3 = null;
private JTextField Schauspieler4 = null;
private JFrame jFrame = null; // @jve:decl-index=0:visual-constraint="32,21"
private JPanel jContentPane = null;
private JScrollPane jScrollPane = null;
private JTable jTable = null;
Vector namen = new Vector(); // @jve:decl-index=0:
Vector zeilen = new Vector(); // @jve:decl-index=0:
Vector table = new Vector(); // @jve:decl-index=0:
public void verbindung() throws Exception
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String dbpath = "E:/Filmdatenbank/FilmDB.mdb";
Connection con = DriverManager.getConnection("jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ="+ dbpath);
Statement stmt = con.createStatement();
}
catch (Exception e)
{
e.printStackTrace();
System.out.println("Verbindung fehlgeschlagen");
}
}
public static void run(String query) throws Exception
{
Anzeige application = new Anzeige();
Anzeige moep = new Anzeige();
application.getJFrame(query).setVisible(true);
moep.verbindung();
}
private JFrame getJFrame(String query)
{
if (jFrame == null)
{
jFrame = new JFrame();
jFrame.setSize(new Dimension(600, 300));
jFrame.setContentPane(getJContentPane(query));
jFrame.setTitle("Filmdatenbank");
}
return jFrame;
}
private JPanel getJContentPane(String query)
{
if (jContentPane == null)
{
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getJScrollPane(query), null);
}
return jContentPane;
}
private JScrollPane getJScrollPane(String query)
{
if (jScrollPane == null)
{
jScrollPane = new JScrollPane(jTable);
jScrollPane.setBounds(new Rectangle(0, 0, 488, 274));
jScrollPane.setViewportView(getJTable(query));
}
return jScrollPane;
}
JTable getJTable(String query)
{
try
{
verbindung();
}
catch (Exception e1)
{
e1.printStackTrace();
}
namen.add( "Filmtitel" );
namen.add( "Originaltitel" );
namen.add( "Genre1" );
namen.add( "Genre2" );
namen.add( "Genre3" );
namen.add( "Bewertung" );
namen.add( "Jahr" );
namen.add( "Schauspieler1");
namen.add( "Schauspieler2");
namen.add( "Schauspieler3");
namen.add( "Schauspieler4");
try
{
stmt = con.createStatement();
rs = stmt.executeQuery (query);
while(rs.next())
{
zeilen = new Vector();
zeilen.add(rs.getString("Filmtitel"));
zeilen.add(rs.getString("Originaltitel"));
zeilen.add(rs.getString("Genre1"));
zeilen.add(rs.getString("Genre2"));
zeilen.add(rs.getString("Genre3"));
zeilen.add(rs.getString("Bewertung"));
zeilen.add(rs.getString("Jahr"));
zeilen.add(rs.getString("Schauspieler1"));
zeilen.add(rs.getString("Schauspieler2"));
zeilen.add(rs.getString("Schauspieler3"));
zeilen.add(rs.getString("Schauspieler4"));
table.add(zeilen);
}
}
catch (Exception e1)
{
e1.printStackTrace();
}
if (jTable == null)
{
jTable = new JTable(table, namen);
}
return jTable;
}
}
Hier noch der komplette Fehlertext:
java.lang.NullPointerException
at Anzeige.getJTable(Anzeige.java:149)
at Anzeige.getJScrollPane(Anzeige.java:114)
at Anzeige.getJContentPane(Anzeige.java:103)
at Anzeige.getJFrame(Anzeige.java:90)
at Anzeige.run(Anzeige.java:78)
at Suchen$2.actionPerformed(Suchen.java:312)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.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 javax.swing.JComponent.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.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(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)