Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [JAVA] Ascoltare un evento

    Ciao a tutti,
    ho un problema vorrei catturare un evento dentro un altro evento
    cioe dalla pressione di un JMenuItem catturare l'evento e aprire una JDialog e fin qui tutto bene ora nella JDialog ho un JButton e non riesco a catturare l'evento del JButton e non ho mi restituisce nessun errore sia in compilazione che a runtime ora vi posto il codice.

    codice:
    class SuperClass.....{
    
               public void JMenuExample() {
                   Modifica.add(Aggiungi);
                   Modifica.add(Elimina);
                   barra.add(Modifica);
                   Aggiungi.addActionListener(new AscoltaAggiungi());
                   setJMenuBar(barra);
               }
      
         class AscoltaAggiungi  implements ActionListener{
               
         public void actionPerformed(ActionEvent e){
             System.out.println("Ciaooo");//Questo lo stampa
             JDialog dialog = new JDialog(frame, "Inserire dati nella tabella", true); 
               JTextField nome_film = new JTextField(20);
               JTextField regista = new JTextField(20);
               JButton Salva = new JButton("Salva");
               JLabel Film = new JLabel("FILM:");
               JLabel Regista = new JLabel("REGISTA:");
               dialog.add(Film);
               dialog.add(nome_film);
               dialog.add(Regista);
               dialog.add(regista);
               dialog.add(Salva);
               dialog.setLayout(new FlowLayout(FlowLayout.LEFT));
               dialog.pack();
               dialog.setVisible(true);
               Salva.addActionListener(new AscoltaSalva());
         }
         
     }
         
      class AscoltaSalva implements ActionListener {
      public void actionPerformed(ActionEvent e){
      System.out.println("Prova");//Qui non mi restituisce l'output     
       }
      }
    }
    Forse sbaglio il metodo di implementazione dei vari componenti
    help please ciao

  2. #2
    Prova a mettere la classe AscoltaSalva dentro alla classe AscoltaAggiungi dopo il metodo actionPerformed...
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  3. #3
    ciao sono uno studente di ing. inf.
    ho visto il codice che hai inserito e ho rifatto il tuo esercizio:
    Devi prendere il metodo getContentPane() dall'ogetto dialog, che ti
    da il pannello su cui dopo puoi fare la add(Component c)!
    di seguito ti invio una versione funzionante del software
    distinti saluti ;-)
    by Armentaker



    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class SuperClass extends JFrame {
    BorderLayout borderLayout1 = new BorderLayout();
    JButton jButton1 = new JButton();
    JPanel Aggiungi;
    public SuperClass() {
    try {
    jbInit();
    }
    catch (Exception ex) {
    ex.printStackTrace();
    }
    }

    void jbInit() throws Exception {
    Aggiungi=new JPanel();
    jButton1.setText("jButton1");
    this.getContentPane().add(Aggiungi);
    Aggiungi.add(jButton1, null);
    jButton1.addActionListener(new AscoltaAggiungi());

    }

    class AscoltaAggiungi implements ActionListener {

    public void actionPerformed(ActionEvent e) {
    System.out.println("Ciaooo"); //Questo lo stampa

    JDialog dialog = new JDialog();
    JTextField nome_film = new JTextField(20);
    JTextField regista = new JTextField(20);
    JButton Salva = new JButton("Salva");
    JLabel Film = new JLabel("FILM:");
    JLabel Regista = new JLabel("REGISTA:");
    dialog.getContentPane().add(Film);
    dialog.getContentPane().add(nome_film);
    dialog.getContentPane().add(Regista);
    dialog.getContentPane().add(regista);
    dialog.getContentPane().add(Salva);
    dialog.getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT));
    dialog.pack();
    dialog.show();
    Salva.addActionListener(new AscoltaSalva());
    }

    class AscoltaSalva
    implements ActionListener {
    public void actionPerformed(ActionEvent e) {
    System.out.println("Prova"); //Qui non mi restituisce l'output
    }
    }
    }
    public static void main(String a[]){
    SuperClass r=new SuperClass();
    r.show();
    }
    }

  4. #4
    Beh se vogliamo essere proprio precisi il metodo show è meglio sostituirlo con il metodo setVisible(true)!
    Comunque il codice che ha scritto dovrebbe essere abbastanza corretto (dico dovrebbe perchè manca tutto il resto)...se prova ad includere la classe del secondo ascoltatore in quella del primo come ho suggerito sopra magari gli funziona solo spostando una parentesi graffa...per così poco vale la pena di tentare!

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.