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

    FocusListener On JTable

    Buonasera a tutti ho una piccola applicazione in java e dopo varie surfate su google approdo qui per chiedere se ciò che voglio realizzare è possibile o meno.
    Allora ho un DefaultTableModel (con qualche metodino overridato ) che applico ad una tabella in cui sono contenuti alcuni dati, ora vorrei sapere se è possibile:

    1) Eliminare la riga selezionata dall'utente con il click del mouse (Quella che diventa blu praticamente...)

    2) Eliminare le righe che l'utente seleziona NON solo con il click del mouse ma anche tenendo premuto shift e i tasti direzionali (Quindi anche una selezione multipla)

    Grazie mille

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

    Re: FocusListener On JTable

    Originariamente inviato da MarcoJava
    1) Eliminare la riga selezionata dall'utente con il click del mouse (Quella che diventa blu praticamente...)

    2) Eliminare le righe che l'utente seleziona NON solo con il click del mouse ma anche tenendo premuto shift e i tasti direzionali (Quindi anche una selezione multipla)
    La selezione, in generale, la puoi conoscere (dipende se singola, intervallo singolo o multiplo). Vedi i metodi getSelectedRow() / getSelectedRows() e altri.
    DefaultTableModel ha metodi per aggiungere, rimuovere ecc... delle righe.
    Se vuoi ricevere notifica del click su una riga è semplice: registri un MouseListener sul JTable e poi dal Point del click ricavi riga/colonna con rowAtPoint/columnAtPoint di JTable.
    Se vuoi ricevere notifica del cambiamento della selezione (che può anche non centrare con il mouse), registri un ListSelectionListener sul ListSelectionModel.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Ok grazie mille andbin per il tuo intervento!
    Sono riuscito senza problemi a rimuovere la riga selezionata tramite i metodi getSelectedRow() e removeRow().
    Ho quindi provato a utilizzare l'altro metodo getSelectedRows() per l'eventuale selezione di piu righe da eliminare; ora, prima di scrivere il codice, ho guardato la documentazione per un ulteriore conferma e anche li ho letto che il metodo getSelectedRows() ritorna un array con gli indici delle righe selezionate. Per fare una prova, nel metodo che viene richiamato dalla pressione del bottone elimina, ho scritto:
    codice:
    int[] Selezione = (TabSelect.getSelectedRows());
    		 System.out.print(Selezione);
    Indipendente dalle righe che seleziono (una nessuna o centomila!) il programma stampa questa stringa:
    codice:
    [I@276af2
    Che significa?? Dove Sbaglio?
    Grazie anticipatamente

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da MarcoJava
    codice:
    [I@276af2
    Che significa?? Dove Sbaglio?
    La versione di print() (o println()) che riceve un Object stampa la stringa fornita dal toString() dell'oggetto.

    Gli array sono oggetti, ma per gli array non c'è una implementazione specifica di toString() .... viene ereditato quello di Object che non può far altro che stampare una informazione (un po' sibillina) sul tipo e sul reference.

    Quindi:
    a) Fai una iterazione sull'array e stampi tu i singoli valori
    oppure
    b) Vedi il toString() di java.util.Arrays (solo da Java 5)
    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.