Java 将数据从DefaultTableModel隐藏到GUI

Java 将数据从DefaultTableModel隐藏到GUI,java,swing,jtable,indexoutofboundsexception,defaulttablemodel,Java,Swing,Jtable,Indexoutofboundsexception,Defaulttablemodel,我有一个DefaultTableModel,它有4列,其中一列是ID,我不想在表的视图中显示它,但我需要在用户单击行时跟踪ID private void añadeFilas(boolean europa, boolean caribe) { Object[] nuevaFila = new Object[4]; for (int i = 0; i < agencia.getCruceros().size(); i++) { String zona = ag

我有一个
DefaultTableModel
,它有4列,其中一列是ID,我不想在表的视图中显示它,但我需要在用户单击行时跟踪ID

private void añadeFilas(boolean europa, boolean caribe) {
    Object[] nuevaFila = new Object[4];
    for (int i = 0; i < agencia.getCruceros().size(); i++) {
        String zona = agencia.getCruceros().get(i).getZona();
        if ((europa && zona.equals("Europa")) || (caribe && zona.equals("Caribe"))) {
            nuevaFila[0] = agencia.getCruceros().get(i).getZona();
            nuevaFila[1] = agencia.getCruceros().get(i).getDenominacion();
            nuevaFila[2] = agencia.getCruceros().get(i).getPuertoSalida();
            nuevaFila[3] = agencia.getCruceros().get(i).getCodigo();

            modeloTabla.addRow(nuevaFila);
        }
    }
}
但这给我带来了一个例外:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 3 >= 3
at java.util.Vector.elementAt(Unknown Source)
at igu.VentanaPrincipal$5.actionPerformed(VentanaPrincipal.java:238)
238是->字符串cod=(字符串)((向量)modeloTabla.getDataVector().elementAt(fila)).elementAt(3)


警察局。很抱歉,如果有语法或拼写错误

谢谢@MadProgrammer和@Hovercraft-Full-Of-Eels,最后我尝试删除该专栏

我使用的代码是:

TableColumn columna = tableCruceros.getColumn("Codigo");
tableCruceros.removeColumn(columna);

这似乎是可行的:)

创建模型,将其应用到表中,获取TableColumnModel并从中删除ID列,或者创建一个表示数据的POJO,编写一个能够使用它的TableModel,而不显示@MadProgrammer所述的IDI回显。如果采用后一种方法,则可能会将POJO的实例用作模型中的行,如果是这样,则可能希望模型类扩展AbstractTableModel而不是DefaultTableModel。
TableColumn columna = tableCruceros.getColumn("Codigo");
tableCruceros.removeColumn(columna);