Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Focus Component

  1. #1
    Utente di HTML.it L'avatar di WSK
    Registrato dal
    Mar 2008
    Messaggi
    2

    Focus Component

    Salve sono appena iscritto, volevo chiedere aiuto ad un problema che momentaneamente non riesco a risolvere.
    E' riferito ad programma java a cui sto lavorando volendo inserire delle funzioni speciali descritte qui sotto:
    in pratica ho una finestra JFrame che contiene vari componenti, tra cui in particolare, un JPanel che contiene vari campi JTextField + un altro JPanel che contiene una matrice 3x4 di bottoni(JButton) che è una tastiera numerica tipo calcolatrice, più dettagliatamente ad ogni bottone è associato un numero da 0 a 9 e 2 ulteriori bottoni uno per cancellare e l'altro per selezionare il campo di testo su cui scrivere(su un JTextField) .
    Per Ogni bottone, implemento la classe ActionListener per la gestione dell'evento(in questo caso quando premo il bottone) scrivendo il numero del bottone premuto corrispondente sulla JTextField "a fuoco", ovvero quella zona di testo pronta per l'input con il suo cursore attivo(ovviamente dopo aver invocatogli una focusRequest()).
    Il problema è che fra tanti JTextField devo riuscire ad identificare quello "a Fuoco" e scriverci numeri sopra tramite questo pannello di bottoni numerici, quindi mi serve anche poter scrivere su diversi campi testo con la medesima tastiera di bottoni a mia scelta a seconda di quale campo di testo è "a fuoco" nonchè con cursore lampeggiante pronto per l'input, cosa che chiaramente dalla normale tastiera del pc funziona perfettamente.
    In pratica cerco un metodo per implementare la ActionListner di ogni singolo bottone più o meno così:
    Codice PHP:
    class Bottone1Listener implements ActionListener{
            public 
    void actionPerformed(ActionEvent event){
                 
    ComponentOnFocus=Focus.getComponent();
                 
    ComponentOnFocus.setText("1");        
            }
    }
    ActionListener listBottone1=new Bottone1Listener();
    Bottone1.addActionListener(listBottone1); 
    Pseudo codice, tanto per capirsi come se fosse Java
    ..oppure se esistono metodi ancora più semplici che risolvono meglio lo stesso problema
    Grazie in anticipo, saluti

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Se ti basta sapere quale è stato l'ultimo textfield ad avere il focus, allora applica un FocusListener a tutti i tuoi textfield. In risposta a focusGained() imposti una tua variabile di istanza che contiene il reference al textfield. Quello sarà sempre "l'ultimo" textfield che ha avuto il focus.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di WSK
    Registrato dal
    Mar 2008
    Messaggi
    2
    Originariamente inviato da andbin
    Se ti basta sapere quale è stato l'ultimo textfield ad avere il focus, allora applica un FocusListener a tutti i tuoi textfield. In risposta a focusGained() imposti una tua variabile di istanza che contiene il reference al textfield. Quello sarà sempre "l'ultimo" textfield che ha avuto il focus.
    Se mi basta? Ottimo Amico! ho provato come hai scritto e tutto funziona perfettamente problema risolto, grazie 1000!

    Ciao

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.