# Textfelder füllen



## AndreasS (24. Jan 2005)

Hi,

habe folgende Textfelder:

    private JTextField 		kNrTf;
    private JTextField 		nameTf;
    private JTextField 		vnameTf;
    private JTextField 		strasseTf;
    private JTextField 		plzTf;
    private JTextField 		ortTf;
    private JTextField 		emailTf;
    private JTextField 		gebdatTf;

Wie bekomme ich es hin, dass diese mit Werten gefüllt werden?


```
if(s.equals("Laden")){
				Connection conn = null;
				Statement state = null;
				String url = "jdbc:odbc:Verwaltung";
				String query = "SELECT * FROM Kunden"; 
				
				try {
						Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
						conn = DriverManager.getConnection(url);
						state = conn.createStatement();
					    ResultSet rset = state.executeQuery(query); 
						
					}
					catch (Exception ex) {
						System.out.println("Datenbank kann nicht initialisiert werden");
						ex.printStackTrace();
				}
			}
```

Möchte mit einem Button "next" die Datensätze durchschalten.
Wer kann mir helfen?

Gruß Andi


----------



## foobar (24. Jan 2005)

Schreib dir eine Klasse Person mit entsprechenden Feldern. Dann gehst du das Resultset der Reihe nach durch und erstellst aus jeder Zeile ein Person-Objcet und fügst dieses einer Liste hinzu. Dann kannst du auf die einzelnen Elemente der Liste zugreifen und mit Hilfe von Buttons navigieren.

P.S. Das Forum hat auch eine Suchfunktion ;-)


----------



## AndreasS (24. Jan 2005)

Hi,

danke für deine Hilfe. Es will einfach noch nicht.
Habe jetzt eine Klasse für die Daten geschrieben:


```
public class KundenData
{
	//data representing the verw.information
	int knr;
    String name;
    String vname;
    String strasse;
    int plz;
    String ort;
    String email;
    String gebdat;
    
    public KundenData(int knr, String name, String vname, String strasse,
    		int plz, String ort, String email, String gebdat){
    		
    		this.knr     = new Integer(knr);
    		this.name    = name;
    		this.vname   = vname;
    		this.strasse = strasse;
    		this.plz     = new Integer(plz);
    		this.ort     = ort;
    		this.email   = email;
    		this.gebdat  = gebdat;
    }
}
```

So siehts hier jetzt aus:


```
try {
						Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
						conn = DriverManager.getConnection(url);
						state = conn.createStatement();
					    
					    ResultSet rset = state.executeQuery(query);
						boolean hasData = false;
			
						while(rset.next()) {
							if(!hasData) {
								kundenVec.removeAllElements();
								hasData = true;
							}
							//??
							//Was muss da rein???
							//??
							KundenData kData = new KundenData(knr,name,vname,strasse,plz,
												ort,email,gebdat);
							kundenVec.addElement(kData);
						}
						rset.close();
					}
					catch (Exception ex) {
						System.out.println("Datenbank kann nicht initialisiert werden");
						ex.printStackTrace();
				}
```


Weiß aber immer noch nicht, wie ich das genau machen soll. V.a. die Zuweisungen an die Textfelder.
Bei der Suche habe ich nichts passendes gefunden...
Vielleicht kann mir ja nochmal jemand helfen.

Gruß Andi


----------



## Bleiglanz (24. Jan 2005)

```
boolean hasData = false;
                  while(rset.next()) { // wenn next(), dann gibts daten
                     if(!hasData) { // IST IMMER ERFÜLLT
                        kundenVec.removeAllElements();
                        hasData = true; // WOZU?
                     } 

                  while(rset.next()) { 
                           Kundendata k = new Kundendata();
                           k.setName(rset.getString(1));
                           k.setVorname(rset.getString(2));
                           ....
                           //in vector legen?
                  }
```


----------



## Bleiglanz (24. Jan 2005)

oder nimm ein scrollable Resultset

dann gibts nämlich 

next() und last()

die kannst du per Buttons auslesen lassen

also z.B. als Action für "zurück"


```
public void zurueck()  { // über buttonklick ausgelöst
             if(rset.last()) // cursor eins zurück
             {
               textField1.setText(rs.getStirng(1));
               textField2.setText(rs.getString(2));
             ...
```
analog für vorwaers + rset.next()

rset schliessen nicht vergessen


----------

