Arraylist Conteúdo para Jlabel
-
20-09-2019 - |
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!
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