Visualizzazione dei risultati da 1 a 6 su 6

Discussione: eventi jtable

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347

    eventi jtable

    se sto scrivendo in una cella di una jtable, dando invio oppure passando in un'altra cella, come posso far scattare un evento che mi faccia per esempio un System.out.print("prova")?
    thanx
    nh

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

    Re: eventi jtable

    Originariamente inviato da newhook
    se sto scrivendo in una cella di una jtable, dando invio oppure passando in un'altra cella, come posso far scattare un evento che mi faccia per esempio un System.out.print("prova")?
    Intanto ti faccio notare che ogni "editor" (che implementa TableCellEditor) ha il metodo addCellEditorListener() per registrare un CellEditorListener che è in grado di notificare il cancellamento o la terminazione della fase di editing.

    Quindi potresti prendere il TableCellEditor per la/le colonne che ti interessano e registrare quel listener.
    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
    Jun 2009
    Messaggi
    347
    le trovo complesse le swing...ma le devo capire bene.
    sto facendio questo:

    codice:
    public class Prova implements CellEditorListener {
    		@Override
    		public void editingCanceled(ChangeEvent e) {
    			System.out.println("sta succedendo qualcosa 2");
    			// TODO Auto-generated method stub
    			
    		}
    
    		@Override
    		public void editingStopped(ChangeEvent e) {
    			System.out.println("sta succedendo qualcosa 3");
    			// TODO Auto-generated method stub
    			
    		}
        }
    
    
    .
    .
    .
    
    TableCellEditor tce = table.getCellEditor();
    tce.addCellEditorListener(new Prova());

    cosa mi dovrei aspettare? così mi da errore
    nh

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da newhook
    TableCellEditor tce = table.getCellEditor();

    cosa mi dovrei aspettare? così mi da errore
    getCellEditor() di JTable restituisce l'editor "attivo" in quel momento. Ma in quel punto della inizializzazione .... non c'è un editor attivo!!!

    Usa l'altro: getCellEditor(int row, int column)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347
    codice:
    TableCellEditor tce = table.getCellEditor(0,0);
    		tce.addCellEditorListener(new Prova());
    Grande! così mi funziona e mi stampa "sta succedendo qualcosa 3" ed è ok ma non capisco getCellEditor(0,0).
    in questo modo mi aspettavo che "sta succedendo qualcosa 3" lo facesse solo per la cella 0,0 invece lo fa per tutte.
    cosa succede?
    Grazie e scusa

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da newhook
    in questo modo mi aspettavo che "sta succedendo qualcosa 3" lo facesse solo per la cella 0,0 invece lo fa per tutte.
    Alla base di tutto c'è una "mappatura" in JTable tra un tipo di dato e un editor. Per tipo di dato intendo dire un java.lang.Class. Ci sono già una serie di mappature predefinite.

    In DefaultTableModel ad esempio getColumnClass() ritorna per default sempre Object.class indipendentemente dalla colonna. Pertanto tutte le righe/colonne useranno lo stesso identico oggetto editor.
    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.