Zufallsgenerator

Status
Nicht offen für weitere Antworten.

Xandro

Bekanntes Mitglied
Hallo,

ich bin gerade dabei einen Zufallsgenerator für String-Typen zu konstruieren.
Nur leider steh ich vor einem Problem:

Es sollen Strings über ein Textfeld eingelesen und dann in einer JList aufgereiht werden.
Mein erstes Problem ist, wie bekomme ich die ganzen String per Array in die JList,
da die Strings später ja per Zufall durcheinandergewürfelt in der JList wieder auftauchen sollen.

Ich hab gelesen, dass ListModel nur statisch ist, also man damit nur hinzufügen und löschen kann.
Also wollte ich eine ArrayList benutzen, damit ich die eingelesenen String später per boolean-Schleife
durcheinanderwürfeln kann.

Mein Problem ist jetzt nur, wie ich die einzelnen Arrays in die JList einfüge,
bei dem ListModel war es mir wenigstens verständlich ...

Gruss,
Xandro
 
B

bygones

Gast
ich weiß nicht ob ich dein problem richtig verstanden habe.

Du bekommst aus einem Textfield einen Array von Strings. Die werden irgendwie per zufall durcheinandergewürfelt und dann in einer List angezeigt ?!

Dann mach doch einfach:
Code:
String[] meinArray.....
JList list = new JList(meinArray);
Wenn die Reihenfolge im Array sich später ändert kannst du den array einfach in die List wieder setzen:
Code:
list.setListData(meinArray);
?
 

Xandro

Bekanntes Mitglied
wieder einmal zum thema ...

hier erst einmal ein link zu meinem programm: http://www.xandro.de/files/generator.jar

nun zu meinem weiteren problem:

ich habe das mit dem einfügen, mischen und erneut ausgeben soweit realisieren können.

nun möchte ich so verfahren, dass ich rechts neben der jlist noch eine textarea einbauen will.
in dieser text sollen die einzelnen namen dann (schon gemixt) ausgegeben werden.
meine frage ist nun, wie splitte ich die arraylist, um jeden namen dann in eine extra zeile auszugeben?

also so ungefähr:

Eintrag zugefügt in JList:

auf Würfeln geklickt:

TextArea:

Hans
Dietmar
Roland
Chris

achso ja .. bissel code

Code:
DefaultListModel dlm = new DefaultListModel();
JList list = new JList(dlm);
ArrayList arraylist = new ArrayList();

void button_eintrag_actionPerformed(ActionEvent e) {
    String eingabe = txt_eintrag.getText();
    arraylist.add(eingabe);
    txt_eintrag.setText("");
    dlm.addElement(eingabe);
  }

  void button_leeren_actionPerformed(ActionEvent e) {
    arraylist.clear();
    dlm.removeAllElements();
  }

  void button_random_actionPerformed(ActionEvent e) {
    if (arraylist.isEmpty() || arraylist.contains("")) {
      JOptionPane.showMessageDialog(null, "Nichts in der List enthalten!",
                                    "Fehler", JOptionPane.INFORMATION_MESSAGE);
    }
    dlm.clear();
    mischen();
  }

  public ArrayList mischen() {
    ArrayList zurueck = new ArrayList();
    boolean test[] = new boolean[arraylist.size()];
    while (hasElements(test)) {
      int pos = (int) (Math.random() * arraylist.size());
      if (test[pos] == false) {
        zurueck.add(arraylist.get(pos));
        test[pos] = true;
      }
      dlm.addElement(arraylist);
    }
    return zurueck;
  }

  public boolean hasElements(boolean[] test) {
    boolean zurueck = false;
    for (int i = 0; i < test.length; i++) {

      if (test[i] == false) {
        zurueck = true;
        break;
      }
    }
    return zurueck;
  }
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben