Random-Objekt und Swing

Ying Yang

Mitglied
Ich habe folgendes Problem: Sobald ich den String "newCode" jeglichem Swing-Objekt zuteilen moechte, wird nur der letzte Buchstabe/Nummer anstatt der ganze String ausgegeben. In dem Ausgabebeispiel waere es dann H,D,Z... usw. Siehe Screenshot.

Methode:

Java:
private void generateKey()
    {

        for (int i = 0; i < 5; i++)
        {
            r = new Random();
            int randInt = r.nextInt(code.length-1);
            newCode = code[randInt];
            System.out.print(newCode);
            jTextPane1.setText(newCode);
            jTextField1.setText(newCode);
        }
            System.out.println("");

           // Ausgabe:
           /*
             G8W4H
             8FL8D
             2VEVZ
             NJCHX
             O161Y
             0JRLZ
           */

    }
 

Anhänge

  • generatekeyprob.png
    generatekeyprob.png
    32,7 KB · Aufrufe: 35
Was ist denn code?
Krakau Du bitte alles zeigen?

Ich denke mal, dass die variable code evtl falsch deklariert ist
 
Alles andere wurde im NetBeans GUI-Builder erstellt, das ist die einzigste Methode, insklusive die folgenden Variablen:

Java:
private String[] code = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z",
                             "0","1","2","3","4","5","6","7","8","9"};
    private Random r;
    private String newCode;
 
Zuletzt bearbeitet:
du hast also ein Array mit Buchstaben
wenn du jetzt eine Zelle in deinem Array ansprichst, erhälst du den Inhalt daraus - also genau einen Buchstaben.

Dein Code macht, was er soll - vielleicht nicht, was du willst, aber definitiv, was er soll 🙂


Java:
//in der Methode, in der du generateKey aufrufst, machst du das:
public void methodeZumAufrufenVonGenerateKey{
    String neuerCode = generateKey();
    jTextPane1.setText(neuerCode );
  jTextField1.setText(neuerCode );
}

private String generateKey()
    {
        String neuerCode = ""; // newCode, wird dann zurück geliefert
        for (int i = 0; i < 5; i++)
        {
            Random random = new Random();
            int randInt = random.nextInt(code.length-1);
            neuerCode += code[randInt];
           
         
        }
    //        jTextPane1.setText(neuerCode ); //das würde ich nicht machen! Lieber beim Aufrufer der Methode
    //        jTextField1.setText(neuerCode ); //das würde ich nicht machen! Lieber beim Aufrufer der Methode
            System.out.println(neuerCode );
 return neuerCode;
 
    }
 

Zurück
Oben