auslesen der Werte dynamischer Textfields

Status
Nicht offen für weitere Antworten.

loadbrain

Bekanntes Mitglied
Hallo,
ich generiere automatisch Textfelder, in die man dann Buchstaben per DragnDrop ziehen kann.
Sind alle Felder belegt, so möchte ich diese auslesen, komme aber absolut nicht an die Werte ran...

Die Felder werden so erstellt:
Code:
 droppedBuchstabe = new JTextField[6];
        for (JTextField dB:droppedBuchstabe)
        {
            dB = new JTextField();
            System.out.println(dB.getText());
        }

so, versuche ich jetzt darauf zuzugreifen, über eine actionperformed mit einem button, so stehe ich vor dem Problem, dass ich ja wieder ein
Code:
t = new JTextField[6];
        for (JTextField dB:t)
        {
            dB = new JTextField();
            System.out.println(dB.getText());
        }
machen muss, natürlch sin die Werte dann leer...

Wie macht man das????[/code]
 
wenn du die nur auslesen willst...
Code:
for( JTextField tf : droppedBuchstabe )
{
    System.out.println( tf.getText() );
}
 
hast du zwischendurch die JTextFields mit irgendeinem Text belegt?

#edit1:
weil ist klar, wenn noch nie die methode setText() aufgerufen wurde, sind die internen text-strings alle null
 
hast du zwischendurch die JTextFields mit irgendeinem Text belegt?
Nein, die werden ja durch das DragnDrop gefüllt...
Du meinst ich sollte dann beim "loslassen" quasi setText() des Textfeldes aufrufen?
Kann ich ja mal probieren...
 
wenn du etwas vorhandenes ausgeben willst,
dann musst du doch z.B. ein vorhandenes Array augaben,
dessen Textfelder auch in der GUI drin sind,

du scheinst ja (nicht persönlich gemeint) von nix ne Ahnung zu haben,
da ist das alles viel zu schwer für dich,

nur noch ein Tipp:
bei
droppedBuchstabe = new JTextField[6];
for (JTextField dB:droppedBuchstabe)
{
dB = new JTextField();
}

bleibt das Array leer, nur die lokale Variable db wird mit einem JTextField initialsiert,

um das Array zu füllen verwende die for-i-Schleife,
so wie ich im anderen Topic geschrieben habe
 
wie gesagt (siehe mein Post kurz zuvor): dein Array droppedBuchstabe ist wahrscheinlich leer
 
vll tust du den jtextfield-array zwischendurch nochmal neu initialisieren...
aber ansonsten ist das eigentlich der normale workaround...
jtextfeld anlegen -> text setzen -> text abrufen

aber wie gesagt, ich hab noch nie mit drag'n'drop gearbeitet...

#edit1:
nimm dir am besten den rat von SlaterB zu herzen und mach es mit einer for-i-schleife

#edit2: AN ALLE 🙂
dann ist also die for-each-schleife nur lesend, die for-i-schleife aber auch schreibend, oder wie ist das?
 
Code:
for(int i=0; i<droppedBuchstabe.length; i++) 
{ 
    JTextField dB = droppedBuchstabe[i]
    dB = new JTextField(); 
}
wäre genauso 'falsch', das ist ja nun kein großes Geheimnis
 
Code:
for(int i=0; i<droppedBuchstabe.length; i++) 
{ 
    droppedBuchstabe[i] = new JTextField();
    droppedBuchstabe[i].setText( "test" );
}

...dann machen wir es doch gleich so 😉
 
alles ist ganz einfach, du machst es nur falsch,
poste deinen ganzen Code (möglichst kurz)
 
ok.
das untere panel mit den leeren Textfelder, in die die buchstaben gezogen werden:

Code:
...
 for (JTextField dB:droppedBuchstabe)
        {
            dB = new JTextField();
}
            jPanelWortUnten.add(dB);
...

dann gibt es einen button, bei klick auf den soll überprüft werden, was in den Textfeldern steht.
 
dass
dB = new JTextField();
schlecht ist steht ja wohl schon deutlich genug hier,
warum hast du das immer noch?..
 
du sollst es nicht wegmachen, sondern eine for-Schleife benutzen..

aber ich verabschiede mich nun wegen Hoffnungslosigkeit,
wenn dir die einfachsten Grundlagen fehlen und dazu noch das die Fähligkeien Fragen zu stellen/ Antworten zu versthen,
dann wirst du bei solch hohen Programmen ständig auf Probleme stoßen, die du alleine nicht lösen kannst
 
ja, das ist auch falsch, auf die Frage von mika hin,

wie es richtig geht habe ich vorher gesagt: siehe anderes Topic,
und mika hat dahinter dann auch eine richtige Variante geschrieben..
 
au man sorry, die habe ich gar nicht gelesen... das wurde glatt überspurngen...
aber ich weiss jetzt was Du meinst, danke für die Geduld, werde weiter dran basteln, das klappt schon, morgen, übermorgen...
 
so, jetzt klappt es schon...
bin ja doch nicht so doof anscheinend... :lol:
Nicht für ungut SlaterB, hast mich ja auf die richtige Spur gebracht, danke auf jeden Fall!
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben