# Auslesen und in TextBox anzeigen lassen



## Guest (4. Apr 2005)

Ich will Daten aus einer DB auslesen und dieses in TextBoxen setzten.Da ich nicht weiss wie viel kann ich ja nicht die Anzahl der TB festlegen
Kann man dasmit Variablen machen??

```
for(int i=0;i<=10;i++)
        {
        	javax.swing.JLabel jLabel3 = new javax.swing.JLabel(); //jLabeli
        	jLabel3.setText("jLabel3"); //jLabeli
        	jPanel6.add(jLabel3, java.awt.BorderLayout.NORTH); //jLabeli
        }
```


----------



## abollm (4. Apr 2005)

Musst du das unbedingt in einer Textbox machen, sprich dorthin die Daten ausgeben?

Besser ist für solche Fälle eine JTable.


----------



## Guest (4. Apr 2005)

Ja wäre besser!!
Habe auch mal gelesen das dies gehen soll


----------



## Guest (5. Apr 2005)

Ok das ganze müsste ja so gehen

```
public void cat()
	{
		this.verbinden();
		try
		{
			erg=com.executeQuery("SELECT * FROM java_cat");
			int id;
			String name;
			String beschr;
			int cat_id;
			String name2;
			String beschr2;
			while(erg.next())
			{
				id=erg.getInt("id");
				name=erg.getString("name");
				System.out.println(name);
				beschr=erg.getString("besch");
				start.jPanel7.add(new JLabel(name));
				erg2=com.executeQuery("SELECT * FROM java_forum Where cat_id="+id+";");
				while(erg2.next())
				{
					name2=erg2.getString("name");
					
					//start.jPanel6.add(new JLabel(name2));
				}
			}
		}
		catch(SQLException sqle){sqle.getMessage();};
		if (conn != null) 
		{ 
		    try 
		    { 
		        conn.close(); 
		    } 
		    catch(SQLException sqle) 
		    { 
		        System.out.print(sqle.getMessage()); 
		    } 
		}
	}
```
Das ist aus der Klasse wo alle MySQL Befehle drin stehen
Es wird aber nix in dem Applet angezeigt

```
public void init() {
    	DB_class start=new DB_class();
        start.cat();
        initComponents();
        
    }
```


----------



## abollm (5. Apr 2005)

Poste mal ein wenig mehr Code, z.B. Verbindung zur DB (welche?), Aufruf deiner Methode cat


----------



## Guest (5. Apr 2005)

Die MySQL Verbindung geht mit System...... wird was ausgegeben
Der Aufruf der DB Klasse erfolgt hier
public void init() {
    	DB_class start=new DB_class();
        start.cat();
        initComponents();

    }


----------



## abollm (5. Apr 2005)

Ich habe gerade mal in "meiner Kiste" gewühlt und das folgende, leicht von mir angepasste Beispiel für eine Oracle-DB gefunden. Es dürfte ein Leichtes sein, das Beispiel für MySQL umzuschreiben.

Ich habe das Applet getestet: es funktioniert einwandfrei.
Vielleicht nützt es dir etwas.


```
/**
 * This is a demonstration JDBC applet.
 * Leicht angepasst durch abollm
 */

import java.applet.Applet;
import java.awt.Graphics;
import java.util.Vector;
import java.sql.*;

public class OutputApplet extends Applet implements Runnable {
    private Thread worker;
    private Vector queryResults;
    private String message = "Initializing";

    public synchronized void start() {
	// Every time "start" is called we create a worker thread to
	// re-evaluate the database query.
	if (worker == null) {	
	    message = "Connecting to database";
            worker = new Thread(this);
	    worker.start();
	}
    }

    /**
     * The "run" method is called from the worker thread.  Notice that
     * because this method is doing potentially slow databases accesses
     * we avoid making it a synchronized method.
     */

    public void run() {
	String url = "jdbc:oracle:oci8:@DB";
	String query = "SELECT a.empno, a.ename, a.job, " +
			               "a.mgr, a.hiredate, a.sal, a.comm, a.deptno  FROM emp a";
	
	try {
	    Class.forName("oracle.jdbc.driver.OracleDriver");
	} catch(Exception ex) {
	    setError("Can't find Database driver class: " + ex);
	    return;
	}

	try {
	    Vector results = new Vector();
	    Connection con = DriverManager.getConnection(url,
						"scott", "tiger");
	    Statement stmt = con.createStatement();
	    ResultSet rs = stmt.executeQuery(query);
	    while (rs.next()) {
		String s = rs.getString("ENAME");
		float f = rs.getFloat("SAL");
		String text = s + "     " + f;
		results.addElement(text);
	    }

	    stmt.close();
	    con.close();

	    setResults(results);

	} catch(SQLException ex) {
	    setError("SQLException: " + ex);
	}
    }

    /**
     * The "paint" method is called by AWT when it wants us to
     * display our current state on the screen.
     */

    public synchronized void paint(Graphics g) {
	// If there are no results available, display the current message.
	if (queryResults == null) {
	    g.drawString(message, 5, 50);
	    return;
	}

	// Display the results.
	g.drawString("Alle Angestellten in der Tabelle EMP:  ", 5, 10);
	int y = 30;
	java.util.Enumeration enum = queryResults.elements();
	while (enum.hasMoreElements()) {
	    String text = (String)enum.nextElement();
	    g.drawString(text, 5, y);
	    y = y + 15;
	}
    }

    /**
     * This private method is used to record an error message for
     * later display.
     */

    private synchronized void setError(String mess) {
	queryResults = null;	
	message = mess;	
	worker = null;
	// And ask AWT to repaint this applet.
	repaint();
    }

    /**
     * This private method is used to record the results of a query, for
     * later display.
     */

    private synchronized void setResults(Vector results) {
	queryResults = results;
	worker = null;
	// And ask AWT to repaint this applet.
	repaint();
    }
}
```


----------



## Guest (7. Apr 2005)

Ich habe das Problem schon gelöst die Instanz war falsch


----------

