Parse data fra Class 1 til GUI class
Hej,Jeg er i gang med et mindre projekt, som virkelig driller mig.
Jeg har en GUI klasse og en SQL klasse.
GUI klassen envoker en metode i SQL klassen, som så sender et sæt af Strings tilbage til GUI klassens JTable metode, der så skal liste de resultater.
Jeg har debugget i SQL ved at lave en System.out.println, og her viser den korrekt de strings inden de bliver sendt til jtable metoden i GUI. Men alligevel får jeg nullpointer fejlen.
Således er min kode:
1)
En knap klikkes på og følgende envokes:
resultsPanel("","","","","");
2)
Følgende metode bliver kaldt:
public void resultsPanel(String username, String firstname, String lastname,String position,String department)
{
dialog = new JDialog(frame,false);
dialog.setTitle("Results");
dialog.setSize(350,320);
dialog.setResizable(true);
Container pane = dialog.getContentPane();
pane.setLayout(new BorderLayout());
pane.add(results(username,firstname,lastname,position,department),BorderLayout.NORTH);
pane.add(resultsButtons(),BorderLayout.SOUTH);
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
}
3)
Dertil er der en knap fra "resultsButtons" som envoker følgende:
(et uddrag)
if (statement.execute("SELECT users.username,firstname,lastname,position,department,phone,profile,competence_type,competence_text,completed_tasks FROM users,competences,tasks WHERE users.username = competences.username AND competences.username = tasks.username;")) {
rs = statement.getResultSet();
while(rs.next()){
String username = rs.getString("username");
String firstname = rs.getString("firstname");
String lastname = rs.getString("lastname");
String position = rs.getString("position");
String department = rs.getString("department");
String phone = rs.getString("phone");
String profile = rs.getString("profile");
String competence_type = rs.getString("competence_type");
String competence_text = rs.getString("competence_text");
String completed_tasks = rs.getString("completed_tasks");
System.out.println("Username: " + username + "\n Name: " + firstname + " " + lastname + "\nPosition: \n" + position + "\nDepartment: " + department + "\nPhone: " + phone + "\nProfile :" + profile + "\n \n \nCompetence: "+ competence_type + "\nCompetence Text :" + competence_text + "\nCompleted :" + completed_tasks + "\n");
gui.results(username,firstname,lastname,position,department);
4) Som kan ses, så envokes results(), som ser således ud:
public JTable results(String username, String firstname,String lastname,String position, String department)
{
String idIn = username;
String firstnameIn = firstname;
String lastnameIn = lastname;
String positionIn = position;
String departmentIn = department;
String[] columnNames = {"User ID",
"Firstname",
"Lastname",
"Position",
"Department"};
Object[][] data = {
{idIn, firstnameIn,
lastnameIn, positionIn,departmentIn},
{"Alison", "Huml",
"Rowing", new Integer(3), new Boolean(true)},
{"Kathy", "Walrath",
"Knitting", new Integer(2), new Boolean(false)},
{"Sharon", "Zakhour",
"Speed reading", new Integer(20), new Boolean(true)},
{"Philip", "Milne",
"Pool", new Integer(10), new Boolean(false)}
};
final JTable table = new JTable(data, columnNames);
table.setPreferredScrollableViewportSize(new Dimension(500, 70));
table.setFillsViewportHeight(true);
/* JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane);*/
return table;
}
Så spørgsmålet er..
NU oprettes tabellen jo først, også er det meningen at man ved knappen under tabellen, kan kalde på metoden der skal sende de resultater over til den table, så den tabel kan blive opdateret.
Er det ikke muligt?
Det skal nemlig være således at AL sql foretages i SQL klassen, og al gui-relateret skla foregå i GUI klassen.
En venlig person der vil hjælpe?