Check if you have reached the last row of the table

0

I am using this code to do an approved or disapproved check, but when it arrives on the last line, it is not checking if it is on the last line and does not give me the result.

I would like to know how to check if you have reached the last row of the table.

   int coluna = CadresultadoTabela.getSelectedColumn();

    if (evt.getKeyCode() == KeyEvent.VK_TAB) {
        int linha = CadresultadoTabela.getSelectedRow();
        Object obj = modelo.getValueAt(linha, 30);
        Object obj2 = modelo.getValueAt(linha, 31);
        Object obj3 = modelo.getValueAt(linha, 32);

        if ((obj == null || obj.toString().equals("")) && (obj2 == null || obj2.toString().equals(""))) {
            TabPreenchimento();
        } else {
            VerificarResultdo();
            if (modelo.getValueAt(linha, 33).equals("Reprovado")) {
                if (obj3 == null || modelo.getValueAt(linha, 32).equals("")) {
                    CadresultadoTabela.changeSelection(linha, 32, false, false);
                } else {
                    TabPreenchimento();
                }
            } else {
                TabPreenchimento();
            }
        }
    } else if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
        int linha = CadresultadoTabela.getSelectedRow() - 1;
        Object obj = modelo.getValueAt(linha, 30);
        Object obj2 = modelo.getValueAt(linha, 31);
        Object obj3 = modelo.getValueAt(linha, 32);

        if ((obj == null || obj.toString().equals("")) && (obj2 == null || obj2.toString().equals(""))) {
            //VERIFICA SE A SELECAO ESTA NA ULTIMA LINHA
            if (CadresultadoTabela.getSelectedRow() != CadresultadoTabela.getRowCount()) {
                EnterPreenchimento();
            } else {
                TabPreenchimento();
            }
        } else {
            //VERIFICA SE A SELECAO ESTA NA ULTIMA LINHA
            if (CadresultadoTabela.getSelectedRow() != CadresultadoTabela.getRowCount()) {
                VerificarResultdoEnter();
            } else {
                VerificarResultdo();
            }
            if (modelo.getValueAt(linha, 33).equals("Reprovado")) {
                if (obj3 == null || modelo.getValueAt(linha, 32).equals("")) {
                    CadresultadoTabela.changeSelection(linha, 32, false, false);
                } else {
                    //VERIFICA SE A SELECAO ESTA NA ULTIMA LINHA
                    if (CadresultadoTabela.getSelectedRow() != CadresultadoTabela.getRowCount()) {
                        EnterPreenchimento();
                    } else {
                        TabPreenchimento();
                    }
                }
            } else {
                //VERIFICA SE A SELECAO ESTA NA ULTIMA LINHA
                if (CadresultadoTabela.getSelectedRow() != CadresultadoTabela.getRowCount()) {
                    EnterPreenchimento();
                } else {
                    TabPreenchimento();
                }
            }
        }
    }
    
asked by anonymous 03.10.2017 / 03:44

1 answer

1

To check if the last row is selected, you need to compare the index of the selected row with table.getRowCount() -1 , since the indexes start at 0.

if(table.getSelectedRow() == table.getRowCount() -1){

    //ultima linha selecionada

} 

I think in your code, the correct way to check it something like this:

if (CadresultadoTabela.getSelectedRow() == CadresultadoTabela.getRowCount() - 1)

Remember that if you have some kind of filter in the table ( RowSorter ), you need to convert index from the selection to the equivalent in the model .

    
03.10.2017 / 03:56