CheckBox в JTable - Java [дубликат]

Как сделать так, чтобы, когда я выбираю флажок одной строки и выбирал другой флажок другой строки, он сохранялся в переменной, а когда я нажимал кнопку отправки, он отправлялся в другую таблицу для проверки. introducir la descripción de la imagen aquí

Это код создания таблицы:

tbDocTransferir.setModel(new DefaultTableModel(
            new Object[][] {
            },
            new String[] {
                "C. Costo", "Cod. SD", "Tipo de Archivo", "N\u00B0 Doc.", "Permanencia", "Tipo de Nivel de Archivo", "Per. Ret.", "Solicitar"
            }
        ) {
            @SuppressWarnings("rawtypes")
            Class[] columnTypes = new Class[] {
                Object.class, Object.class, Object.class, Object.class, Object.class, Object.class, Object.class, Boolean.class
            };
            @SuppressWarnings({ "unchecked", "rawtypes" })
            public Class getColumnClass(int columnIndex) {
                return columnTypes[columnIndex];
            }
            boolean[] columnEditables = new boolean[] {
                false, false, false, false, false, false, false, true
            };
            public boolean isCellEditable(int row, int column) {
                return columnEditables[column];
            }
        });
        tbDocTransferir.getColumnModel().getColumn(0).setPreferredWidth(93);
        tbDocTransferir.getColumnModel().getColumn(1).setPreferredWidth(87);
        tbDocTransferir.getColumnModel().getColumn(2).setPreferredWidth(125);
        tbDocTransferir.getColumnModel().getColumn(4).setPreferredWidth(95);
        tbDocTransferir.getColumnModel().getColumn(5).setPreferredWidth(150);
        tbDocTransferir.getColumnModel().getColumn(6).setPreferredWidth(92);
        tbDocTransferir.getColumnModel().getColumn(7).setPreferredWidth(61);
        tbDocTransferir.setDefaultRenderer(Object.class, new Mirender());
        scrollPane.setViewportView(tbDocTransferir);
        tbDocTransferir.setRowSelectionAllowed(true);
        tbDocTransferir.setColumnSelectionAllowed(false);

Этот код предназначен для информации, которая находится в базе данные приведены в таблице:

void ListarDocumento(String centroCosto){
            ArrayList<ServicioArchivisticoDTO> doc = x.ListarDocumento(centroCosto);
            DefaultTableModel model = (DefaultTableModel) tbDocTransferir.getModel();
            model.setRowCount(0);
            for (ServicioArchivisticoDTO s : doc){
                Object fila[] = {s.getCentroCosto().getC_t_costo(), s.getSerieDocumental().getC_c_sd(), s.getTipoArchivo().getC_t_tipo_archivo(),
                                    s.getArchivo().getC_t_doc(), s.getSerieDocumental().getN_i_tiempo_retencion()+" años", s.getNivelArchivo().getC_t_nivel_archivo(),
                                    s.getPeriodo_retencion()};
                model.addRow(fila);
            }
        }
0
задан 12.01.2017, 20:13
0 ответов

Уже давно как я не использую Swing в Java, но если я плохо не помню tenes, который listener осуществлять в checkbox, чтобы мочь возвращать объект, который ты вычеркиваешь. Отсюда ты мог бы добавлять это к списку и наполнять другую таблицу. Привет!

0
ответ дан 03.12.2019, 17:42

Используя функцию TableModelListener, ты мог бы делать их следующими, используя getRowCount() чтобы получать полное число линий, которое есть в твоей таблице и getValueAt() который получит стоимость в указанном положении.

//obtenemos el modelos de tu tabla y le agregamos el listener
tbDocTransferir.getModel().addTableModelListener(new checkBoxListener());

public class checkBoxListener implements TableModelListener {

   public void tableChanged(TableModelEvent e) {
    int fila = e.getFirstRow();
    int columna = e.getColumn();
    //verifica si la columna es de tipo boolean
    if (columna == BOOLEAN_COLUMN) {
        /*
            obtenemos el modelo de la tabla
            este te servira al igual para obtener los valores de tu tabla,
            dependiendo de la fila y columna que desees tomar.
        */
        TableModel model = (TableModel) e.getSource();
        Boolean checked = (Boolean) model.getValueAt(fila, columna);
        //verifica si esta seleccionada
        if (checked) {
            //aqui haces la insercion del registro a una nueva tabla
        }
   }
}
0
ответ дан 03.12.2019, 17:42

Теги

Похожие вопросы