Problème de focus avec une JTable
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:
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