Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [Java] JTable , scorrere righe

    Salve,

    di default le righe della tabella si possono scorrere con enter o con le frecce, io vorrei fare in modo che sia possibile scorrere le righe tramite i caratteri A ed I

    ho provato il seguente codice ma non ottengo l'effetto desiderato

    codice:
     Set<AWTKeyStroke> set, newSet;
                 set = tabella.getFocusTraversalKeys (KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS);
                 newSet = new HashSet<AWTKeyStroke> (set);
                 newSet.removeAll(set);       
                 tabella.setFocusTraversalKeys (KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, newSet);
             
                 set = tabella.getFocusTraversalKeys (KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS);
                 newSet = new HashSet<AWTKeyStroke> (set);       
              newSet.removeAll(set);
              tabella.setFocusTraversalKeys (KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, newSet);
            
                set = tabella.getFocusTraversalKeys (KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS);
              newSet = new HashSet<AWTKeyStroke> (set);
              newSet.add (KeyStroke.getKeyStroke (KeyEvent.VK_A, 0));
              tabella.setFocusTraversalKeys (KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, newSet);
            
              set = tabella.getFocusTraversalKeys (KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS);
              newSet = new HashSet<AWTKeyStroke> (set);
             newSet.add (KeyStroke.getKeyStroke (KeyEvent.VK_I, 0));
             tabella.setFocusTraversalKeys (KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, newSet);

    aiuti?
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [Java] JTable , scorrere righe

    Originariamente inviato da JunkyFunki
    aiuti?
    Con il seguente codice:

    codice:
    InputMap im = table.getInputMap (JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
    im.put (KeyStroke.getKeyStroke (KeyEvent.VK_A, 0), "selectNextColumnCell");
    im.put (KeyStroke.getKeyStroke (KeyEvent.VK_I, 0), "selectPreviousColumnCell");
    Imposti i tasti 'A' e 'I' in modo che facciano muovere avanti/indietro tra le celle.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    tnx ma in questo modo rimangono anche i vecchi comandi per scorrere la tabella come enter o frecce

    ho provato con im.clear() prima dei metodi put ma non funziona
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da JunkyFunki
    ho provato con im.clear() prima dei metodi put ma non funziona
    Sì non funziona ma per un motivo molto semplice. Quella InputMap ottenuta con getInputMap() in realtà inizialmente è vuota.

    Ogni InputMap può avere opzionalmente una InputMap "parent" (vedi getParent() ). E Swing si basa molto su questo sistema di "parentela" delle InputMap. Certe categorie di componenti condividono una InputMap comune e "standard" che contiene dei key binding di "base". Le 3 InputMap che si possono ottenere da getInputMap() sono inizialmente vuote ma hanno come parent quella "base". Quindi in questo modo è facile aggiungere dei key binding specifici per un componente ma senza dover andare a toccare quella "base".

    Il problema è togliere dei key binding. O vai nella InputMap parent e togli i key binding per TAB/frecce o nella InputMap specifica aggiungi dei key binding per TAB/frecce che hanno una Action che non fa una mazza.

    Adesso ci penso un attimo e vedo cosa è meglio fare.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.