Domanda

Se ho un ArrayList di tipo Integer, contenente numeri come 1,3,4,9,10 ecc ... Come posso visualizzare quelli su un JLabel, non la somma, ma tutti i numeri in una sequenza.

Quindi la JLabel visualizzerebbe, in questo caso: 134910

Grazie in anticipo per qualsiasi aiuto.

EDIT: Grazie a tutti, naturalmente avrei dovuto pensato di accodamento. In ogni modo, grazie tutti!

È stato utile?

Soluzione

In questo modo:

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

Altri suggerimenti

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);
}

Esempio:

    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() );

Apache Commons Lang in soccorso (di nuovo) con StringUtils.join () (in diversi gusti).

Si inizia con una stringa vuota (o StringBuilder). Poi si scorre attraverso gli elementi della lista, aggiungendo ogni elemento alla stringa. Quindi si imposta la stringa come testo del JLabel.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top