Volledige versie bekijken : [Java Swing] Database data inladen in JComboBox geeft probleem



Subhero
12 May 2010, 20:24
Hoi iedereen en bedankt om toch eens een kijkje te nemen.

Het doel van het programma is een zoekfunctie te maken voor data uit een database. Ik heb voorlopig drie comboboxen waarvan er maar 2 werken. gemeentenBox en sectorBox tonen allebij de opgevraagde data, maar bij soortBox krijg ik een nullpointer exceptie.

Ik heb de regel vet gemarkeerd en onderlijnd waar Netbeans aangeeft waar de NUllPointerExceptie zich bevind.

Onderaan heb ik ook de data acces class toegevoegd want persoonlijk vermoed ik dat daar het echte probleem zit. Deze klasse maakt de verbinding met de database en laad deze in een vector. Die wordt dan teruggegeven aan getjstageSoort() die dan opgeroepen wordt door studentFrame waar de NullPointer zich bevind. Waar het probleem zich bevind [dat vermoed ik toch] heb ik ook vet gemarkeerd en onderlijnd.


public class studentFrame extends JFrame implements ActionListener {

private Container content;
private JPanel topLeft, topRight, bottomLeft, bottomRight;
private JComboBox gemeentenBox, sectorBox, soortBox;
private JTextField aantalVeld;

private DAjstageLogin daLogin = null;
private DAjstageBedrijf daBedrijf = null;
private DAjstageGemeente daGemeente = null;
private DAjstageKeuze daKeuze = null;
private DAjstageSector daSector = null;
private DAjstageSoort daSoort = null;
private DAjstageStudent daStudent = null;
private DAjstageOpdracht daOpdracht = null;

public studentFrame(DAjstageBedrijf daBedrijf, DAjstageKeuze daKeuze, DAjstageGemeente daGemeente, DAjstageSector daSector, DAjstageOpdracht daOpdracht, DAjstageSoort daSoort, DAjstageStudent daStudent, DAjstageLogin daLogin)
throws Exception {

this.daGemeente = daGemeente;
this.daSector = daSector;
this.daOpdracht = daOpdracht;
this.daStudent = daStudent;
this.daKeuze = daKeuze;
this.daLogin = daLogin;

this.setLocation(150,150);
setTitle("Welkom");
setSize(1000,750);
opbouwScherm();
addWindowListener(new VensterHandler());
setVisible(true);

}


public void opbouwScherm(){
content = getContentPane();
content.setLayout(null);

JComboBox gemeentenBox = new JComboBox(daGemeente.getjStageGemeente());
JComboBox sectorBox = new JComboBox(daSector.getjStageSector());
JComboBox soortBox = new JComboBox(daSoort.getjStageSoort());
JTextField aantalVeld = new JTextField();
JLabel gemeentenLabel = new JLabel("Locatie bedrijf:");
JLabel aantalLabel = new JLabel("Werkzame informatici:");
JLabel sectorLabel = new JLabel("Sector stagebedrijf:");
JLabel soortLabel = new JLabel("Soort stage:");

//comboboxen
gemeentenBox.setBounds(5, 30, 120, 20);

sectorBox.setBounds(130, 30, 325, 20);
soortBox.setBounds(465, 30, 120, 20);
aantalVeld.setBounds(595, 30, 120, 20);

//labels
gemeentenLabel.setBounds(5,10,120,20);
sectorLabel.setBounds(130,10,120,20);
soortLabel.setBounds(465,10,120,20);
aantalLabel.setBounds(595,10,135,20);

content.add(gemeentenBox);
content.add(sectorBox);
content.add(soortBox);
content.add(aantalVeld);
content.add(gemeentenLabel);
content.add(sectorLabel);
content.add(soortLabel);
content.add(aantalLabel);

}
package be.khk.lesson.dataaccess;
import java.util.*;
import java.sql.*;
import be.khk.lesson.beans.*;
/**
*
* @author Olivier
*/
public class DAjstageSoort {

private Connection connection = null;

public DAjstageSoort (String url, String login, String password, String driver)
throws ClassNotFoundException, SQLException
{
Class.forName(driver);
connection = DriverManager.getConnection(url, login, password);
}
public void close() throws SQLException {
if(connection != null) {
connection.close();
}
}

public Vector<jstageSoort> getjStageSoort() {
Statement stmt = null;
ResultSet rs = null;
jstageSoort soort = null;
Vector <jstageSoort> resultaat = new Vector<jstageSoort>();

try {
stmt = connection.createStatement();
rs = stmt.executeQuery("SELECT * FROM jstageSoort");

while (rs.next()) {
soort = new jstageSoort();
soort.setId(rs.getInt(1));
soort.setSoortStage(rs.getString(2));
resultaat.add(soort);
}
}
catch(Exception e) {
e.printStackTrace();
}
finally
{ try {
if(stmt!=null) stmt.close();
if(rs!=null) rs.close();
} catch(SQLException e){}
}
return resultaat;
}
}Alvast bedankt.

Subhero
12 May 2010, 20:52
Ok ik heb het probleem opgelost. Het zat hem in het feit dat ik daSoort gewoon niet geinitialiseerd had :rolleyes: :lol:

Meer bewijs nodig dat ik een noob ben? Ik heb nog een vraag :D [in een volgende thread]