java - 将 DefaultTableModel 中的数据隐藏到 GUI

标签 java swing jtable indexoutofboundsexception defaulttablemodel

我有一个 DefaultTableModel,有 4 列,其中一列是 ID,我不想在表格 View 上显示它,但我需要跟踪 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);
        }
    }
}

这就是我填充模型的方式,我想要隐藏的列是:nuevaFila[3]

我已经尝试过这种方法:

public void actionPerformed(ActionEvent arg0) {
                if (tableCruceros.getSelectedRow() != -1) {
                    btSeleccion.setEnabled(true);
                    int fila = tableCruceros.getSelectedRow();
                    String cod = (String) ((Vector) modeloTabla.getDataVector().elementAt(fila)).elementAt(3);
                    crucero = agencia.findByCod(cod);
                    agencia.leerFicheroBarcos(crucero.getCodigoBarco());
                }
                mostrarVentanaCrucero();
            }
        });

但它引发了我这个异常:

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 是 -> String cod = (String) ((Vector) modeloTabla.getDataVector().elementAt(fila)).elementAt(3);

PD。抱歉,如果有任何语法或拼写错误

最佳答案

感谢@MadProgrammer 和@Hovercraft Full Of Eels,最后我尝试删除该列。

我使用的代码:

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

它似乎有效:)

关于java - 将 DefaultTableModel 中的数据隐藏到 GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34569691/

相关文章:

java - 如何修改此代码以处理包含字符和整数的输入文本?

java - 如何正确设置截锥体投影?

java - 静态 block 和变量

Java 绘制图像 JPanel : Working but weird

java - 当表数据更改时,JTable 多选会失去选择

java - Android java.lang.illegalargumentException 无法找到 native 库 main

java - 在 Border 和 JFrame 之间留出间隙

java - 线程执行期间绘制的额外虚拟组件

java - 我希望我的 JTable 位于中心

java - 如何将图像路径转换为JLabel上的图像