Ceci est peut-être une solution triviale, mais je suis à la fin de mon attache, donc j'espère que quelqu'un peut aider. P>
J'utilise une JTABLE qui a un rendu personnalisé et un éditeur personnalisé pour un ensemble de colonnes.
Le rendu utilise un composant Jlabel et l'éditeur utilise un composant JSpinner.
Nos utilisateurs veulent pouvoir entrer des valeurs dans une colonne, puis appuyer sur onglet ou entrer pour vous déplacer dans la cellule modifiée suivante de la table.
Si je comprends bien, il s'agit du comportement par défaut pour une JTABLE. p>
Cependant, cela ne semble pas fonctionner correctement pour moi. Jusqu'à ce que l'utilisateur clique sur la cellule, seul le jlabel est affiché.
Le Jspinner (c'est-à-dire Celleditor) est uniquement affiché lorsqu'un utilisateur double clic sur la cellule. Donc, on dirait que la cellule est en mode "Edit" uniquement sur les souris à souris, mais pas quand il se concentre. p>
Comment puis-je obtenir la cellule pour passer en mode édition dès sa mise au point? p>
3 Réponses :
Merci N00213F. Le fil et l'exemple de votre message ont été utiles. En surchargeant la méthode Pour la complétude, voici ma solution: P> JTable myTable = new javax.swing.JTable()
{
public void changeSelection(final int row, final int column, boolean toggle, boolean extend)
{
super.changeSelection(row, column, toggle, extend);
myTable.editCellAt(row, column);
myTable.transferFocus();
}
};
Pourquoi ne pas utiliser le mot clé code>?
Voici un extrait de code que j'ai mis en place pour un projet sur lequel je travaillais. Le code a été testé et vérifié pour une table contenant des cellules non modifiables dans la première et dernière colonne. La classe limite la tabulation uniquement sur les cellules modifiables de la table. Il prend également en charge la tabulation de décalage à l'onglet en marche arrière.
JTable myTable = new JTable(); // Set up table attributes.... JTableCellTabbing.setTabMapping(myTable, 0, NUM_ROWS, 1, (NUM_COLS-1));