Comment rendre les cellules de ma JTable non éditable dans mon cas

Comment rendre les cellules de ma JTable non éditable dans mon cas - Java - Programmation

Marsh Posté le 17-10-2011 à 12:29:15    

Bonjour à tous, voici, depuis un moment je butte contre un problème que je n’arrive pas à resoudre, celui de rendre les cellules de ma Jtable non éditables.je sais que la méthode « isCellEditable(int row, int col) » le fait, mais dans mon cas je ne sais pas ou appelé cette méthode, vu que ma Jtable est composée d’une colonne et est remplie  par une requête.Quelqu’un pourait-il m’éclairer sur le topo ?Merci.
 Les codes :
 

Code :
  1. /*Methode permettant de remplir la Jtable*/
  2. public void  ListeRegistre()
  3.      {
  4.         try{
  5.             String Query ="SELECT * FROM registres ";
  6.             Connection connection = (Connection) DataBaseConnector.getConnection();
  7.             PreparedStatement ps = (PreparedStatement) connection.prepareStatement(Query);
  8.             ResultSet rs = ps.executeQuery();
  9.             ResultSetMetaData md = (ResultSetMetaData) rs.getMetaData();
  10.             colNo = md.getColumnCount();
  11.            while (rs.next()) {
  12.                 objects = new Object[colNo];
  13.                 for (int i = 0; i < colNo; i++) {
  14.                     objects[i] = rs.getObject(i + 1);
  15.                      //objects[i]=isCellEditable(i, colNo);
  16.                 }
  17.                // TxtJtable.getModel().;
  18.                 aModel.addRow(objects);
  19.             }
  20.             TxtJtable.setModel(aModel);
  21.             TxtJtable.repaint();
  22.          
  23.            } catch (SQLException ex) {
  24.             Logger.getLogger(FormProcedureGestionRegistre1.class.getName()).log(Level.SEVERE, null, ex);
  25.         }
  26. /*Code de ma JTable*/
  27. private DefaultTableModel aModel;
  28. private javax.swing.JTable TxtJtable;
  29. TxtJtable = new javax.swing.JTable();
  30. String[] tableColumnsName = {"REGISTRE DISPONIBLES"};
  31.             aModel = new DefaultTableModel();
  32.             aModel.setColumnIdentifiers(tableColumnsName);
  33. TxtJtable.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
  34. TxtJtable.setModel(aModel );
  35. TxtJtable.setEnabled(false);


---------------
l'on s'enrichit d'avantage en partageant ces connaissances
Reply

Marsh Posté le 17-10-2011 à 12:29:15   

Reply

Marsh Posté le 17-10-2011 à 14:01:28    

Ça se fait dans le modèle de la JTable, avec isCellEditable().

 

J'avais pas lu tout ton code. C'est le Bronx et surtout, tu as l'air de setter le modèle de ta table 2 fois (lignes 20 et 37), c'est certainement ce qui pose problème. On sait pas où est appelé ListeRegistre() (et avec une lecture rapide, on pense que c'est une classe vu que la première lettre est en majuscule).


Message édité par LeRiton le 17-10-2011 à 14:06:51
Reply

Marsh Posté le 17-10-2011 à 15:22:29    

LeRiton,merci bien pour tes remarques,mais meme apres correction le problème demeure inchangé.En fait j'ai pas de souci dans l'appel de la methode listeRegistre(),je l'ai appelé dans le constructeur de ma classe et ça marche bien,mon problème si situe en réalité dans l'appel de la methode isCellEditable().meme avec ce code là :
 
aModel = new DefaultTableModel (
{
  public boolean isCellEditable(int row, int col)
{return false;}
}
);  
j'ai une érreur du genre {illegal start of expression}.Peut-etre ourriez-vous m'aider.Merci

Reply

Marsh Posté le 17-10-2011 à 15:30:43    

Sans le code, ça va être compliqué.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed