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

#java #arrays #swing #input #joptionpane

#java #массивы #swing #ввод #joptionpane

Вопрос:

Я изучаю 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);
}
  

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

Ответ №1:

После того, как вы собрали входные данные и создали массив 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 );
  

Комментарии:

1. Извините, я пытался сделать это так, как вы объяснили, но, кажется, я не понимаю. Не могли бы вы выражаться немного яснее, пожалуйста? Например, не могли бы вы написать даже, как вы собираете входные данные вместо вызова gatherInpur (), потому что у меня возникают трудности с этим.

2. @GeekyMiss: вы, конечно, знаете, как читать руководства, вы же не настолько беспомощны, не так ли?

Ответ №2:

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

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

Комментарии:

1. Большое вам спасибо :-). Я постараюсь узнать больше об этом построителе строк, потому что я понятия не имею об этом:-(

Ответ №3:

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

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

Комментарии:

1. Вы не должны выполнять String конкатенацию подобным образом, вы должны использовать StringBuilder вместо этого. Кроме того, Arrays#toString(...) преобразует массив чего-либо в String форму для вас, поэтому вам не нужно вручную писать циклы, подобные этому.

2. Большое вам спасибо :-)… Однако это кажется немного более продвинутым, чем мой текущий уровень в Java … ;-( так что я вроде как не понимаю, как это сделать правильно 🙁