Visualizzazione dei risultati da 1 a 8 su 8

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    42
    Hai capito benissimo… Mi scuso per la banalità della domanda… È la prima volta che uso swing.
    Comunque ora funziona, ti ringrazio.
    Pensavo fosse automatico (ed effettivamente Credo che lo sia), ma giustamente se non si specifica l'evento sul quale operare, Il programma non sa quando aggiornare il selectedIndex. Giusto?
    Il mio errore è stato quello di registrare l'evento "clic del mouse" sulle singole Tab, per cui avevo fatto qualcosa del tipo: clic su tab 1 -> jTabbedPane.setSelectedIndex(1).
    Ora invece Ho assegnato l'evento "clic del mouse" al jTabbedPane. Al verificarsi dell'evento viene chiamato un metodo che valuta il SelectedIndex.

    Grazie per avermi Aperto gli occhi

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da MBdip Visualizza il messaggio
    Il programma non sa quando aggiornare il selectedIndex. Giusto?
    La proprietà "selectedIndex" (get/setSelectedIndex) rispecchia sempre e in qualunque momento l'indice del tab corrente/selezionato. A parte il caso particolare di valore -1 che come dice la documentazione "Returns -1 if there is no currently selected tab".

    Quindi che vuoi dire con "non sa quando aggiornare il selectedIndex" ?

    Quote Originariamente inviata da MBdip Visualizza il messaggio
    Il mio errore è stato quello di registrare l'evento "clic del mouse" sulle singole Tab, per cui avevo fatto qualcosa del tipo: clic su tab 1 -> jTabbedPane.setSelectedIndex(1).
    Questo approccio sarebbe comunque inutile e troppo "dispendioso". Poi comunque cosa vuol dire "clic del mouse" sulle singole Tab" ? Intendi sulle "linguette" del tabbed pane? JTabbedPane non ha nulla per registrare MouseListener sulle singole "linguette"!
    O intendi sul componente contenuto nel tab? Sì, sul componente contenuto è tecnicamente possibile registrare un MouseListener ma avrebbe ancora meno senso e potrebbe essere comunque controproducente.

    Quote Originariamente inviata da MBdip Visualizza il messaggio
    Ora invece Ho assegnato l'evento "clic del mouse" al jTabbedPane
    Cioè hai registrato un MouseListener sul JTabbedPane? E a che scopo?
    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
    Registrato dal
    Apr 2014
    Messaggi
    42
    Sì, lo avevo fatto sulle linguette… So che era un procedimento inutile e poco producente, ma il selectedIndex restava sempre 0, Allora Stupidamente cercavo di forzarlo manualmente (Tra l'altro in modo errato).

    Con "Quando aggiornare" intendo la cattura dell'evento.

    codice:
    private void tabMainMouseClicked(java.awt.event.MouseEvent evt) {                                             lblMessage.setText("");
            refreshTable();
        }
    Ho scritto questo codice Al puro scopo di provare Un evento, poi mi sono accorto che c'è proprio un evento dedicato nella sezione "change"... Il changelistner per l'appunto. Con un mouselistner vengono sprecate sulle risorse perché ad ogni clic del mouse viene eseguito un "qualcosa" anche se si è nella stessa tab. Praticamente inutile.

    Grazie mille

    [EDIT]
    Come non detto… Con il changeListner mi viene restituito questo errore:
    codice:
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException    at tornei.GUI.refreshTable(GUI.java:568)
        at tornei.GUI.tabMainStateChanged(GUI.java:555)
        at tornei.GUI.access$200(GUI.java:19)
        at tornei.GUI$3.stateChanged(GUI.java:266)
        at javax.swing.JTabbedPane.fireStateChanged(JTabbedPane.java:416)
        at javax.swing.JTabbedPane$ModelListener.stateChanged(JTabbedPane.java:270)
        at javax.swing.DefaultSingleSelectionModel.fireStateChanged(DefaultSingleSelectionModel.java:132)
        at javax.swing.DefaultSingleSelectionModel.setSelectedIndex(DefaultSingleSelectionModel.java:67)
        at javax.swing.JTabbedPane.setSelectedIndexImpl(JTabbedPane.java:616)
        at javax.swing.JTabbedPane.setSelectedIndex(JTabbedPane.java:591)
        at javax.swing.JTabbedPane.insertTab(JTabbedPane.java:731)
        at javax.swing.JTabbedPane.addTab(JTabbedPane.java:798)
        at tornei.GUI.initComponents(GUI.java:319)
        at tornei.GUI.<init>(GUI.java:26)
        at tornei.GUI$8.run(GUI.java:634)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
        at java.awt.EventQueue.access$200(EventQueue.java:103)
        at java.awt.EventQueue$3.run(EventQueue.java:694)
        at java.awt.EventQueue$3.run(EventQueue.java:692)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    BUILD SUCCESSFUL (total time: 6 seconds)[\CODE]
    Eppure con il semplice clic del mouse funzionava anche bene…

    Non lo capisco questo errore…
    Ultima modifica di MBdip; 10-06-2014 a 13:12

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.