L'aide personnalisée TableModel faire isCellEditable vrai pour une ligne particulière sur le bouton cliquez sur

L'aide personnalisée TableModel faire isCellEditable vrai pour une ligne particulière sur le bouton cliquez sur

J'ai un tableau comme ci-dessus. Initialement, toutes les cellules à l'exception du bouton de la colonne ne sont pas modifiables. J'ai créé la table à l'aide personnalisée TableModel. Mon isCellEditable dans la coutume TableModel ressemble à ceci:

public boolean isCellEditable(int rowIndex, int columnIndex) { 
    //System.out.println("isCellEditable: " + rowIndex + " " + columnIndex);
    if(getColumnClass(columnIndex) == JButton.class)
        return true;
    else
        return false;
}

Mais quand je clique sur le bouton Modifier de chaque ligne d'un JDialog pop up avec cette ligne (par la construction d'une JTable dans cette boîte de dialogue à une seule rangée.) Je peux mettre à jour les valeurs des cellules dans cette JDialog de la table. et puis les mettre à jour dans les cellules de cette ligne.

L'aide personnalisée TableModel faire isCellEditable vrai pour une ligne particulière sur le bouton cliquez sur

Je suis avec succès en mesure de mettre à jour la table principale de la ligne après la mise à jour ici, que si mon isCellEditable return true. Mais cela ne devrait pas arriver. Seulement quand je clique alors je devrais être en mesure de changer isCellEditable de la ligne comme Modifiable et la mise à jour et le rendre non modifiable.

J'ai vu la suite post mais a été incapable de la mettre en œuvre.

vous n'avez pas lu mes réponses à vos deux dernières questions sur le même sujet et ici aussi , n'est-ce pas ???, ne pas réinventer la roue ...
Non, j'ai lu et j'ai compris. J'ai mis en œuvre getColumnClass et isCellEditable méthodes dans mon modèle personnalisé. Mais mon doute, c'est que les lignes doivent être modifiable uniquement après avoir cliqué sur le bouton de la ligne correspondante, puis faire de mise à jour et de faire de cette ligne de nouveau non modifiable. Merci de m'expliquer si je ne suis pas arriver.
my question is ----> est-il vraiment la raison (dans votre cas, et les connaissances sur les Java Essential Classes et Swing) à utiliser AbstractTableModel, s'il vous plaît si il n'y pas vraiment de raison importante, puis de commencer avec des combinaisons JTable et DefaultTableModel, parce que tous les déclarants sont mis en œuvre tout à fait correctement, sans se soucier de remplacer le
juste pour souligner une balle dans @mKorbel réponse: Ne.Pas.Magasin.Des composants.Dans.Votre.De modèle. Au lieu de cela, mettre en œuvre un moteur de rendu personnalisé/éditeur que les peintures de la cellule à l'aide d'un bouton. Quant à votre question: d'après votre description, Idon pas tout à fait comprendre ce que vous êtes vraiment après .. a) en cliquant sur le bouton afficher une boîte de dialogue qui contient une autre table avec une seule ligne et permettre l'édition dans cette boîte de dialogue tableau b) cliquez sur le bouton et autoriser temporairement dans l'édition de la table qui contient les boutons?
d'accord, et que leur montrant seulement ceux de la colonne qui doivent être mis à jour est en fait dans une boîte de dialogue?

OriginalL'auteur Amarnath | 2012-09-13