Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502

    [Java] JTable - impostare sfondo e bordo della cella attiva

    Ciao a tutti,
    mi sto cimentando con le JTable e non ne vengo a capo.

    Se non implemento nessun renderer e editor e lascio tutto "originale" quando seleziono una cella, questa assume un colore di sfondo differente e ha il bordino più spesso per dire che è selezionata.
    Vorrei fare in modo che quando clicco su una cella per modificarla, questa appaia con il testo presente selezionato, così che appena scrivo qualcosa, il testo vecchio venga sostituito da quello nuovo. Ma quello che succede ora è che il nuovo testo si accoda a quello presente.
    Immagino sia qualcosa della classe che uso come editor, ma non riesco a farlo funzionare.

    Idee? Grazie.

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

    Re: [Java] JTable - impostare sfondo e bordo della cella attiva

    Originariamente inviato da Rubox
    Vorrei fare in modo che quando clicco su una cella per modificarla, questa appaia con il testo presente selezionato, così che appena scrivo qualcosa, il testo vecchio venga sostituito da quello nuovo.
    Estendi JTable e fai l'override del metodo prepareEditor():

    codice:
    class MyTable extends JTable {
        // Metti il o i costruttori che ti interessano ....
    
        public Component prepareEditor(TableCellEditor editor, int row, int column) {
            Component c = super.prepareEditor(editor, row, column);
    
            if (c instanceof JTextComponent) {
                JTextComponent t = (JTextComponent) c;
                t.selectAll();
            }
    
            return c;
        }
    }
    Se sei su una cella selezionata (non in edit!) e digiti qualcosa, sovrascrive tutto il contenuto (perché il selectAll() sopra ha selezionato tutto).
    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
    Feb 2009
    Messaggi
    502
    Grazie mille.
    Adesso devo solo capire come farlo convivere con editor e renderer, perché li definisco, mi seleziona si tutto il testo e quando digito sparisce, però quando mi sposto di cella in cella con il mouse o con il tab, non mi evidenzia più la riga su cui sono e la cella.

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.