Контент ArrayList в Jlabel
-
20-09-2019 - |
Вопрос
Если у меня есть ArrayList of Type Integer, содержащий числа, такие как 1,3,4,9,10 и т. Д. Как я могу отобразить те на Jlabel, не сумму, а все числа в последовательности.
Таким образом, Jlabel отобразит, в данном случае: 134910
Спасибо заранее за любую помощь.
РЕДАКТИРОВАТЬ: Спасибо всем, конечно, я должен был подумать о добавлении. В любом случае, спасибо всем!
Решение
Как это:
StringBuilder sb = new StringBuilder();
for (Integer i : list) {
sb.append(i == null ? "" : i.toString());
}
lbl.setText(sb.toString());
Другие советы
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);
}
Пример:
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 на помощь (снова) с Stringutils.join () (в разных ароматах).
Вы начинаете с пустой строки (или StringBuilder). Затем вы выполняете перечисление через элементы списка, добавляя каждый элемент в строку. Затем вы устанавливаете строку в качестве текста Jlabel.
Не связан с StackOverflow