Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    10

    JButton disabilitati e funzionanti O_O

    ciao a tutti
    a qualcuno è capitato che i pulsanti con setEnabled(false) funzionino lo stesso? e se si ha risolto in qualche modo?
    Un altro problema diametralmente opposto, cioè mi capita a volte che i JButton non facciano quello che dice loro il Listener se non dopo aver cliccato varie volte. Qualcuno ha idee?
    non ci sto capendo più nulla

    ringrazio in anticipo per gli aiuti

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: JButton disabilitati e funzionanti O_O

    [QUOTE]Originariamente inviato da DrRage88
    Originariamente inviato da DrRage88
    a qualcuno è capitato che i pulsanti con setEnabled(false) funzionino lo stesso?
    Mai.


    Originariamente inviato da DrRage88 Un altro problema diametralmente opposto, cioè mi capita a volte che i JButton non facciano quello che dice loro il Listener se non dopo aver cliccato varie volte. Qualcuno ha idee?
    Senza vedere il codice che hai scritto è più facile fare un terno al lotto...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    10
    beh ma in generale funzionano 10 volte e una no utilizzandoli alla stessa maniera è quello che non capisco :

    codice:
    public class a extends JFrame{
       private JButton a;
       private MyMouseAdpt ml;
       
       public a(){
          a = new JButton("nome");
          ml = new MyMouseAdpt();
          a.addMouseListener(ml);
    
          add(a);
       }
    
       class MyMouseAdpt extends MouseAdapter{
          public void mouseClicked(MouseEvent e){
             if(e.getButton() == MouseEvent.BUTTON1){
                if(e.getSource().equals(a)){
                   JFrame b = new JFrame();
                   b.setVisible(true);
                }
             }
          }
       }
    }
    mi scuso in anticipo se ci fosse qualche imprecisione nel codice m l'ho scritto di getto qui nella risposta .
    Per tante volte funziona alla prima e alla volta dopo bisogna cliccare 2,3,4,5 volte, per non parlare dei JToggleButton .
    Non so se centra qualcosa ma non uso il Container e la getContentPane per i JFrame. Può influire? o non centra nulla?

    grazie

  4. #4
    Ti consiglio di usare gli ActionListener non gli Adapter per queste cose.
    A me non hanno mai dato questo tipo di problemi.
    lolide
    Java Programmer

    Informati

  5. #5

    Re: JButton disabilitati e funzionanti O_O

    Originariamente inviato da DrRage88
    ciao a tutti
    a qualcuno è capitato che i pulsanti con setEnabled(false) funzionino lo stesso? e se si ha risolto in qualche modo?
    Un altro problema diametralmente opposto, cioè mi capita a volte che i JButton non facciano quello che dice loro il Listener se non dopo aver cliccato varie volte. Qualcuno ha idee?
    non ci sto capendo più nulla

    ringrazio in anticipo per gli aiuti
    Ho provato il tuo codice e non vedo problemi, quando faccio click sul pulsante del Frame principale, mi viene correttamente istanziato e reso visibile un altro frame (uno per ogni click).
    Inoltre nel tuo codice non vedo tracce di disabilitazione pulsanti e anche aggiungendola da me in questo modo:
    codice:
    ...
    add(a);
    a.setVisible(false);
    tutto funziona esattamente come dovrebbe, cioè il pulsante non è visibile e quindi tantomeno clickabile.

    Infine, ti do un suggerimento: leggi e utilizza le convenzioni Java nello scrivere il tuo codice, nel caso specifico la tua classe di test non dovrebbe avere un nome che comincia con una lettera minuscola. Inoltre è sempre buona cosa usare degli identificatori "parlanti" per le tue variabili, e quindi non a, b, o ml, ma button, mouseListener eccetera...
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    10
    si si normalmente uso questa convenzione ma qua ho scritto velocemente e quindi ho scritto nomi a caso :P. Per la disabilitazione io ho utilizzato l funzione setEnabled() perchè vorrei che il pulsante fosse visibile ma solo non cliccabile. Visivamente è disabilitato ma poi cliccandoci sopra funziona ed è una cosa che non mi è mai successa ora lo provo su l'altro pc che ho e vedo se è un problema di ambiente

  7. #7
    Originariamente inviato da DrRage88
    si si normalmente uso questa convenzione ma qua ho scritto velocemente e quindi ho scritto nomi a caso :P. Per la disabilitazione io ho utilizzato l funzione setEnabled() perchè vorrei che il pulsante fosse visibile ma solo non cliccabile. Visivamente è disabilitato ma poi cliccandoci sopra funziona ed è una cosa che non mi è mai successa ora lo provo su l'altro pc che ho e vedo se è un problema di ambiente
    Perchè anzichè associare un ascoltatore di mouse, non associ un ascoltatore di azioni al bottone?
    Sappi che il bottone è un componente che auto-genera l'evento (es. pressione), quindi non c'è bisogno di intercettare click del mouse.
    Guarda questo esempio

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    10
    perfetto aggiungendo l'actionlistener invece che il mouselistener funziona tutto correttamente ringrazio tutti per l'aiuto

  9. #9
    Originariamente inviato da DrRage88
    perfetto aggiungendo l'actionlistener invece che il mouselistener funziona tutto correttamente ringrazio tutti per l'aiuto
    Ma del resto la stessa documentazione del metodo setEnabled recita
    Note: Disabling a lightweight component does not prevent it from receiving MouseEvents.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  10. #10
    Originariamente inviato da unomichisiada
    Ma del resto la stessa documentazione del metodo setEnabled recita
    Infatti!

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.