2017-10-30 16 views
0

私は最近、Javaでスイングアプリを開発しています。問題は、JOptionPane.showInputDialogにデータを入力する必要があるたびに、これは2回呼び出され、基本テストで何をしても常に2倍表示されます。最初のウィンドウではデータを入力し、それをクリックすると別のウィンドウも同時に表示され、最初のウィンドウは無視されます。私のアプリが正常に動作していることは言及することが重要ですが、選択肢3でスイッチセンテンスを実行する必要があるときは、問題が発生したときです。JOptionPane.showInputDialogが2回表示されます、なぜですか?

ここに私のコード。

private void jcTemplatesItemStateChanged(java.awt.event.ItemEvent evt) {            

    int seleccionar = jcTemplates.getSelectedIndex(); 

    switch (seleccionar) { 

     case 1: 

      templateField2.setText(jcTipoCliente.getSelectedItem() + " " + txtCliente.getText() + " comenta que no reconoce POD. Favor de realizar rescate del envio y entregarlo en la direccion correcta. Se le informa sobre proceso y tiempo requerido de 24-48 hrs. Queda Ok. Gracias. "); 
      break; 

     case 2: 
      templateField2.setText(jcTipoCliente.getSelectedItem() + " " + txtCliente.getText() + " llama para requerir informacion sobre el status del envio, ya que menciona que ha tomado demasiado tiempo y requiere confirmar fecha de entrega. Favor de actualizar a la brevedad. Se le pide tiempo y queda Ok. Gracias. "); 
      break; 

     case 3: 

      String dato = JOptionPane.showInputDialog(null, "NCI", "Verificar", JOptionPane.OK_CANCEL_OPTION); 
      if (JOptionPane.YES_OPTION == 0) 
       templateField2.setText(dato); 
      else if (JOptionPane.NO_OPTION == 1) 
       dispose(); 
     break; 

    } 

答えて

1

は、2つのイベントを発生させる可能性があります。 1つはitemDeselectedであり、1つはitemSelectedです。選択したイベントのオプションペインを表示するだけです。

詳細については、How to Write an ItemListenerのSwingチュートリアルのセクションを読んで、開始するための実例を読んでください。

関連する問題