Lorsque l'application est démarrée, aucune des lignes n'est sélectionnée. Mais je voudrais montrer que la première ligne est déjà sélectionnée.
Comment faire ça? Dois-je définir la couleur d'une ligne dans JTable
?
Mise à jour: j'ai essayé table.setRowSelectionInterval (0,0). Je sais que cela devrait fonctionner, mais il y a un message d'erreur:
Exception in thread "AWT-EventQueue-0" Java.lang.IllegalArgumentException: Row index out of range
at javax.swing.JTable.boundRow(Unknown Source)
at javax.swing.JTable.setRowSelectionInterval(Unknown Source)
at cpn_gui.OptPanel.createForm(OptPanel.Java:124)
at cpn_gui.OptPanel.<init>(OptPanel.Java:50)
at cpn_gui.Login$1.actionPerformed(Login.Java:62)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at Java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at Java.awt.Component.processEvent(Unknown Source)
at Java.awt.Container.processEvent(Unknown Source)
at Java.awt.Component.dispatchEventImpl(Unknown Source)
at Java.awt.Container.dispatchEventImpl(Unknown Source)
at Java.awt.Component.dispatchEvent(Unknown Source)
at Java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at Java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at Java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at Java.awt.Container.dispatchEventImpl(Unknown Source)
at Java.awt.Window.dispatchEventImpl(Unknown Source)
at Java.awt.Component.dispatchEvent(Unknown Source)
at Java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at Java.awt.EventQueue.access$000(Unknown Source)
at Java.awt.EventQueue$1.run(Unknown Source)
at Java.awt.EventQueue$1.run(Unknown Source)
at Java.security.AccessController.doPrivileged(Native Method)
at Java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at Java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at Java.awt.EventQueue$2.run(Unknown Source)
at Java.awt.EventQueue$2.run(Unknown Source)
at Java.security.AccessController.doPrivileged(Native Method)
at Java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at Java.awt.EventQueue.dispatchEvent(Unknown Source)
at Java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at Java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at Java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at Java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at Java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at Java.awt.EventDispatchThread.run(Unknown Source)
Vous pouvez le faire en appelant setRowSelectionInterval :
table.setRowSelectionInterval(0, 0);
pour sélectionner la première ligne.
C'est un vieux post, mais je suis tombé sur cela récemment
Sélection d'un intervalle spécifique
Comme @aleroot déjà mentionné, en utilisant
table.setRowSelectionInterval(index0, index1);
Vous pouvez spécifier un intervalle à sélectionner.
Ajout d'un intervalle à la sélection existante
Vous pouvez également conserver la sélection actuelle et ajouter simplement des lignes supplémentaires en l'utilisant ici
table.getSelectionModel().addSelectionInterval(index0, index1);
Cette ligne de code sélectionne en outre l'intervalle spécifié. Peu importe que cet intervalle soit déjà sélectionné, certaines de ses parties sont sélectionnées.
Vous utilisez le API disponible de JTable
et vous n'essayez pas de jouer avec les couleurs.
Certaines méthodes de sélection sont disponibles directement sur le JTable
(comme le setRowSelectionInterval
). Si vous souhaitez avoir accès à toute la logique liée à la sélection, le modèle de sélection est l'endroit idéal pour commencer à chercher