Visualizzazione dei risultati da 1 a 10 su 14

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da linux_r Visualizza il messaggio
    L'actionListener non è implementato come inner class, avevo pensato di passare come parametro del costruttore dell' actionlistener la textfield ma sembra poco elegante . avete altri suggerimenti?
    Se l'ActionListener è in una classe esterna a quella dove c'è il campo di istanza per il JTextField, ci sono diverse possibilità per ottenere testo (o altro del JTextField) nel actionPerformed.

    1) Passare al ActionListener (da costruttore, tipicamente) il riferimento al JTextField. Questo non è sbagliato o "brutto". Dipende molto anche dal concetto dell'uso di tale JTextField.
    2) Passare al ActionListener (idem, costruttore) il riferimento alla classe che incapsula il JTextField e fare in modo da offrire un metodo pubblico che o ritorna direttamente il JTextField (meno bello) oppure il testo o altro dato necessario (più bello). Ma non esporre direttamente il campo!
    3) Passare al ActionListener un oggetto che implementa una interfaccia che permette di disaccoppiare il listener dal resto. La interfaccia potrebbe avere metodi es. getTesto() e/o qualunque altra cosa. Il punto è che al listener non interessa come/dove è implementata.
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    305
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Se l'ActionListener è in una classe esterna a quella dove c'è il campo di istanza per il JTextField, ci sono diverse possibilità per ottenere testo (o altro del JTextField) nel actionPerformed.

    1) Passare al ActionListener (da costruttore, tipicamente) il riferimento al JTextField. Questo non è sbagliato o "brutto". Dipende molto anche dal concetto dell'uso di tale JTextField.
    2) Passare al ActionListener (idem, costruttore) il riferimento alla classe che incapsula il JTextField e fare in modo da offrire un metodo pubblico che o ritorna direttamente il JTextField (meno bello) oppure il testo o altro dato necessario (più bello). Ma non esporre direttamente il campo!
    3) Passare al ActionListener un oggetto che implementa una interfaccia che permette di disaccoppiare il listener dal resto. La interfaccia potrebbe avere metodi es. getTesto() e/o qualunque altra cosa. Il punto è che al listener non interessa come/dove è implementata.
    potresti spiegarmi meglio il terzo tipo ! ti ringrazio

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