# SQL Ergebnis in der GUI ausgeben



## Russia (24. Mai 2011)

Hallo liebe Community,
Brauche dringend Hilfe für ein Schulprojekt
Hab hier erstmal ein Testprogramm geschrieben, welches das Ergebnis einer SQL Abfrage in einer ganz einfachen GUI ausgeben soll, jedoch erhalte ich keinerlei Ausgabe in der GUI
Könntet ihr mir bitte helfen
Hier die 3 Klassen:



```
package Paket;
import java.sql.*;

public class DB_Abfrage
{




private String Antwort1;

void sucheArtikel()
{
ResultSet ergebnismenge;
String mSQL;

DBZugriff aktuellerZugriff = new DBZugriff();
aktuellerZugriff.oeffneDB();
mSQL = "SELECT Antwort1 FROM leicht "; // Tabelle heißt: leicht // Antwort1 = Name der 3ten Spalte
mSQL = mSQL + "WHERE Nr = '2';"; // Nr = erste Spalte
ergebnismenge = aktuellerZugriff.lesen(mSQL);

try
{
ergebnismenge.next();
int Nr = ergebnismenge.getInt("Nr");
Antwort1 = ergebnismenge.getString(Antwort1);
System.out.println(Antwort1);

}
catch (SQLException err)
{

}

aktuellerZugriff.schliesseDB() ;
}






}
```






```
package Paket;

import javax.swing.*;
import java.sql.*;

public class DBZugriff extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
// Variablen für den Verbindungsaufbau
Connection mdbArtikel = null; // Verbindungsobjekt
String mDB; // Variable für den Treiber und den Pfad zur DB
Statement stmtSQL = null; // Objekt für die Ausführung von SQL-Anweisungen



void oeffneDB() {
try{
// mit nativem Treiber
Class.forName("com.mysql.jdbc.Driver").newInstance();
mdbArtikel = DriverManager.getConnection("jdbc:mysql://localhost/wwm", "root", "");
stmtSQL = mdbArtikel.createStatement();
// DBVerbindung wird aufgebaut
} catch (Exception fehler) {
System.out.println("DB-Fehler: " + fehler);
}

}


void schliesseDB() {
try {
stmtSQL.close();
mdbArtikel.close();
} catch (SQLException err) {
System.err.println(err);
}
}

ResultSet lesen(String pSQL) {
ResultSet rs;

try {
rs = stmtSQL.executeQuery(pSQL);
return rs;
} catch (SQLException err) {
System.err.println(err);
rs = null;
return rs;
}

}
}
```






```
package Paket;

import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JTextField;
import java.awt.Rectangle;
import javax.swing.JButton;

public class Fensterklasse extends JFrame {

private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JTextField jT_Frage = null;
private JButton jButton = null;

/**
* This is the default constructor
*/
public Fensterklasse() {
super();
initialize();
}

/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(669, 342);
this.setContentPane(getJContentPane());
this.setTitle("JFrame");
}

/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getJT_Frage(), null);
jContentPane.add(getJButton(), null);
}
return jContentPane;
}

/**
* This method initializes jT_Frage
*
* @return javax.swing.JTextField
*/
private JTextField getJT_Frage() {
if (jT_Frage == null) {
jT_Frage = new JTextField();
jT_Frage.setBounds(new Rectangle(105, 32, 424, 46));
}
return jT_Frage;
}

/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setBounds(new Rectangle(252, 104, 168, 47));
jButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {

DB_Abfrage Abfrage = new DB_Abfrage();

Abfrage.sucheArtikel();



jT_Frage.setText(Antwort1);

}
});
}
return jButton;
}


String Antwort1;

public String getAntwort1()
{
return Antwort1;
}
public void setAntwort1(String Antwort1)
{
this.Antwort1 = Antwort1;
}




} // @jve:decl-index=0:visual-constraint="10,10"
```




Danke schon einmal für eure Hilfe, ich möchste Wissen wie ich das Ergebnis von SQL Abfragen in der GUI ausgeben kann, kann es bisher nur in der Konsole ansehn. Brauche die Ausgabe in meiner GUI, genauer gesagt auf einem JButton mit .setText() dann.


----------



## Gast2 (24. Mai 2011)

Deine Klasse 
	
	
	
	





```
DBAbfrage
```
 braucht ne Referenz auf deine Klasse 
	
	
	
	





```
Fensterklasse
```
. Dann lässt du dir den JButton geben und änderst dessentext.


----------



## Russia (24. Mai 2011)

Kannst du es mal bitte in den Quelltext einfügen, wie du es meinst, bei mir geht es noch nicht


----------



## Gast2 (24. Mai 2011)

So in etwa:

```
public class DB_Abfrage {
	private FensterKlasse fensterKlasse;
	
	public DB_Abfrage(FensterKlasse fensterKlasse) {
		this.fensterKlasse = fensterKlasse;
	}
	
	...
	
	void sucheArtikel() {
		...
		fensterKlasse.getJButton().setText("neuer Text");
	}
}
```


----------



## Russia (24. Mai 2011)

Funktioniert nicht, bzw ich füge es falsch ein.
Könntest du den gesamtem funktionierenden Quellcode bitte schreiben, wär dir echt dankbar ;-)


----------



## Gast2 (24. Mai 2011)

Da ich weder deine Datenbank noch deine Main habe kann ich das nicht.


----------



## Russia (24. Mai 2011)

Die SQL Datenbank:


-- phpMyAdmin SQL Dump
-- version 3.1.3.1
-- phpMyAdmin
--
-- Host: localhost
-- Erstellungszeit: 24. Mai 2011 um 21:58
-- Server Version: 5.1.33
-- PHP-Version: 5.2.9

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Datenbank: `wwm`
--

-- --------------------------------------------------------

--
-- Tabellenstruktur für Tabelle `leicht`
--

CREATE TABLE IF NOT EXISTS `leicht` (
  `Nr` int(11) NOT NULL AUTO_INCREMENT,
  `Frage` text NOT NULL,
  `Antwort1` text NOT NULL,
  `Antwort2` text NOT NULL,
  `Antwort3` text NOT NULL,
  `Antwort4` text NOT NULL,
  `Loesung` text NOT NULL,
  PRIMARY KEY (`Nr`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;

--
-- Daten für Tabelle `leicht`
--

INSERT INTO `leicht` (`Nr`, `Frage`, `Antwort1`, `Antwort2`, `Antwort3`, `Antwort4`, `Loesung`) VALUES
(1, 'Wie nennt man großen Wirbel um eine berühmte Persönlichkeit?', 'Prominentenkirmes', 'Starrummel ', 'VIP-Jahrmarkt', 'Götterzirkus', 'b'),
(2, '" Wie heiße ich? "', '" Bernd "', '\r\n				Tobias ', ' Manuel ', ' Thomas ', 'a'),




starten tu ich das Projekt, vorerst in Eclipse über Java Bean die Fensterklasse


----------



## Rin (25. Mai 2011)

Du willst die Daten die das Statement ausgibt in einer gui Anzeigen lassen also wenn ich meldungen fehler oder andere sachen ausgeben will benutze ich immer JOptionPanels (Swing) z.B.: in deinem Fall jetzt

```
JOptionPane.showMessageDialog(parent*, ergebniss#);
```

*parent ist das formular oder der Button womit du das OptionPane auslöst 
#dort schreibst du das rein was du asgeben willst also so weit ich deinen code verstanden hab dann z.B.: 

```
JOptionPane.showMessageDialog(parent, "Antwort1.toString");
```

LG Rin


----------



## Russia (25. Mai 2011)

Könntet ihr bitte den gesamten Quellcode mit der Abänderung einstellen


----------



## maki (25. Mai 2011)

*verschoben*


----------

