Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    119

    [azioni su pulsanti e componenti grafici]

    Sto cominciando a prendere confidenza con l'inserimento di pulsanti e altri componenti grafici dentro le applicazioni.


    Ho imparato (fin ora) che per poter associare ad un certo pulsante button una certa azione

    Devo creare una classe( interna o esterna alla classe dell'applicazione ) che implementi l'interfaccia ActionListener e relativo metodo;

    dopo di che crearne un esemplare
    e diciamo aggiungere tale esemplare come parametro ad un certo metodo add del pulsante button

    (se ho scritto cretinate non vogliatemente)

    Ora quello che non riesco a capire e' :

    Ogni volta che all' interno di una mia applicazione (grafica) voglio inserire non so 10 pulsanti e 4 campi per l'inserimento di testo

    Devo creare 14 classi che implementino l'interfaccia ActionListener e relativo metodo?

    Se la risposta dovesse essere positiva : le classi da creare conviene crearle interne o esterne all' applicazione?

    Grazie


    ps : cercate di perdonarmi ogni singola fesseria scritta! ( se ve ne sono)

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da 00FUMI
    Ho imparato (fin ora) che per poter associare ad un certo pulsante button una certa azione

    Devo creare una classe( interna o esterna alla classe dell'applicazione ) che implementi l'interfaccia ActionListener e relativo metodo;
    Non necessariamente: non è necessario creare una classe apposita. Le interfacce (interface) servono proprio a questo: esse possono essere implementate da qualunque classe. Quindi, anche dalla classe che rappresenta l'applicazione stessa. Vedi esempio più avanti.

    dopo di che crearne un esemplare
    e diciamo aggiungere tale esemplare come parametro ad un certo metodo add del pulsante button
    Corretto.

    Ora quello che non riesco a capire e' :

    Ogni volta che all' interno di una mia applicazione (grafica) voglio inserire non so 10 pulsanti e 4 campi per l'inserimento di testo

    Devo creare 14 classi che implementino l'interfaccia ActionListener e relativo metodo?
    Ma assolutamente no. Vedi sempre l'esempio sotto.

    Se la risposta dovesse essere positiva : le classi da creare conviene crearle interne o esterne all' applicazione?
    Non è positiva, ma la risposta può essere data comunque: non ha importanza. Possono essere sia interne, che esterne.


    Vediamo l'esempio:

    codice:
    // Questa classe rappresenta un pannello, con 2 pulsanti
    public class Pannello extends JPanel implements ActionListener {
       private JButton jb1;
       private JButton jb2;
    
       public Pannello() {
          setLayout( new GridLayout(1, 2) );
    
          jb1 = new JButton("Pulsante 1");
          jb1.addActionListener( this );
    
          jb2 = new JButton("Pulsante 2");
          jb2.addActionListener( this );
    
          add( jb1 );
          add( jb2 );
       }
    
       // Implementare ActionListener significa obbligatoriamente implementare questo metodo
       public void actionPerformed(ActionEvent ae) {
          if ( ae.getSource().equals( jb1 ) ) {
             // Hai premuto il pulsante 1
          } else {
             // Hai premuto il pulsante 2
          }
       }
    }
    Come vedi, esiste solo una classe che fa da pannello, contiene i due pulsanti ed è anche il gestore dell'evento clic su di essi.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    119
    Credimi non ho mai ricevuto una risposta piu chiara in nessun altro forum o per altre richieste.

    Davvero davvero molto chiaro .....GRAZIE.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Di nulla.

    Tieni presente che l'argomento qui è ridotto all'osso... esistono vari modi di operare, ovviamente ciascuno in base alla casistica che si sta affrontando.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    chiarissimo.. un'ulteriore domanda:

    io sto sviluppando una rubrica telefonica.. ho creato la finestra (che è una classe) di menù e un'altra finestra (che è un altra classe) per l'inserimento di un nuovo contatto.
    Come faccio per dire alla classe Menu che premendo il bottone "Inserisci" mi deve aprire quell'altra classe (e quindi quell'altra finestra)? E poi vorrei che avvenisse nello stesso Frame senza aprirmi una finestra separata...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.