Je développe une application utilisant jTable
pour la gestion des stocks.
L'action est, en tapant le code de l'article dans a jTextField
et en appuyant sur la Entertouche, les détails de ce code devraient arriver jTable
. Et là, je dois taper la quantité et appuyer sur Enterpour calculer le montant. Mais maintenant, en donnant le code d'article, les détails arrivent au jTable
, et je peux taper la quantité, mais là, en appuyant sur la Entertouche, le jTable
focus passe à la ligne suivante et aucun calcul n'est en cours. Mais en appuyant à nouveau sur la Entertouche, jTextField
le dernier montant entré est calculé. Je ne sais pas comment résoudre ce problème car je suis un débutant en Java. J'utilise MySQL et Java dans Netbeans.
Je donne ce code ci-dessous.
Merci..
jTable1.editCellAt(serialNumber, 2);
jTable1.getCellSelectionEnabled();
value1 = new Double(jTable1.getValueAt(serialNumber, 2).toString());
value = new Double(jTable1.getValueAt(serialNumber, 3).toString());
double result = value1 * value;
jTable1.setValueAt(result, serialNumber, 4);
La liaison de clé par défaut pour Enterest l' selectNextRowCell
action dans la WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
mappe d'entrée de la table . Vous pouvez remplacer votre propre action, comme indiqué ci-dessous.
private static final String solve = "Solve";
KeyStroke enter = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0);
table.getInputMap(JTable.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(enter, solve);
table.getActionMap().put(solve, new EnterAction());
...
private class EnterAction extends AbstractAction {
@Override
public void actionPerformed(ActionEvent e) {
...
}
}
Voir aussi les liaisons de clavier dans Swing (en miroir sur web.archive.org).
Addendum: Vous pouvez trouver plus d'exemples ici , ici et ici ; le dernier est JTable
spécifique.
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots