Swing Datenbank in ein Swingfenster importieren?

Hallo ihr lieben,

Ich habe ein Problem...

Mein Betreuer hat mir die Aufgabe gegeben eine Tabelle, in der Beispiel Datenbank *Nordwind*, mit SQL zu programmieren ...
Dies habe ich auch soweit geschafft trotz meiner schlechten SQL Kenntnisse.
Meine Tabelle heißt Personal und enthält Spalten wie : Nachname, Name, Ort, Region,...

nun zu meinem Problem...
Ich soll mit swing ein fenster programmieren das einige felder wie z.B. "Aktualisieren", "Datei", "Bearbeiten",... enthält.
zusätzlich soll ich Die Nordwind Datenbank inklusive meiner Tabelle in das mit Swing erstellte fenster importiert werden.

Ich habe mich erkundigt und in vielen Foren durchgeboxt, jedoch finde ich nur GUI Programme wie z.B. Visual Editor...
Schön und gut aber mein Betruer möchte, dass ich das alles manuell Programmiere :(
Da ich ein anfänger in Java bin und noch nie was mit Swing zu tun hatte bin ich auf eure Hilfe angewiesen =)
Hoffe ihr könnt mir helfen =)
Danke im voraus
 
danke für die schnelle antwort ...
doch niemand hat gesagt das ich es nicht schon versucht hätte ..
auf beiden seiten die du mir vorgeschlagen hast war ich schon ... trozdem danke =)
ich hab gehofft wir könnten das problem hier zusammen lösen statt das ich von einem link zum anderen springe ...
wie auch immer ... ich habe jetzt etwas hilfe von meinem Betruer bekommen und er hat mir das folgende Programm gezeigt:

Java:
import java.sql.*;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class swingbutton extends JFrame 

{

private JLabel selectQueryLabel;

private JCheckBox Name, Vorname,

Ort, Region, PLZ;

private JPanel selectQueryPanel, checkBoxPanel, executePanel;

private JButton runQueryButton, clearSQLButton;

private Connection connection;

private Statement statement;

private ResultSet resultSet;

public swingbutton()

{

super("Query an Address Book");

//Driver and Connection

try

{

//Driver for MicrosoftAccess

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

//Inform the user that the Driver was loaded successfully

System.out.println("Driver Loaded");

//Connect to specific database(i.e. MyAddress3) in Access

Connection connection=DriverManager.getConnection("jdbc:odbc:test_db");

//Inform User

System.out.println("Database connected");

}//end try

catch(ClassNotFoundException cnfe)

{

cnfe.printStackTrace();

}//end catch

catch(SQLException sqle)

{

sqle.printStackTrace();

}//end catch

//get content pane and set its layout

Container container=getContentPane();

container.setLayout(new BorderLayout());

//GUI Components

selectQueryLabel=new JLabel("Select Fields to be Queried");

Name=new JCheckBox("Name");

Vorname=new JCheckBox("Vorname");

Ort=new JCheckBox("Ort");

Region=new JCheckBox("Region");

PLZ=new JCheckBox("PLZ");



//register listeners for JCheckBoxes

CheckBoxHandler handler=new CheckBoxHandler();

Name.addItemListener(handler);

Vorname.addItemListener(handler);

Ort.addItemListener(handler);

Region.addItemListener(handler);

PLZ.addItemListener(handler);



//set up selectQueryPanel

selectQueryPanel=new JPanel();

selectQueryPanel.setLayout(new FlowLayout());

selectQueryPanel.add(selectQueryLabel);

//set up CheckBox Panel

checkBoxPanel=new JPanel();

checkBoxPanel.setLayout(new FlowLayout());

checkBoxPanel.add(Name);

checkBoxPanel.add(Vorname);

checkBoxPanel.add(Ort);

checkBoxPanel.add(Region);

checkBoxPanel.add(PLZ);


//set up execute panel

executePanel=new JPanel();

executePanel.setLayout(new FlowLayout());

//set up buttons

runQueryButton=new JButton("Run Query");

clearSQLButton=new JButton("Clear SQL");

runQueryButton.addActionListener

(

new ActionListener()

{

public void actionPerformed(ActionEvent event)

{

if(event.getSource().equals(runQueryButton))

{

runSQLQuery();

}

}

}

);

executePanel.add(runQueryButton);

executePanel.add(clearSQLButton);

container.add(selectQueryPanel, BorderLayout.NORTH);

container.add(checkBoxPanel, BorderLayout.CENTER);

container.add(executePanel, BorderLayout.SOUTH);

setSize(800,150);

setVisible(true);

}

public static void main(String args[])

{

	swingbutton dwgui=new swingbutton();

dwgui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}//end main

//private inner class for ItemListener event handling

private class CheckBoxHandler implements ItemListener

{

public void itemStateChanged(ItemEvent event)

{

}//end method itemStateChanged

}//end private inner class CheckBoxHandler

private void runSQLQuery()

{

String output="";

try

{

statement=connection.createStatement();

resultSet=statement.executeQuery("select * from Personal2");

while(resultSet.next())

{

output+=resultSet.getString(1)+"\n";

}

JOptionPane.showMessageDialog(null,output);

System.out.println(output);

}//end try

catch(SQLException sqle)

{

sqle.printStackTrace();

}//end catch

}//end runSQLQuery

}//end class


nun tut er die Treiber erfolgreich laden und verbindet mich mit der Datenbank..
Doch sobal ich einer meiner auswahlmöglichkeiten die ich mit der Checkbox definiert habe auswähle kommt eine fehlermeldung -->
Java:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at swingbutton.runSQLQuery(swingbutton.java:226)
	at swingbutton.access$1(swingbutton.java:216)
	at swingbutton$1.actionPerformed(swingbutton.java:166)
	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.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)
 

KrokoDiehl

Top Contributor
Hm, ich hoffe deine Einrückung ist durch das Kopieren in das Forum hier kaputt gegangen.
Ansonsten sagt dir die Exception ja schon fast alles:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at swingbutton.runSQLQuery(swingbutton.java:226)
at swingbutton.access$1(swingbutton.java:216)
Die oberste Zeile im Stacktrace sagt dir, wo es passiert ist: Und zwar in swingbutton.java, Zeile 226 (ich habe es mal rot markiert). Und da es eine NullPointerException ist, heißt das, dass in dieser Zeile auf etwas zugegriffen wird, dass null ist. Warum es null ist, muss dann geprüft werden, bzw. geprüft werden, warum es nicht initialisiert wurde. Vielleicht fehlt einfach irgendwo ein
Code:
new Blabla()
oder eine bestimmte Initialisierungs-Methode wurde nicht ausgeführt.
 

Siassei

Bekanntes Mitglied
Hilfe, wer hat den das geschrieben :-|

Bitte schicke in Zukunft nicht das ganze File. Suche statt dessen die relevanten Stellen selbst raus. Dann müssen die Leser nicht denn ganzen Code durchsuchen. Und meist kommt man da schon selber auf die Lösung.

Dein Problem mit der Nummer 1 (NullPointerException) liegt hier
Java:
//Connect to specific database(i.e. MyAddress3) in Access 
Connection connection=DriverManager.getConnection("jdbc:odbc:test_db");
Du erzeugst hier eine lokale Variable. Ich denke man sollte hier die Verbindung gleich der Klassenvariable zuweisen. Zudem empfehle ich dir, lokale Variable und Klassenvariable nicht gleich zu benennen.

Gruß,
Thomas
 
okee...
also das war schonma sehr informativ deshalb schonmal danke ...


Die oberste Zeile im Stacktrace sagt dir, wo es passiert ist: Und zwar in swingbutton.java, Zeile 226 (ich habe es mal rot markiert). Und da es eine NullPointerException ist, heißt das, dass in dieser Zeile auf etwas zugegriffen wird, dass null ist.
bis hirhin verstehe ich es ja noch...

Warum es null ist, muss dann geprüft werden, bzw. geprüft werden, warum es nicht initialisiert wurde.
Dies verstehe ich wiederum nicht ... ich kann mir nicht erklären wie das 0 sein kann ...

Vielleicht fehlt einfach irgendwo ein new Blabla()
Das hört sich logisch an ... aber was müsste ich denn anstelle von Blabla setzten und wozu soll das dienen ?! xD
kannst du mir das bitte nochmal erklären?
 
sry @ Thomas hihi^^
ahh oke...
also test_db ist ja der datenquellenname ...

Ich denke man sollte hier die Verbindung gleich der Klassenvariable zuweisen. Zudem empfehle ich dir, lokale Variable und Klassenvariable nicht gleich zu benennen.

hmm ... was habe ich denn hier gleich benannt ? o_O
 
also falls es hilft ...
mir wird an folgenden stellen ein ausrufezeichen angezeigt :

Java:
public class swingbutton extends JFrame

und hier
Java:
Connection connection = DriverManager.getConnection("jdbc:odbc:test_db");
 

Blakh

Bekanntes Mitglied
Dein Betreuer soll sich besser an Codeconventions halten. Liest sich übel dein Beispiel :(.

Zu den Ausrufezeichen kann man nicht viel sagen. Das Erste könnte z.B. sein, weil du den Klassennamen klein geschrieben hast und nicht, wie es sich gehört, groß. Das Zweite Ausrufezeichen könnte da sein, weil du die lokale Variable connection nie verwendest. Benutzt du NetBeans oder Eclipse als IDE?

Ich frage mich, wieso du gleich mit GUI-Programmierung und DB loslegen musst, wenn du anscheinend noch nicht mal den Unterschied zwischen null und 0 kennst.

null -> Es existiert kein Objekt ... NullPointerException -> du willst was mit einem Objekt machen, was nicht existiert.

Warum das null sein kann? Weil du es nicht initialisiert hast. Siehe Post von Siassei. Den Unterschied zwischen lokaler und globaler Variable solltest dir zu Gemüte ziehen, wenn du den Hinweis nicht verstehst.
 
Zuletzt bearbeitet:
hmm okee...

ich benutze eclipse als IDE
Ich weis auch nicht warum mich mein Betreuer mit sachen quält von denen ich keine ahnung habe ...
aber ich glaube er meint es nur gut =)
also ich mache zurzeit ein einjahrespraktikum und habe ein halbes jahr hinter mir ...
als wir in der schule hallo welt programmiert haben musste ich hier schon ein Taschenrechner programmieren o_O
naja zurück zum thema ...
das problem soll bis montag gelöst werden sagte er ...
ich bin am verzweifeln ;-(
ja sry ich kenne den unterschied zwischen all dem nicht ... ich bin nicht so fortgeschritten wie ihr ... deshalb bin ich ja auch hier ...
weil ich auf eure hilfe angewiesen bin ...
also kann mir bitte jemand schritt für schritt erklären was ich tun muss?
 
danke für deine mühe ...
aber dank den links die du mir vorgeschlagen hast weis ich jetzt zwar was lokale variablen usw sind aber ehrlich gesagt komme ich damit keinen schritt näher an mein ziel ...
ich kapier das alles einfach nicht ...
ich weis die puzzelteile liegen jetzt alle vor mir und ich muss sie nur noch richtig zusammensetzten aber ich kriege es einfach nicht hin >.< aaaaaaaa
;-(
 

ARadauer

Top Contributor
weis ich jetzt zwar was lokale variablen usw sind

Du musst einen Swing Datenbank Anwendung schreiben, das ist eine sehr komplexe Aufgabenstellung... das kann man nicht einfach so herunter wurschteln...

Du versuchst einen Marathon zu laufen... lokale Variablen.. toll jetzt weißt du wie du dir die Schnürsenkel zubindest...

Ich würde einfach mal das Swing Kapitel und das Datenbank Kapitel im Java Insel Buch lesen... dann wirds klarer

mir wird an folgenden stellen ein ausrufezeichen angezeigt :
Scheiß drauf! Das sind Warnings... sollte trotzdem funktionieren....
 
Geschafft =)
danke für eure ganzen Bemühungen freunde.
Ich bin drauf gekommen wie es klappen könnte und habs geschafft =)

Hier nochmal die Lösung für die die es interessiert:

was ich lediglich tun musste war die folgende zeile zu kopieren :
Java:
Connection connection = DriverManager.getConnection("jdbc:odbc:test_db");

und an diese stelle zu setzen:
Java:
private void runSQLQuery()

{

String output="";

try

{
Connection connection = DriverManager.getConnection("jdbc:odbc:test_db");
statement=connection.createStatement();

resultSet=statement.executeQuery("select Vorname, Name from Personal2");

while(resultSet.next())

desweieteren musste ich folgendes ändern:
vorher:
Java:
output+=resultSet.getString(1)+"\n";

nachher:
Java:
output+=resultSet.getString(1)+" "+resultSet.getString(2)+"\n";

das wars schon =)

Vielen vielen Dank an alle =)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Tabelle zu Datenbank hinzufügen / Apache Derby AWT, Swing, JavaFX & SWT 7
L JavaFx Textformatierung mittels Datenbank und Funktion anpassen AWT, Swing, JavaFX & SWT 5
N Java MySQL Datenbank durchsuchen? AWT, Swing, JavaFX & SWT 7
ralfb1105 JavaFX TreeView dynamisch aus Datenbank Tabelle erstellen AWT, Swing, JavaFX & SWT 22
J Searchfunktion auf einer MS Access Datenbank AWT, Swing, JavaFX & SWT 7
M TableView + Datenbank Aktualisierung AWT, Swing, JavaFX & SWT 4
Bluedaishi JavaFX Button Image aus Datenbank AWT, Swing, JavaFX & SWT 13
S Insert Umlaute in Datenbank AWT, Swing, JavaFX & SWT 5
J Suchmaschine einer Datenbank AWT, Swing, JavaFX & SWT 5
P JavaFX, TableView und Datenbank AWT, Swing, JavaFX & SWT 4
F JavaFX Von Datenbank in ListView AWT, Swing, JavaFX & SWT 4
kilopack15 Simple Datenbank mit AWT AWT, Swing, JavaFX & SWT 9
K Textvorschläge aus der Datenbank AWT, Swing, JavaFX & SWT 25
A checkbox mit allen tabllen aus datenbank befüllen AWT, Swing, JavaFX & SWT 8
C (JavaFX 8) SQLite Datenbank in einem TableView darstellen AWT, Swing, JavaFX & SWT 2
M Combo Box auswahl in eine Datenbank speichern AWT, Swing, JavaFX & SWT 1
V Java FX POJO aus Datenbank in FX TableView / Best Practice AWT, Swing, JavaFX & SWT 0
thet1983 Swing JTable mit MySQL Datenbank AWT, Swing, JavaFX & SWT 14
N JTable, AbstractTableModel aus Datenbank initialisieren AWT, Swing, JavaFX & SWT 8
D Applet GWT speichert Daten nicht in Datenbank AWT, Swing, JavaFX & SWT 2
E JList /DefaultListModel mit Datenbank verbinden AWT, Swing, JavaFX & SWT 10
M Datenbank in Jtable mit einem JButton anzeigen lassen AWT, Swing, JavaFX & SWT 4
S Frameübergreifend in Datenbank eingeloggt bleiben AWT, Swing, JavaFX & SWT 9
S Swing JComboBox mit Datenbank füllen AWT, Swing, JavaFX & SWT 16
I Jlist dynamisch aus Datenbank füllen AWT, Swing, JavaFX & SWT 14
N Formular für Suchanfragen in einer Datenbank AWT, Swing, JavaFX & SWT 3
X Swing Kategoriebaum aus Datenbank erstellen AWT, Swing, JavaFX & SWT 39
K TableModel mit Daten aus Datenbank füllen AWT, Swing, JavaFX & SWT 7
C Combobox im JFrame aus Datenbank befüllen AWT, Swing, JavaFX & SWT 6
C Bild in einer Datenbank speichern? AWT, Swing, JavaFX & SWT 7
S Swing Daten aus Datenbank in JTable AWT, Swing, JavaFX & SWT 2
C Anführungszeichen in JTextArea für Datenbank ersetzen AWT, Swing, JavaFX & SWT 3
B Datensätze einer Datenbank in JTable ausgeben AWT, Swing, JavaFX & SWT 14
O JDialog anzeigen beim öffnen einer Datenbank AWT, Swing, JavaFX & SWT 4
A JList mit 2 Werten aus der Datenbank füttern AWT, Swing, JavaFX & SWT 5
G JTable aus Datenbank füllen AWT, Swing, JavaFX & SWT 4
T Warnkorb + Tabelle + Datenbank AWT, Swing, JavaFX & SWT 3
P JTree aus Datenbank für Kategorien-Realisierung AWT, Swing, JavaFX & SWT 2
P JTable (->Datenbank) editieren/updaten AWT, Swing, JavaFX & SWT 3
R Jtree aus Datenbank akutalisieren AWT, Swing, JavaFX & SWT 9
M Datenbericht aus Datenbank darstellen.(einfaches Konzept) AWT, Swing, JavaFX & SWT 2
A JTable mit MySQL Datenbank füllen AWT, Swing, JavaFX & SWT 12
C [JTable] Update der Datenbank AWT, Swing, JavaFX & SWT 6
U Bild in Datenbank speichern AWT, Swing, JavaFX & SWT 26
T JTable und Datenbank AWT, Swing, JavaFX & SWT 20
W JTextfield aktualisieren / Wert aus Datenbank neu abfragen AWT, Swing, JavaFX & SWT 2
R JTable mit Daten aus der Datenbank füllen AWT, Swing, JavaFX & SWT 3
M Daten aus Datenbank ins JTable einfügen AWT, Swing, JavaFX & SWT 4
G Bild direkt aus Datenbank anzeigen lassen AWT, Swing, JavaFX & SWT 14
M JComboBox aus Datenbank mit 2 Werten füllen AWT, Swing, JavaFX & SWT 5
K TreeTable exportieren/importieren AWT, Swing, JavaFX & SWT 20
S Kann javafx.scene.layout.VBoxBuilder nicht importieren AWT, Swing, JavaFX & SWT 3
L JavaFX CSS in ein anderes CSS importieren AWT, Swing, JavaFX & SWT 2
S Swing Wie JXTable importieren AWT, Swing, JavaFX & SWT 2
J SWT in eclipse importieren AWT, Swing, JavaFX & SWT 11
J Java bild in andere Klasse importieren AWT, Swing, JavaFX & SWT 5
J Bild importieren - TetrisStein AWT, Swing, JavaFX & SWT 4
B JTextPane und Image importieren in HTML String. AWT, Swing, JavaFX & SWT 2
F Externes Look & Feel für Swing wie importieren/verwenden AWT, Swing, JavaFX & SWT 3
W netbeans projekt in Eclipse importieren -gui teil geht nicht AWT, Swing, JavaFX & SWT 5
K Text in JTable importieren AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen


Oben