Visualizzazione dei risultati da 1 a 10 su 12

Hybrid View

  1. #1
    Bene, una procedura più corposa.
    Si ho il renderer, la mia classe ButtonRenderer e sviluppato il getTableCellRendererComponent che fà un bel pò di cose.

    Inoltre ho sviluppato una classe che si chiama Tabella che eredita da JTable, tant'è che quando devo istanziare la table (dove mi serve) istanzio direttamente la classe Tabella, quindi penso dovrò sviluppare il isCellEditable nella classe Tabella e fino a qua ci siamo.

    Per quanto riguarda il
    TableModelEvent non l'ho sviluppato ma in un'altro progettino usavo una classe che implementava il TableModelListener quindi tramite il metodo tableChanged selezionavo un checkbox nella colonna di una tabella e automaticamente doveva flaggare un'altro flag e viceversa, cosi si scandiva tutta colonna vedeva qual'era flaggato e automaticamente flaggava l'altro vicino.

    Ma nel mio caso come faccio a notificare questa aggiornamento?
    tramite il TableModelEvent? come?

    Credo di aver compreso tutto la procedura, e mi serve solo comprendere questo piccolo passo.

    Grazie.
    Ultima modifica di schumy2000; 25-02-2016 a 16:01
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da schumy2000 Visualizza il messaggio
    Bene, una procedura più corposa.
    Per niente! Vengono fuori poche righe di codice in più.

    Quote Originariamente inviata da schumy2000 Visualizza il messaggio
    quindi penso dovrò sviluppare il isCellEditable nella classe Tabella
    No, è già di JTable.

    Quote Originariamente inviata da schumy2000 Visualizza il messaggio
    Per quanto riguarda il TableModelEvent non l'ho sviluppato
    No, TableModelEvent è già del framework (come ActionEvent, MouseEvent, ecc...). Devi solo istanziarlo.

    Quote Originariamente inviata da schumy2000 Visualizza il messaggio
    Ma nel mio caso come faccio a notificare questa aggiornamento?
    Nel getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)

    codice:
    boolean editable = table.isCellEditable(row, column);
    pulsante.setEnabled(editable);

    L'unica cosa che non posso sapere è se crei un JButton al volo ogni volta oppure se (come è più tipico), il renderer IS-A JButton.

    Mentre nel tuo setButtonVisible:

    codice:
        public void setButtonVisible(boolean visible){
            this.buttonsVisible = visible;
    
            fireTableChanged(new TableModelEvent(this, 0, getRowCount()-1, nnn));
        }

    Dove nnn è l'indice di colonna dei pulsanti. Se hai più colonne di pulsanti coinvolte, semplicemente replica la riga.


    E non mi dire che è "corposa".
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)

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 © 2026 vBulletin Solutions, Inc. All rights reserved.