2009-10-07 12 views
1

Si j'ai une ArrayList de type Integer, contenant des nombres comme 1,3,4,9,10 etc ... Comment puis-je afficher ceux sur un JLabel, pas la somme, mais tous les nombres dans une séquence.ArrayList contenu à JLabel

Ainsi, le JLabel afficherait, dans ce cas: 134910

Nous vous remercions d'avance pour toute aide.

EDIT: Merci à tous, bien sûr j'aurais dû penser à ajouter. En tout cas, merci à tous!

Répondre

3

Comme ceci:

StringBuilder sb = new StringBuilder(); 
for (Integer i : list) { 
    sb.append(i == null ? "" : i.toString()); 
} 
lbl.setText(sb.toString()); 
+0

+1 pur. Quel est le problème avec 'sb.append (i)'? – OscarRyz

+0

Est-ce pour le null? – OscarRyz

+1

Oui, en vérifiant null, puisque ce sont des objets. J'ai pensé qu'une chaîne vide pourrait être préférable au texte "null". :) – jsight

0

Vous commencez avec une chaîne vide (ou StringBuilder). Ensuite, vous parcourez les éléments de la liste en ajoutant chaque élément à la chaîne. Ensuite, vous définissez la chaîne en tant que texte JLabel.

1
private static String fromListToString(List<Integer> input) { 
    StringBuilder sb = new StringBuilder(); 
    for (Integer num : input) { 
     sb.append(num); 
    } 
    return sb.toString(); 
} 

public static void main(String[] args) { 
    JFrame f = new JFrame(); 
    List<Integer> list = new ArrayList<Integer>(); 
    list.add(1); 
    list.add(3); 
    list.add(4); 
    list.add(9); 
    list.add(10); 
    f.getContentPane().add(new JLabel(fromListToString(list))); 
    f.pack(); 
    f.setLocationRelativeTo(null); 
    f.setVisible(true); 
} 
+0

Merci pour la réponse! –

1

Exemple:

List<Integer> list = Arrays.asList(1, 3, 5, 7); 

    StringBuilder joined = new StringBuilder(); 
    for (Integer number : list) { 
     joined.append(number); 
    } 
    new JLabel().setText(joined.toString()); 
+2

Ou encore mieux: 'ArrayList list = Arrays.asList (1, 3, 5, 7);' – IgKh

+0

Ou encore mieux: 'Liste list = Arrays.asList (1, 3, 5, 7);' –

+0

Merci , ça a vraiment l'air mieux de cette façon. – tangens

1

Apache Commons Lang à la rescousse (encore une fois) avec StringUtils.join() (en différentes saveurs).