Domanda

Ho appena iniziato a usare Jmenu.Per allentarsi, ho deciso di utilizzare NetBeans Form Design Tool, che ha funzionato bene per tutti i componenti in questa app.

Facendo clic su una voce di menu di alto livello funziona alla grande.

Per una voce di menu, ho creato un sottomenu con 3 elementi, ciascuno con un listener di clic del mouse.

Ecco il codice pertinente per uno dei 3 sottomenu:

  private JMenuItem mnuEditDicAddAllScratch;

  mnuEditDicAddAllScratch = new JMenuItem();


  private void mnuEditDicAddAllScratchMouseClicked(MouseEvent evt) {                                                     

    new WordsToAdd();  // never happened
  } 

    mnuEditDicAddAllScratch.addMouseListener(new MouseAdapter() {

      public void mouseClicked(MouseEvent evt) {

        mnuEditDicAddAllScratchMouseClicked(evt);
      }
    });

    mnuEdit.add(mnuEditDicAddAllScratch);
.

Non ha funzionato.Click ignorato.

Quindi ho provato un ascoltatore di azione:

  private void mnuEditDicAddAllScratchActionPerformed(ActionEvent evt) {

    new WordsToAdd();   // WORKED
  }  

mnuEditDicAddAllScratch.addActionListener(new java.awt.event.ActionListener() {

  public void actionPerformed(java.awt.event.ActionEvent evt) {

    mnuEditDicAddAllScratchActionPerformed(evt);
  }
});
.

e ha funzionato.

Quindi una domanda è: "Perché il mouse ha scelto il mouse ha ascoltato l'ascolto?"

Anche, "Se dovessi stare lontano da mouse click eventi, perché o in quali circostanze?"

(e, attacco pre-emplive: dovrei stare lontano dal designer di NetBeans.)

È stato utile?

Soluzione

Dovresti usare lo strumento migliore per il lavoro a portata di mano.Ciò significa che per JmenoTems e per JButtons, dovresti usare ActionListener, non mouselistener (nonostante le eccezioni (eccezioni).Ad esempio, se si disattiva un pulsante, si desidera che il pulsante non funzioni, giusto?Funziona con ActionListener ma non con mouslisteners.

Per le migliori informazioni su questo tipo di materiale, vai alla fonte: swingTutorial .

Altri suggerimenti

mnuEditDicAddAllScratch.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent actionEvent) {

         mnuEditDicAddAllScratchActionPerformed();
    }
});
.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top