Les cellules JTable par défaut sont en mode ajout lorsque la cellule est double-cliquée. Existe-t-il un moyen de faire passer la cellule en mode d'écrasement à la place, IOW, sélectionnez le contenu de la cellule de sorte que si l'utilisateur commençait à taper l'ancien texte serait remplacé par le nouveau texte sans avoir à l'effacer manuellement?Comment rendre les cellules JTable par défaut en mode écrasement
Répondre
Vous devriez être en mesure de le faire en créant le vôtre TableCellEditor, qui peut être assigné à la table parent en utilisant setCellEditor(). Cet objet est une fabrique appelée par JTable à chaque fois que l'utilisateur commence à modifier une cellule pour créer le champ utilisé pour l'édition proprement dite. Vous pouvez retourner votre propre JTextField, et évitez simplement de définir l'ancienne valeur pour obtenir ce que vous demandez. Vous devrez également attacher un écouteur au champ de texte pour mettre à jour la valeur dans la table lorsque l'utilisateur a fini de taper.
Vous pourriez trouver le Table Select All Editor utile.
J'ai jeté un oeil à RXTable pour voir si je pouvais comprendre, mais c'est dur puisque je travaille avec un swing.JTable() généré par NetBeans. En outre, j'ajoute et enlève des rangées de la table basées sur l'entrée d'utilisateur. Existe-t-il un moyen d'ajouter un écouteur qui fera simplement tout sélectionner sur un simple clic (ou navigation TAB) à la cellule, lorsque la cellule reçoit le focus? Je voudrais que ce NetBeans JTable se comporte comme un tableau Excel, car beaucoup sont à l'aise avec cette interface utilisateur. – jacknad
Au cas où cela aiderait quelqu'un d'autre, le code clé de RXTable (la méthode editCellAt()) était très facile à extraire et à adapter dans une autre sous-classe de table personnalisée. –
J'ai implémenté la méthode suivante [addDeletePreviousOnEditBehavior] qui fonctionne bien! Notez que vous devez utiliser TableCellEditor. Pour cela, ajoutez le code suivant:
JTable table=new JTable();
JTextField field=new JTextField();
addDeletePreviousOnEditBehavior(field);
table.setCellEditor(new DefaultCellEditor(field));
La méthode est:
public static void addDeletePreviousOnEditBehavior(final JComponent field) {
field.addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent fe) {
field.putClientProperty(DELETE_ON_EDIT, true);
}
@Override
public void focusLost(FocusEvent fe) {
}
});
field.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent ke) {
}
@Override
public void keyPressed(KeyEvent ke) {
if ((!(ke.isActionKey()
|| isSpecial(ke.getKeyCode())))
&& ((Boolean) field.getClientProperty(DELETE_ON_EDIT))) {
System.out.println("Key:" + ke.getKeyCode() + "/" + ke.getKeyChar());
field.putClientProperty(DELETE_ON_EDIT, false);
if (field instanceof JFormattedTextField) {
((JFormattedTextField) field).setValue(null);
}
if (field instanceof JTextComponent) {
((JTextComponent) field).setText(null);
}
}
}
@Override
public void keyReleased(KeyEvent ke) {
// do nothing
}
});
}
- 1. Ruby on Rails par défaut Écrasement accesseurs
- 2. Aligner les valeurs des cellules dans JTable?
- 3. Comment changer les données dans les cellules JTable?
- 4. Comment modifier le comportement d'arrêt d'arrêt par défaut dans jtable
- 5. Java - comment rendre "runnable" JTable?
- 6. Les cellules JTable ne restituent pas correctement les formes
- 7. Utilisez JSpinner comme éditeur de cellules JTable
- 8. Fusion de cellules dans JTable
- 9. Rendre une cellule dans un JTable modifiable - la valeur par défaut de la cellule
- 10. Comment accélérer et rendre les cellules lisses dans l'iPhone?
- 11. Comment définir Telerik RadGrid en mode Édition par défaut? (ASP.NET)
- 12. Comment rendre jList sélectionnable dans un jTable
- 13. JTable - Retourne du texte dans plusieurs cellules
- 14. iphone xcode Mode Paysage par défaut
- 15. Mode d'édition par défaut de Twiki
- 16. mumamo-alt-php-tags-mode par défaut
- 17. obtenir des cellules odf un JTable
- 18. Écrasement de tous les accesseurs par défaut dans un modèle de rail
- 19. Comment rendre les cellules TableView réparties sur plusieurs lignes?
- 20. Comment rendre EditText plus petit que la valeur par défaut?
- 21. Utilisation de JTable pour un éditeur de cellules JTree
- 22. Écrasement /boot/grub/menu.lst?
- 23. Comment rafraîchir toutes les cellules par VBA
- 24. Mathematica quickie: A propos de la création de cellules Entrée de cellules par défaut
- 25. Rendre les cellules "vides" cliquables dans les tables HTML
- 26. couleur des cellules de DataGrid WPF aux paramètres par défaut
- 27. Java - Modification JTable par classe
- 28. Tri JTable par programme
- 29. Comment rendre IE8 seulement pour fonctionner en mode de compatibilité?
- 30. MSMQ sur un contrôleur de domaine par défaut en mode groupe de travail, comment passer en mode Domaine?
En utilisant cette approche, vous devrez peut-être créer un éditeur personnalisé pour chaque type de données. Un pour String, Integer etc. – camickr