Bonjour ,

J’utilise une JTable avec une checkbox en troisième colonne et je souhaiterais donner le focus à la première cellule de ma première colonne mais je n’y arrive pas.

Je génère ma JTable avec une class MyModel de la manière suivante

jTableTest = new JTable(new MyModel());

class MyModel extends AbstractTableModel
{
private Vector data;
//private String[] colNames = new String[]{"un","deux","trois"};
private String[] colNames = new String[]{"IDORGANISME","LIBELLE","CENTRAL"};
private Class[] colClass = new Class[]{Vide.class,Vide.class,Boolean.class};

public MyModel(){
//super();
data = new Vector();
data.add(new Object[] {null, null,new Boolean(false)});
data.add(new Object[] {null, null,new Boolean(false)});
data.add(new Object[] {null, null,new Boolean(false)});
}
public int getColumnCount() {
return colNames.length;
}

public int getRowCount() {
return data.size();
}

public Object getValueAt(int row, int col) {
Object[] obj = (Object[]) data.get(row);
return obj[col];
}
public void setValueAt(Object val, int row, int col) {
Object[] obj = (Object[]) data.get(row);
obj[col] = val;
}

public boolean isCellEditable(int arg0, int arg1) {
return true;
}

public Class getColumnClass(int arg0) {
return colClass[arg0];
}
public String getColumnName(int col) {
return colNames[col];}

/* Pour ajouter une ligne au Model */
public void addRow(){
data.add(new Object[] {new Boolean(true), new Boolean(true),new Boolean(true)});
/* Pour que le changement dans les donnees soit pris en compte */
fireTableDataChanged();
}

}


et j’utilise une class MouseAdapter pour écouter les mouvements de la souris avecle code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
class MouseAdapter implements MouseListener {
 
		@Override
		public void mouseClicked(MouseEvent e) {
		    Point p = e.getPoint();
		    int col = jTableTest.columnAtPoint(p);
		    int row = jTableTest.rowAtPoint(p);
			if (jTableTest.isCellEditable(row, col)) {
		    	jTableTest.editCellAt(row, col);
		    jTableTest.getEditorComponent().requestFocusInWindow();
		    }
		}
Quelqu’un pourrait-il m’aider ?
Merci d’avance