Вывод массива в поле

Я изучаю Java и хотел бы знать, как можно распечатать массив во всплывающем окне с помощью JOptionPane?

Я не имею в виду печать их в отдельных полях для каждого элемента массива, а печать всего содержимого массива в одном поле с помощью JOptionPane.showMessageDialog после ввода значений по одному с помощью JOptionPane.showInputDialog.

Пример:

Напишите программу, которая вводит 5 целых чисел (или строк) и сохраняет их в массиве. Затем он печатает массив во всплывающем окне в конце со всеми значениями переменных.

В принципе, я бы начал так:

int numberBox[] = new int[5];

for (int i = i; i<numberBox.lenght; i++)
{
   String text = JOptionPane.showMessageDialog (null, "Give me numbers:");
   numberBox[i] = Integer.parseInt (text);
}

На самом деле, код, который я написал, я уверен, что он содержит ошибки. Опять же, именно поэтому мне нужна ваша помощь.


person GeekyMiss    schedule 08.11.2011    source источник


Ответы (3)


После того, как вы собрали входные данные и построили массив ints или Strings, вот как вы можете распечатать их в диалоговом окне:

// Get the input; this could be an array of ints or strings, either will work
int numberBox[] = gatherInput();

// Convert the array into a String form: "[1, 2, 3, 4, 5]"
final String numbers = Arrays.toString( numberBox );

// And show a simple dialog box with the numbers
JOptionPane.showMessageDialog( null, numbers );
person Nate W.    schedule 08.11.2011
comment
Мне жаль, что я пытался сделать это так, как вы объяснили, но я, кажется, не понимаю. Не могли бы вы быть немного яснее, пожалуйста? Например, не могли бы вы написать, как вы собираете входные данные вместо вызова collectInpur(), потому что у меня возникают трудности с этим. - person GeekyMiss; 08.11.2011
comment
@GeekyMiss: ты ведь знаешь, как читать туториалы, ты ведь не такой беспомощный, не так ли? - person Hovercraft Full Of Eels; 08.11.2011

Вам нужно построить строку, содержащую введенные числа, разделенные разделителем. Чтобы построить строку, взгляните на StringBuilder. Этот класс является изменяемым, это означает, что новый объект не будет создаваться каждый раз, когда вы что-то добавляете в строку. Для сравнения, String неизменяем и неэффективен, если вы собираетесь объединить несколько элементов.

Также можно использовать класс Arrays Java, но я бы рекомендовал также взглянуть на StringBuilder, чтобы расширить свои знания.

person andrershov    schedule 08.11.2011
comment
Большое спасибо :-). Я попытаюсь узнать больше об этом конструкторе строк, потому что я понятия не имею об этом :-( - person GeekyMiss; 08.11.2011

вы можете попробовать что-то вроде этого

int[] array = {1,2,3,4,5};
String end = "";

for(int i = 0; i < array.length; i++){
    end += array[i] +  " ";
}

JOptionPane.showMessageDialog(new JFrame(), end);
person PTBG    schedule 08.11.2011
comment
Вы не должны делать конкатенацию String таким образом, вместо этого вы должны использовать StringBuilder. Кроме того, Arrays#toString(...) преобразует для вас массив чего-либо в форму String, поэтому вам не нужно вручную писать такие циклы. - person Nate W.; 08.11.2011
comment
Большое спасибо :-)... однако это кажется немного более продвинутым, чем мой текущий уровень в java... ;-( так что я не понимаю, как это сделать правильно :-( - person GeekyMiss; 08.11.2011