2016-11-15 2 views
0

Так что у меня это:Отправка двух строк в JOption списка меню

while(results.next())    
      {    
       // Put into interactive list  
       a.add(hospital); 
       hospital = results.getString("hospitalName"); 
       { 
        // Loops each hospital via popup, needs to be added to a selection menu 
        //JOptionPane.showMessageDialog(null, hospital, "Hospital List", JOptionPane.INFORMATION_MESSAGE); 
        System.out.println(hospital);    
       } 
      } 

       { 
       // Displays list of hospitals 
        JOptionPane.showInputDialog(null, "Please choose a hospital", "Determined Hospitals", 
          JOptionPane.QUESTION_MESSAGE, null, new Object[] 
          {hospital}, a); 
       } 

Он печатает обе больницы массива на консоль, так что я знаю, что это находит их. Однако, когда я пытаюсь показать их пользователю в списке через JOption, он отображает только последнюю (вторую) больницу, а не первую.

Я пропустил первую строку?

+0

JOptionPane часть не в петле, другая часть. Вот почему он печатает оба, но только показывает вариант для последнего. – nhouser9

+0

«int i; i = 3; i = 5; System.out.println (i); 'print 3 5 или всего 5? – immibis

+0

Ну, я положил его в цикле, он генерирует параметр списка для каждого, но не оба вместе. –

ответ

0

Фиксированный это с:

List<String> a = new ArrayList<String>(); 
      String hospital = null; 

      while (results.next()) 
      { 
       // Put into interactive list  
       hospital = results.getString("hospitalName"); 
       { 
        // Loops each hospital via popup, needs to be added to a selection menu 
        //JOptionPane.showMessageDialog(null, hospital, "Hospital List", JOptionPane.INFORMATION_MESSAGE); 
        System.out.println(hospital); 
       a.add(hospital); 
       } 
      } 

      { 
       // Add the hospital to the array of hospitals found 
       Object[] options = a.toArray(); 

       // Give operator the choice of hospital suited for the patient    
       JOptionPane.showInputDialog(null, "Please choose a hospital", "Determined Hospitals", 
         JOptionPane.QUESTION_MESSAGE, null, options, options[0]); 
0

Причина, почему вы пропускаете первый hospital из-за этой линии здесь:

JOptionPane.showInputDialog(null, "Please choose a hospital", "Determined Hospitals", 
         JOptionPane.QUESTION_MESSAGE, null, new Object[] 
         {hospital}, a); 

Здесь вы добавляете в новом Object[], что только имеет возможность hospital который получает установлен на второй. То, что вы ищете, чтобы сделать:

JOptionPane.showInputDialog(null, "Please choose a hospital", "Determined Hospitals", 
         JOptionPane.QUESTION_MESSAGE, null, a, a[0]); 

Это позволит установить параметры для всех a и установить начальное значение первого hospital в a.

+0

Хорошо, хорошо после реализации этого я получил ошибку, но я думаю, что это из-за того, как я создал ArrayList? ArrayList a = новый ArrayList (); –

+0

Это потому, что вам нужно использовать 'String []' не 'ArrayList '. Замените 'a' на' a.toArray(); 'и вам не будет проблем с запуском. – user123

Смежные вопросы