Comment faire un jtable pas modifiable en java?
J'ai créé une fonction qui charge les données dans un JTable
. Tout fonctionne bien sauf que toutes les cellules de ce tableau sont modifiables. Btw, j'ai utilisé defaultTableModel
pour le modèle de table. Im faire ce dans l'EDI Netbeans. S'il vous plaît aider. Voici mon code:
private void updateTable(String searchText){
if(searchText != null)
this._sqlCmd = this._sqlCmd + " WHERE "+columnCombo.getSelectedItem()+" LIKE '%"+searchText+"%'";
jTable1.setSurrendersFocusOnKeystroke(true);
table = (javax.swing.table.DefaultTableModel) jTable1.getModel();
try{
table.setRowCount(0);
}catch(Exception e){}
try {
ResultSet rs = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY).executeQuery(_sqlCmd);
while (rs.next()){
Object[] data = new Object[numOfCols];
for(int i=0; i<data.length; i++){
data[i] = rs.getObject(i+1);
}
table.addRow(data);
}
table.fireTableDataChanged();
} catch (SQLException ex) {
Logger.getLogger(FindContactGrid.class.getName()).log(Level.SEVERE, null, ex);
}
}
C'est le code de mise à jour du modèle de données. Cellules modifiables avoir à faire avec la JTable à la place.
Je vous suggère fortement d'éviter de vider les blocs catch, surtout si vous attrapez toute possible
double possible de Comment faire un JTable non-modifiable
Je vous suggère fortement d'éviter de vider les blocs catch, surtout si vous attrapez toute possible
Exception
dans le catchdouble possible de Comment faire un JTable non-modifiable
OriginalL'auteur John | 2012-05-03
Vous devez vous connecter pour publier un commentaire.
Édité.
Si vous le faites dans le Netbeans IDE designer, suivez les étapes ci-dessous:
{public boolean isCellEditable(int row, int column){return false;}}
avant la dernière clôture blacket );Votre configuration finale devrait ressembler à celui illustré ci-dessous:
merci mais je ne pense pas que ce sera un travail dans mon code. la table par défaut le modèle que j'utilise a été créé par netbeans. Malheureusement, je ne peux pas modifier le code. Est-il un autre moyen pour cela?
Vous pouvez le faire dans Netbeans
@alain.janinm
a déjà posté la façon de faire dans Netbean designer.@user1349213
voir la version éditée de ma réponse sur la façon de faire dans Netbeans.Merci pour ce!
OriginalL'auteur Bitmap
Si vous utilisez DefaultTableModel vous pouvez remplacer la méthode isCellEditable et le mettre en œuvre lors de la construction d'interface graphique:
OriginalL'auteur Cloud
À l'aide de Netbeans une AUTRE VOIE est possible.
si vous souhaitez continuer à utiliser par défaut le modèle de table comme le mentionne OP
Il n'est pas nécessaire de créer un nouveau modèle de table si vous ne voulez pas.
Sélectionnez la JTable "propriétés"
Sélectionnez le "TableModel" dans "propriétés", qui va ouvrir une autre Boite.
À partir de là, il est possible de modifier le "modifiable" champ de case à cocher pour chaque colonne.
Pas sûr de la version que cela commence, mais je suis à l'aide de Netbeans 7.2
Cela a bien fonctionné pour moi, je suis sur NetBeans 7.0.1
OriginalL'auteur user2485933
Que les autres dit que vous avez créer votre propre
DefaultTableModel
et remplacerisCellEditable
. Afin de l'utiliser dans Netbeans designer :new JTable(new MyModel())
(en supposant que vous créez la classe Monmodèle extends AbstractTableModel)OriginalL'auteur alain.janinm
Essayer Cette
OriginalL'auteur Izanagi