2017-10-30 9 views
0

Ich entwickle gerade eine Swing-App in Java und das Problem ist, dass jedes Mal, wenn ich Daten in JOptionPane.showInputDialog eingeben muss, dies zweimal aufgerufen wird und egal was ich in einem Basistest mache, wird immer doppelt angezeigt. Im ersten Fenster gebe ich Daten ein und wenn ich geklickt habe, wird ein anderes Fenster gleichzeitig angezeigt, wobei das erste ignoriert wird. Es ist wichtig zu erwähnen, dass meine App richtig läuft, aber wenn ich den Umschalt-Satz in der Auswahl Nr. 3 ausführen muss, ist es, wenn das Problem auftritt.JOptionPane.showInputDialog wird zweimal angezeigt, warum?

hier mein Code.

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; 

    } 

Antwort

1

Ein ItemListener können zwei Ereignisse ausgelöst. Eine für itemDeselected und eine für itemSelected. Sie möchten nur das Optionsfenster für das ausgewählte Ereignis anzeigen.

Lesen Sie den Abschnitt aus dem Swing-Tutorial auf How to Write an ItemListener für weitere Informationen und ein Arbeitsbeispiel, um loszulegen.