2016-11-15 4 views
0

に2つの文字列を送信するので、私はこれを持っています。しかし、JOptionを使ってリストボックス内でユーザーに表示しようとすると、最新の(2番目の)病院だけが表示され、最初のものは表示されません。はJOptionリストメニュー

最初の文字列をスキップしていますか?ここで

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

はあなただけ秒1に設定されますオプションhospitalを持つ新しいObject[]に追加されています

+0

、他の部分はあります。それで、それは両方を印刷するが、最後のオプションだけを表示する理由である。 – nhouser9

+0

'int i;を実行します。 i = 3; i = 5; System.out.println(i); 'print 3 5、または単に5? – immibis

+0

まあ、私はループに入れて、それぞれのリストオプションを生成しますが、両方とも一緒ではありません。 –

答えて

0

でこれを修正:JOptionPaneの部分がループしていない

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, a, a[0]); 

これはaのすべてのオプションを設定し、aの最初のhospitalに初期値を設定します。

+0

これを実装するとエラーが発生しましたが、ArrayListを作成した方法のためだと思いますか? ArrayList a =新しいArrayList (); –

+0

これは、 'ArrayList 'ではなく、 'String []'を使う必要があるからです。 'a'を' a.toArray(); 'に置き換えてください。問題なく動作させることができます。 – user123

関連する問題