【问题标题】:How to get the selected row from table model?如何从表模型中获取选定的行?
【发布时间】:2012-08-29 00:10:17
【问题描述】:

如何从表格模型中获取选定的行? 我尝试了以下....

checkBoxes[t].addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent  e) {

    int index = -1;
    for (int i = 0; i < checkBoxes.length; i++) {
      if (checkBoxes[i] == e.getSource()) {

        String Status=null ;
        DbUtility ViewAbsenties=new DbUtility();
        ViewAbsenties.loadDriver();
        ViewAbsenties.connect();

        TableModel tm;
        tm = table3.getModel();

        if (checkBoxes[i].isSelected() == true) {
          Status  =(String) tm.getValueAt(i,8);
          System.out.println("Status : " + Status );

        }
      }
    }
  }
}

当我运行上述代码时,我收到以下错误。

  Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1 >= 1
    at java.util.Vector.elementAt(Unknown Source)
    at javax.swing.table.DefaultTableModel.getValueAt(Unknown Source)
    at EmployeeLeave$10$1.actionPerformed(EmployeeLeave.java:490)
    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.JToggleButton$ToggleButtonModel.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$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$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)

【问题讨论】:

  • 请对代码块使用一致且符合逻辑的缩进。
  • 您的错误提示您尝试访问的行不存在
  • 您的表格是否至少有 9 列?您是否尝试过记录您认为对象在哪一行,并根据您对模型的解释进行验证?
  • 这个问题是关于一些不同的东西(选择是复选框,而不是表选择,并且寻求价值而不是索引)但是有些人看着标题可能希望找到这个:getting selected row through AbstractTableModel

标签: java swing jtable tablemodel indexoutofboundsexception


【解决方案1】:
  1. 存在三个潜在问题

  2. 如需更好的帮助,请尽快发帖SSCCE

【讨论】:

    猜你喜欢
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 2021-09-18
    • 2010-12-12
    • 2013-07-11
    • 2017-06-01
    相关资源
    最近更新 更多