Содержимое ArrayList для JLabel - PullRequest
1 голос
/ 07 октября 2009

Если у меня есть ArrayList типа Integer, содержащий числа типа 1,3,4,9,10 и т. Д. Как я могу отобразить цифры на JLabel, не сумму, а все числа в последовательности. 1001 *

Таким образом, JLabel будет отображать, в этом случае: 134910

Заранее благодарю за любую помощь.

РЕДАКТИРОВАТЬ: Спасибо всем, конечно, я должен был подумать о добавлении. В любом случае, спасибо всем!

Ответы [ 5 ]

3 голосов
/ 07 октября 2009

Как это:

StringBuilder sb = new StringBuilder();
for (Integer i : list) {
    sb.append(i == null ? "" : i.toString());
}
lbl.setText(sb.toString());
1 голос
/ 07 октября 2009

Apache Commons Lang на помощь (снова) с помощью StringUtils.join () (в разных вариантах).

1 голос
/ 07 октября 2009

Пример:

    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() );
1 голос
/ 07 октября 2009
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 голосов
/ 07 октября 2009

Вы начинаете с пустой строки (или StringBuilder). Затем вы перебираете элементы списка, добавляя каждый элемент в строку. Затем вы устанавливаете строку как текст JLabel.

...