如何将ArrayList字符串放入JLabels

问题描述:

我无法弄清楚如何将我的ArrayList的变量用于我的JLabel。我想要做的是将每个标签的特定字符串设置在我的数组中。由我的Arraylist创建的句子的顺序是det,adv,det,adv,verb,adj,名词。基本上,我的程序应该按照这个顺序创建随机句子,当点击JButton时,程序需要随机化另一个句子。如何将ArrayList字符串放入JLabels

这里就是我有

label.setText("word1"); 
    window.getContentPane().add(label); 
label2.setText("word2");  
window.getContentPane().add(label2); 
JLabel label3 = new JLabel(); 
label3.setText("word3"); 
window.getContentPane().add(label3); 
JLabel label4 = new JLabel(); 
label4.setText("word4"); 
window.getContentPane().add(label4); 
JLabel label5 = new JLabel(); 
label5.setText("word5"); 
window.getContentPane().add(label5); 
JLabel label6 = new JLabel(); 
label6.setText("word6"); 
window.getContentPane().add(label6); 
JLabel label7 = new JLabel(); 
label7.setText("word7"); 
window.getContentPane().add(label7); 
JLabel label8 = new JLabel(); 
label8.setText("word8"); 
window.getContentPane().add(label8); 

JButton r = new JButton(); 
r.setText("Random Sentence"); 
window.getContentPane().add(r); 

ArrayList<String> adj, adv , det, noun, verb; 
    adj = new ArrayList<String>(); 
    adv = new ArrayList<String>(); 
    det = new ArrayList<String>(); 
    noun = new ArrayList<String>(); 
    verb = new ArrayList<String>(); 
    adj.add("soft"); 
    adj.add("friendly"); 
    adj.add("fierce"); 
    adj.add("angry"); 
    adj.add("hip"); 
    adj.add("small"); 
    adj.add("large"); 
    adj.add("prickly"); 
    adj.add("mean"); 
    adj.add("nice"); 
    adj.add("quirky"); 
    adj.add("colorless"); 
    adj.add("green"); 
    adj.add("red"); 
    adj.add("blue"); 
    adj.add("humorless"); 
    adj.add("funny"); 
    adj.add("sad"); 
    adj.add("melancholy"); 
    adj.add("hilarious"); 
    adj.add("loud"); 
    adj.add("proud");   
    adv.add("quickly"); 
    adv.add("sluggishly"); 
    adv.add("sheepishly"); 
    adv.add("aggresively"); 
    adv.add("blandly"); 
    adv.add("anxiously"); 
    adv.add("badly"); 
    adv.add("boldly"); 
    adv.add("bravely"); 
    adv.add("cowardly"); 
    adv.add("courageously"); 
    adv.add("eagerly"); 
    adv.add("foolishly"); 
    adv.add("gererously"); 
    adv.add("innocently"); 
    det.add("the"); 
    det.add("a"); 
    det.add("one"); 
    det.add("that"); 
    det.add("some"); 
    det.add("every"); 
    det.add("this"); 
    det.add("my"); 
    det.add("your"); 
    det.add("his"); 
    det.add("her"); 
    det.add("mom's"); 
    det.add("dad's"); 
    det.add("granny's"); 
    det.add("grandpa's"); 
    det.add("auntie's"); 
    det.add("uncle's"); 
    noun.add("cat"); 
    noun.add("dog"); 
    noun.add("hamster"); 
    noun.add("lizard"); 
    noun.add("snake"); 
    noun.add("rabbit"); 
    noun.add("gerbil"); 
    noun.add("mouse"); 
    noun.add("parakeet"); 
    noun.add("goldfish"); 
    noun.add("porcupine"); 
    noun.add("worm"); 
    noun.add("slug"); 
    noun.add("wasp"); 
    noun.add("eagle"); 
    noun.add("sheep"); 
    noun.add("cow"); 
    noun.add("pig"); 
    noun.add("antelope"); 
    noun.add("tiger"); 
    noun.add("lion"); 
    noun.add("cheetah"); 
    noun.add("wolf"); 
    noun.add("fox"); 
    noun.add("hound"); 
    noun.add("ferret"); 
    verb.add("chased"); 
    verb.add("hit"); 
    verb.add("ate"); 
    verb.add("bit"); 
    verb.add("cuddled"); 
    verb.add("brought"); 
    verb.add("bought"); 
    verb.add("sold"); 
    verb.add("paid"); 
    verb.add("taught"); 
    verb.add("snuggled"); 
    verb.add("smacked"); 
    verb.add("irritated"); 
    verb.add("embarrassed"); 
    verb.add("kissed"); 
    verb.add("hugged"); 
    verb.add("decieved"); 
    verb.add("delayed"); 
    verb.add("intimidated"); 
    verb.add("dropped"); 
    verb.add("kicked"); 
    verb.add("froze"); 
    verb.add("forgave"); 
    verb.add("mocked"); 
    for (String a : adj) 
    for (String b : adv) 
    for (String c : det) 
    for (String d : noun) 
    for (String e : verb){ 
    System.out.println(c +" "+ b +" "+ d +" "+ b +" "+ e +" "+ a +" "+ d); 


    java.util.Collections.shuffle(adj); 
    java.util.Collections.shuffle(det); 
    java.util.Collections.shuffle(adv); 
    java.util.Collections.shuffle(noun); 
    java.util.Collections.shuffle(verb); 
    LinkedList<String> shu = new java.util.LinkedList<String>();  
    java.util.Iterator<String> it; 
    it = shu.iterator(); 
    if (it.hasNext()) { System.out.println(it.next()); } 

    } 

    } 
} 

int randomNumber = ...; 
label.setText(adj.get(randomNumber)); 
label1.setText(adv.get(randomNumber)); 
..etc 

如果你已经把你的标签和的ArrayList到数组,你可以这样做:你说的应该

int randomNumber = ...; 
for(int i = 0; i < labelArray.length; i++){ 
    labelList[i].setText(wordList[i].get(randomNumber)); 
} 
+0

因此使用这种方法我在我的JLabel之前重新组织了我的adj变量的位置? – Cactus

+0

不,我建议你把你的形容词,动词等放入一个数组中,因为它会让你的生活变得更轻松。我建议的第一个解决方案应该仍然有效,它只是更多的代码。 –