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

    Contenuto riga di una JTabel

    Salve, ho implementato una JTable che viene riempita tramite una query sul database. Le ho aggiunto un modello in cui ho solamente implementato il metodo isCellEditable() in modo che non fosse editabile; adesso però dovrei fare in modo che ogni volta che viene selezionata una riga ne visualizzi il campo di ogni colonna della riga selezionata, in un JTextField. Non sto riuscendo a fare questo, volevo usare il metodo getValueAt però non so come "dirgli": prendi il valore ogni volta che viene selezionata una riga. Non riesco in pratica a passargli la riga che viene selezionata ogni volta.

  2. #2
    Io vorrei fare come il metodo TableChanged() dell'interfaccia TableModelListener. Il problema è che quel metodo funziona se tu modifichi il campo di una tabella, a me invece serve che si attivi se seleziono una riga

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da AssassinCruel Visualizza il messaggio
    Salve, ho implementato una JTable che viene riempita tramite una query sul database. Le ho aggiunto un modello in cui ho solamente implementato il metodo isCellEditable() in modo che non fosse editabile; adesso però dovrei fare in modo che ogni volta che viene selezionata una riga ne visualizzi il campo di ogni colonna della riga selezionata, in un JTextField. Non sto riuscendo a fare questo, volevo usare il metodo getValueAt però non so come "dirgli": prendi il valore ogni volta che viene selezionata una riga. Non riesco in pratica a passargli la riga che viene selezionata ogni volta.
    Per ricevere notifica del cambio di selezione:

    codice:
    tuajtable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
        public void valueChanged(ListSelectionEvent e) {
            if (!e.getValueIsAdjusting()) {
                int rigaSelez = tuajtable.getSelectedRow();
    
                // .....
            }
        }
    });

    Se usare getValueIsAdjusting o no ... dipende, vedi documentazione su cosa fa (riguarda principalmente il cambio selezione fatto con mouse).

    rigaSelez va testato (può essere -1 = nessuna riga selezionata)

    Nota: preferibilmente (se vuoi) imposta il modo di selezione "single":
    codice:
    tuajtable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Perfetto grazie mille funziona Grazie tante per la nota, non ci avevo pensato. Ultima cosa: dato che ho bisogno di divedere le diverse classi per la coerenza ecc; ho una classe che fa da listener e ho scritto "implements ListSelectionListener", per passargli poi la table ho usato il pattern singleton e ho dichiarato naturalmente public la JTable. Questo metodo va bene? io nella classe ListSelectionListener userò la sintassi
    codice:
    panel.table.getSelectedRows();
    Dove panel sarebbe l'istanza della classe in cui si trova la JTable

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da AssassinCruel Visualizza il messaggio
    dato che ho bisogno di divedere le diverse classi per la coerenza ecc; ho una classe che fa da listener e ho scritto "implements ListSelectionListener", per passargli poi la table ho usato il pattern singleton e ho dichiarato naturalmente public la JTable. Questo metodo va bene? io nella classe ListSelectionListener userò la sintassi
    codice:
    panel.table.getSelectedRows();
    No, pessimo design. Certamente è bene separare i concetti in classi separate ma va fatto con saggezza (e conoscendo i principi della OOP e i principali design pattern), non mettendo un po' di la un po' di qua, un campo pubblico di la, una espressione x.y.z() di qua ecc...
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Come mi consiglieresti di procedere? considerando che vorrei dividere tra listenere e classe gui

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.