Файлы Seleccionar варьирующегося alternas en una JTable

Напоминание Al que selecciono una fila y le doy нажимает en el boton enviar se graba correctamente pero cuando selecciono, варьируется соло файлов se graba una fila, Комо Ариа жабы para que se que grabaran las файлы que selecciono. Довод "против" Comparto una imagen y el codigo el que grabo y selecciono las filas.

protected void btnEnviarActionPerformed(ActionEvent arg0) {
        //se crea una variable para que contenga la fila seleccionada de la tabla
        int i = tbDocTransferir.getSelectedRow();
        //hacemos una condicion de que si la varialbe i es -1 es que no se ha seleccionado ninguna 
        //fila
        if (i == -1){
            JOptionPane.showMessageDialog(null,"Seleccione la fila que desea solicitar"); 
        }
        else{
            String codArchivo = (String) tbDocTransferir.getValueAt(i, 0);
            String codCentroCosto = (String) tbDocTransferir.getValueAt(i, 1);
            String tipoArchivo = (String) tbDocTransferir.getValueAt(i, 4);
            String doc = (String) tbDocTransferir.getValueAt(i, 6);
            String nivelArchivo = (String) tbDocTransferir.getValueAt(i, 8);
            String lote = (String) tbDocTransferir.getValueAt(i, 10);
            String fila = (String) tbDocTransferir.getValueAt(i, 11);
            String usuarioSolicita = txtUsuarioSolicita.getText();
            String fechaSolicita = txtFechaSolicita.getText();
            Objeto object = (Objeto) cboCentroCostoDestino.getSelectedItem();
            String centroCostoDestino = ((Objeto)object).getCodigo();
            String centroCostoOrigen = txtCodCentroCosto.getText();

            MovimientoArchivoDTO x = new MovimientoArchivoDTO();
            x.setC_c_archivo(codArchivo);
            x.setC_ccosto(codCentroCosto);
            x.setC_ccosto_origen(centroCostoOrigen);
            x.setC_ccosto_destino(centroCostoDestino);
            x.setC_tipo_doc(tipoArchivo);
            x.setC_t_doc(doc);
            x.setC_c_nivel_archivo(nivelArchivo);
            x.setLote(lote);
            x.setFila(fila);
            x.setC_c_usuario_solicita(usuarioSolicita);
            x.setD_dt_solicita(fechaSolicita);
            int estado = xy.RegistrarSolicitudArchivo_SA(x);
            if (estado == 1){
                mensaje("El Documento se solicitó correctamente");
            }
            else
                mensaje("Error en enviar");
        }
    }

introducir la descripción de la imagen aquí

1
задан 30.01.2017, 12:46
0 ответов

Одна JTable по умолчанию работай в способе MULTIPLE_INTERVAL_SELECTION если ты это не меняешь. Следующие способы существуют:

  • ListSelectionModel. SINGLE_SELECTION - Смоги выбирать только индекс
  • ListSelectionModel. SINGLE_INTERVAL_SELECTION - смоги выбирать индексы последующие
  • ListSelectionModel. MULTIPLE_INTERVAL_SELECTION - смоги выбирать без ограничения

То, что он перемещает, состоит в том, что ты используешь tabla.getSelectedRow() что только возвращает тебе число последней отборной линии. то, что ты ищешь вероятно:

int[] seleccionados = tabla.getSelectedRows();
1
ответ дан 03.12.2019, 17:29

Я надеюсь, что он подает тебя.

class SharedListSelectionHandler implements ListSelectionListener {
    public void valueChanged(ListSelectionEvent e) { 
        ListSelectionModel lsm = (ListSelectionModel)e.getSource();

        int firstIndex = e.getFirstIndex();
        int lastIndex = e.getLastIndex();
        boolean isAdjusting = e.getValueIsAdjusting(); 
        output.append("Event for indexes "
                      + firstIndex + " - " + lastIndex
                      + "; isAdjusting is " + isAdjusting
                      + "; selected indexes:");

        if (lsm.isSelectionEmpty()) {
            output.append(" <none>");
        } else {
            // Find out which indexes are selected.
            int minIndex = lsm.getMinSelectionIndex();
            int maxIndex = lsm.getMaxSelectionIndex();
            for (int i = minIndex; i <= maxIndex; i++) {
                if (lsm.isSelectedIndex(i)) {
                    output.append(" " + i);
                }
            }
        }
        output.append(newline);
        output.setCaretPosition(output.getDocument().getLength());
    }
}

Больше информации: How to Write в Лист Селектион Listener

1
ответ дан 03.12.2019, 17:29