Pergunta

Se eu tiver um Arraylist do tipo inteiro, contendo números como 1,3,4,9,10 etc ... como posso exibi -los em um jlabel, não na soma, mas todos os números em uma sequência.

Então o Jlabel exibiria, neste caso: 134910

Obrigado desde já por qualquer ajuda.

EDIT: Obrigado a todos, claro que eu deveria ter pensado em Apênder. De qualquer forma, obrigado a todos!

Foi útil?

Solução

Assim:

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

Outras dicas

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

Exemplo:

    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 para o resgate (novamente) com Stringutils.join () (em sabores diferentes).

Você começa com uma string vazia (ou StringBuilder). Em seguida, você itera os itens da lista, adicionando cada item à string. Então você define a string como o texto do Jlabel.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top