Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 以编程方式选择JTable中的行_Java_Swing_Jtable_Row_Selected - Fatal编程技术网

Java 以编程方式选择JTable中的行

Java 以编程方式选择JTable中的行,java,swing,jtable,row,selected,Java,Swing,Jtable,Row,Selected,启动应用程序时,不会选择任何行。但是我想表明第一行已经被选中 如何做到这一点?是否需要在JTable中设置行的颜色 更新: 我尝试了table.setRowSelectionInterval(0,0)。我知道它应该可以工作,但有一条错误消息: Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Row index out of range at javax.swing.JTable.boun

启动应用程序时,不会选择任何行。但是我想表明第一行已经被选中

如何做到这一点?是否需要在
JTable
中设置行的颜色

更新:
我尝试了table.setRowSelectionInterval(0,0)。我知道它应该可以工作,但有一条错误消息:

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)
线程“AWT-EventQueue-0”java.lang.IllegalArgumentException中的异常:行索引超出范围 位于javax.swing.JTable.boundRow(未知源) 位于javax.swing.JTable.setRowSelectionInterval(未知源) 在cpn_gui.OptPanel.createForm(OptPanel.java:124) 在cpn_gui.OptPanel(OptPanel.java:50) 在cpn_gui.Login$1.actionPerformed(Login.java:62) 在javax.swing.AbstractButton.fireActionPerformed(未知源) 位于javax.swing.AbstractButton$Handler.actionPerformed(未知源) 在javax.swing.DefaultButtonModel.fireActionPerformed(未知源) 位于javax.swing.DefaultButtonModel.setPressed(未知源) 位于javax.swing.plaf.basic.BasicButtonListener.mouseReleased(未知源代码) 位于java.awt.Component.ProcessMouseeEvent(未知源) 位于javax.swing.JComponent.ProcessMouseeEvent(未知源) 位于java.awt.Component.processEvent(未知源) 位于java.awt.Container.processEvent(未知源) 位于java.awt.Component.dispatchEventImpl(未知源) 位于java.awt.Container.dispatchEventImpl(未知源) 位于java.awt.Component.dispatchEvent(未知源) 位于java.awt.LightweightDispatcher.RetargetMouseeEvent(未知源) 位于java.awt.LightweightDispatcher.ProcessMouseeEvent(未知源) 位于java.awt.LightweightDispatcher.dispatchEvent(未知源) 位于java.awt.Container.dispatchEventImpl(未知源) 位于java.awt.Window.dispatchEventImpl(未知源) 位于java.awt.Component.dispatchEvent(未知源) 位于java.awt.EventQueue.dispatchEventImpl(未知源) 位于java.awt.EventQueue.access$000(未知源) 在java.awt.EventQueue$1.run处(未知源) 在java.awt.EventQueue$1.run处(未知源) 位于java.security.AccessController.doPrivileged(本机方法) 位于java.security.AccessControlContext$1.doIntersectionPrivilege(未知源) 位于java.security.AccessControlContext$1.doIntersectionPrivilege(未知源) 在java.awt.EventQueue$2.run处(未知源) 在java.awt.EventQueue$2.run处(未知源) 位于java.security.AccessController.doPrivileged(本机方法) 位于java.security.AccessControlContext$1.doIntersectionPrivilege(未知源) 位于java.awt.EventQueue.dispatchEvent(未知源) 位于java.awt.EventDispatchThread.pumpOneEventForFilters(未知源) 位于java.awt.EventDispatchThread.pumpEventsForFilter(未知源) 位于java.awt.EventDispatchThread.pumpEventsForHierarchy(未知源) 位于java.awt.EventDispatchThread.pumpEvents(未知源) 位于java.awt.EventDispatchThread.pumpEvents(未知源) 位于java.awt.EventDispatchThread.run(未知源) 您使用的是
JTable
,不要试图弄乱颜色

一些选择方法可直接在
JTable
上使用(如
setRowSelectionInterval
)。如果您希望访问所有与选择相关的逻辑,则可以从开始查找的位置开始

您可以调用:


选择第一行。

这是一篇老文章,但我最近遇到了这个问题

选择特定的时间间隔

正如@aleroot已经提到的,通过使用

table.setRowSelectionInterval(index0, index1);
您可以指定应选择的间隔

向现有选择添加间隔

您还可以保留当前选择,并在此处使用此选项添加其他行

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

这行代码还选择指定的间隔。无论是否已经选择了该间隔,都会选择其中的一部分

我尝试了table.setRowSelectionInterval(1,1),但它表示“行索引超出范围”,尽管该表已从DB填充。有什么想法吗?就像Java中的所有东西一样,编号从第0行开始,而不是从第1行开始。因此,将其更改为
setRowSelectionInterval(0,0)
请查看我文章中的更新。我发布了一条错误消息。可能有什么问题?我的代码如下所示:QueryTableModel tableModel=new QueryTableModel();JTable table=新的JTable(tableModel);table.setRowSelectionInterval(0,0);在调用table.setRowSelectionInterval(0,0)之前,必须确保表中至少存在一行,否则将出现此错误。填充表格后调用table.setRowSelectionInterval(0,0)…这是更一般的答案,包括连续和非连续行选择。这对我有用。
table.getSelectionModel().addSelectionInterval(index0, index1);