Textfelder füllen

Status
Nicht offen für weitere Antworten.

AndreasS

Aktives Mitglied
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?

Code:
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

Top Contributor
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

Aktives Mitglied
Hi,

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

Code:
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:

Code:
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

Gesperrter Benutzer
Code:
                  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

Gesperrter Benutzer
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"

Code:
        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
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben