Java swing:无法从JTable打开弹出框

Java swing:无法从JTable打开弹出框,java,swing,jtable,Java,Swing,Jtable,我目前的项目是简单的电子邮件客户端。现在im done主窗口显示收件箱中的邮件列表。下一步是打开带有消息的新窗口,单击带有消息列表的Jtable。 但当单击表中的行时,我会遇到此异常: 22 Test problem "Alb." <test@gmail.com> Hello My PC is not working Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException:4

我目前的项目是简单的电子邮件客户端。现在im done主窗口显示收件箱中的邮件列表。下一步是打开带有消息的新窗口,单击带有消息列表的Jtable。 但当单击表中的行时,我会遇到此异常:

22
Test problem
"Alb." <test@gmail.com>
Hello 

My PC is not working

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException:4 >= 4
at java.util.Vector.elementAt(Vector.java:470)
at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:294)
at sun.swing.SwingUtilities2.convertColumnIndexToModel(SwingUtilities2.java:1896)
at javax.swing.JTable.convertColumnIndexToModel(JTable.java:2582)
    at javax.swing.JTable.getValueAt(JTable.java:2717)
    at CheckEmail$1.mouseClicked(CheckEmail.java:129)
    at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)
    at java.awt.Component.processMouseEvent(Component.java:6519)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3312)
    at java.awt.Component.processEvent(Component.java:6281)
    at java.awt.Container.processEvent(Container.java:2229)
    at java.awt.Component.dispatchEventImpl(Component.java:4872)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4501)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    at java.awt.Container.dispatchEventImpl(Container.java:2273)
    at java.awt.Window.dispatchEventImpl(Window.java:2719)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747)
    at java.awt.EventQueue.access$300(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:706)
    at java.awt.EventQueue$3.run(EventQueue.java:704)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:77)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:720)
    at java.awt.EventQueue$4.run(EventQueue.java:718)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:77)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:717)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

你看到问题了吗

int column = target.getSelectedRow();
具体来说,当您打算使用
getSelectedColumn()
时,您正在使用
getSelectedRow()
。e、 例如,它应该是:

int column = target.getSelectedColumn();

此练习的关键是不要忽略stacktrace,而是要仔细查看它告诉您要查看的行:
在CheckEmail$1.mouseClicked(CheckEmail.java:129)

投票关闭是一个印刷错误,而不是一个真正的编程逻辑错误。是的,这是我的错。现在程序可以正常运行了。非常感谢。
int column = target.getSelectedRow();
int column = target.getSelectedColumn();