String formularInhalt = formularEingabe.getText();
int zahlAusFormular = Integer.parseInt( formularInhalt );
Die Anzahl der Felder variiert weil diese durch den Inhalt einer anderen Datenquelle erzeugt werden
public String[] getEinheit()throws JDOMException,IOException{
List kenn = rootel.getChildren("Kennzahl");
String [] spezifizA = new String [kenn.size()];
for(int i=0;i<kenn.size();i++){
Element name = (Element) kenn.get(i);
spezifizA [i] = name.getChild("Grenzwerte").getAttributeValue("Einheit");
}
return spezifizA;
es muss aber ja irgendwo geschrieben stehen, wie man auf die felder zugreifen kann. Da keiner hier die Arbeit kennt kann dir in der Hinsicht auch keiner weiterhelfen !klofisch hat gesagt.:Also es besteht aus SWING-Elementen.
Da die Anzahl der der Felder dynamisch erzeugt wird, gibt es keine konkrete Bezeichung für die einzelnen Felder. Deshalb hab ich das Problem,....das es mit getText geht weiß ich auch. Nur wie es für den aktuellen Zweck zur Anwendung bringe erschließt sich mir nicht ganz.
/*
* NumberFetcher.java
*/
import java.lang.reflect.*;
import java.util.*;
import javax.swing.*;
class NumberFetcher{
public NumberFetcher(FormularKlasse formular){
this.formular = formular;
List<Integer> zahlen = getFormularZahlen();
for (Integer zahl : zahlen) {
System.out.println(zahl);
}
}
//Diese Methode sammelt die Zahlen aller public Textfelder des Formulars in einer Liste:
public List<Integer> getFormularZahlen() {
List<Integer> zahlen = new ArrayList<Integer>();
try{
Field [] fieldArray = formular.getClass().getDeclaredFields();
for (int i = 0; i < fieldArray.length; i++) {
boolean publicAccess = Modifier.isPublic(fieldArray[i].getModifiers());
if(publicAccess && fieldArray[i].get(formular) instanceof JTextField){
JTextField textfeld = (JTextField)fieldArray[i].get(formular);
zahlen.add(Integer.parseInt(textfeld.getText()));
}
}
}catch(IllegalAccessException ex){
ex.printStackTrace();
}
return Collections.unmodifiableList(zahlen);
}
private FormularKlasse formular;
}