Par programmation, sélectionnez une ligne dans la JTable

lorsque l'application est lancée, aucune des lignes n'est sélectionnée. Mais je voudrais montrer que la première ligne est déjà sélectionné.

Comment faire cela? Ai-je besoin pour définir la couleur d'une ligne dans JTable?

mise à Jour: J'ai essayé de table.setRowSelectionInterval (0,0). Je sais que ça 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.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.access0(Unknown Source)
    at java.awt.EventQueue.run(Unknown Source)
    at java.awt.EventQueue.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext.doIntersectionPrivilege(Unknown Source)
    at java.security.AccessControlContext.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.run(Unknown Source)
    at java.awt.EventQueue.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext.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)
46
demandé sur Klausos Klausos 2011-12-29 01:00:54

3 réponses

Vous pouvez le faire en appelant setRowSelectionInterval:

table.setRowSelectionInterval(0, 0);

pour sélectionner la première ligne.

88
répondu aleroot 2018-04-13 17:00:07

C'est un vieux post, mais je suis tombé sur cette récemment

sélection d'un intervalle spécifique

table.setRowSelectionInterval(index0, index1);

Vous pouvez spécifier un intervalle, qui doit être sélectionné.

Ajout d'un intervalle à la sélection existante

vous pouvez aussi garder la sélection courante, et simplement ajouter des lignes supplémentaires en utilisant ici

table.getSelectionModel().addSelectionInterval(index0, index1);

Cette ligne de code sélectionne en outre l'intervalle spécifié. Peu importe si cet intervalle est déjà sélectionné, des parties de celui-ci sont sélectionnées.

10
répondu rst 2016-02-04 15:38:47

Vous utilisez le API disponibleJTable et n'essayez pas de jouer avec les couleurs.

Certaines méthodes de sélection sont disponibles directement sur le JTable (le