Hallo
ich hoffe, ich schreibe das jetzt in die richtige Gruppe.
Zuerst mal mein Vorhaben:
Ich bin zurzeit dabei mir Java anzueignen und will eine GUI (mit SWING) erstellen.
Das hat soweit auch wunderbar funktioniert, dafür gibt es ja auch genügend Beispiele.
Auf meiner Ansicht habe ich ein "PLZ"-Feld. Mein Ziel ist es nun, dass nachdem die PLZ eingegeben wurde, automatisch (nach "enter") der entsprechende Ort, Kreis, das Bundesland und das Land in einer Datenbank gefunden wird und die Werte in dafür bereits vorgesehene Felder gefüllt werden.
Da ich mir gedacht habe, dass ich diese Funktion noch in anderen Ansichten gebrauchen könnte, wollte ich eine Klasse dazu erstellen, die derzeit folgenden Aufbau hat:
In der Funktion "getData()" werden dann die Daten in der DB gesucht (funktioniert auch)
Nun zu meinem Problem:
Nachdem ich die Werte aus der DB ausgelesen habe, sollen diese natürlich auch in die Felder geschrieben werden, die ich dafür auf meiner Ansicht habe.
Ich dachte mir, der einfachste Weg wäre es, die Werte in Attributen (Im Beispiel: "psOrt") zu speichern und die Attribute in meiner Ansicht abzufragen.
Mein Problem ist nun schlicht und ergreifend, dass ich keine Ahnung habe, wie bzw. zu welchem Zeitpunkt ich die Attribute abfragen kann.
Meine erste Idee war es, einen zweiten ActionListener in meiner Ansicht zu definieren:
Nur leider wird ja anscheinend der zuletzt angelegte ActionListener als erstes ausgeführt, wodurch in an dieser Stelle die Attribute nicht abfragen könnte.
Wie erwähnt arbeite ich mich in Java ein.
Zuvor habe ich 3 Jahre in "Visual DataFlex" (falls das jemandem ein Begriff ist) und ein wenig in Delphi programmiert.
Ich hoffe ich konnte mein Problem gut Darstellen und bin über jede Hilfe und Anregung froh
ich hoffe, ich schreibe das jetzt in die richtige Gruppe.
Zuerst mal mein Vorhaben:
Ich bin zurzeit dabei mir Java anzueignen und will eine GUI (mit SWING) erstellen.
Das hat soweit auch wunderbar funktioniert, dafür gibt es ja auch genügend Beispiele.
Auf meiner Ansicht habe ich ein "PLZ"-Feld. Mein Ziel ist es nun, dass nachdem die PLZ eingegeben wurde, automatisch (nach "enter") der entsprechende Ort, Kreis, das Bundesland und das Land in einer Datenbank gefunden wird und die Werte in dafür bereits vorgesehene Felder gefüllt werden.
Da ich mir gedacht habe, dass ich diese Funktion noch in anderen Ansichten gebrauchen könnte, wollte ich eine Klasse dazu erstellen, die derzeit folgenden Aufbau hat:
Java:
public class PLZAutoSearch extends JFormattedTextField implements ActionListener {
private Integer piPLZ;
private String psOrt;
public Integer getPLZ() {
return piPLZ;
}
public void setPLZ(Integer piPLZ) {
this.piPLZ = piPLZ;
}
public String getOrt() {
return psOrt;
}
public void setOrt(String psOrt) {
this.psOrt = psOrt;
}
public PLZAutoSearch()
{
addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
this.getData();
}
public void getData()
{
.....
}
In der Funktion "getData()" werden dann die Daten in der DB gesucht (funktioniert auch)
Nun zu meinem Problem:
Nachdem ich die Werte aus der DB ausgelesen habe, sollen diese natürlich auch in die Felder geschrieben werden, die ich dafür auf meiner Ansicht habe.
Ich dachte mir, der einfachste Weg wäre es, die Werte in Attributen (Im Beispiel: "psOrt") zu speichern und die Attribute in meiner Ansicht abzufragen.
Mein Problem ist nun schlicht und ergreifend, dass ich keine Ahnung habe, wie bzw. zu welchem Zeitpunkt ich die Attribute abfragen kann.
Meine erste Idee war es, einen zweiten ActionListener in meiner Ansicht zu definieren:
Java:
oEd_PLZ = new PLZAutoSearch();
oEd_PLZ.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
.....
}
});
Nur leider wird ja anscheinend der zuletzt angelegte ActionListener als erstes ausgeführt, wodurch in an dieser Stelle die Attribute nicht abfragen könnte.
Wie erwähnt arbeite ich mich in Java ein.
Zuvor habe ich 3 Jahre in "Visual DataFlex" (falls das jemandem ein Begriff ist) und ein wenig in Delphi programmiert.
Ich hoffe ich konnte mein Problem gut Darstellen und bin über jede Hilfe und Anregung froh