GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

[Resolvido]Incompatible types void can not be converted em Object

mysql
java
sql
programação
postgresql
Tags: #<Tag:0x00007f2600d9b0c0> #<Tag:0x00007f2600d9ab20> #<Tag:0x00007f2600d9a990> #<Tag:0x00007f2600d9a5a8> #<Tag:0x00007f2600d99040>

#1

Estou desenvovlendo uma aplicação java para desktop e gostaria de pegar o ultimo registro codigo e somar +1 de uma chamada de acordo com o nome e adicionar em uma JTable mas ao adicionar os dados na table ele não aidiciona o ultimo registro na jTable.

Fica asssim minha table, era pra apresentar visitas 2 devido o ultimo codigo ser 1 e eu ter acrescentando +1.

  DefaultTableModel modelo,modelo2;
public DefaultTableModel comboxTableVisitas(String nome,String data){

    try {
        con = Conecta.conexao();
    } catch (ClassNotFoundException ex) {
        Logger.getLogger(ChamadasDAO.class.getName()).log(Level.SEVERE, null, ex);
    }

    String[] titulos = {"Defeito", "data entrada", "Data saida","Hora de entrada", "Hora de Saida", "Horas Trabalhadas", "Word", "Excel", "Power", "Outlook","Visitas"};

   

    modelo = new DefaultTableModel(null, titulos);
    
  String sql="SELECT vi_cod, cha_nome,vi_dataentra,vi_datasaida,vi_defeito,vi_horainicio,vi_horafinal,vi_horastrabalhadas, vi_word, vi_excel,vi_power,vi_qtde, vi_outlook FROM tb_visitas where cha_nome like  '%" + nome + "%' and vi_dataentra like '%" + data +"%'";


    try {
        pst = con.prepareStatement(sql);
        rs = pst.executeQuery();

        if (rs.next()) {
            String compararData;
            String dataentrada =jFormattedDataEntrada.getText();
            String datasaida = jFormattedDataSaida.getText();
            String horainicio = txtHoraInicio.getText();
            String horafinal = txtHorarioFinal.getText();
            String resultado = txtResul.getText();
            String defeito=txtDescricao.getText();
            String word="";
            String excel="";
             String power="";
              String outlook="";
            if(checkboxWord.isSelected()){
               word+=checkboxWord.getText();
            }
            
            if( checkboxExcel.isSelected()){
              excel+=checkboxExcel.getText();
            }
            
                            
            if( jCheckBoxPower.isSelected()){
              power+=jCheckBoxPower.getText();
            }
            
            if( jCheckBoxOutllok.isSelected()){
             outlook+=jCheckBoxOutllok.getText();
            }
            
         Visitas visi= montaVisitas();
    String resp3 = new VisitasDAO().cadastrarVisita(visi);
  VisitasDAO vi= new VisitasDAO();

   
    JOptionPane.showMessageDialog(this, resp3);                  
       modelo.addRow(new Object[]{defeito,dataentrada, datasaida, horainicio, horafinal, resultado, word,excel,power,outlook, "" + vi.Codigo(nome)});

            
        }
       

        return modelo;
    } catch (Exception e) {
        JOptionPane.showConfirmDialog(null, "Erro ao mostrar Dados das visitas" + e);
        return null;
    }

}

Classe VisitasDAO que contem o método Codigo

public Visitas Codigo(String nome) {
Visitas vi= new Visitas();
    try {
        con = Conecta.conexao();
    } catch (ClassNotFoundException ex) {
        Logger.getLogger(Visitas.class.getName()).log(Level.SEVERE, null, ex);
    }

    try {


        String sql = "SELECT max(vi_cod) AS vi_cod FROM tb_chamadas where cha_nome like '%"+ nome +"%'";
        pst = con.prepareStatement(sql);
        rs = pst.executeQuery();
        if (rs.next()) {
           vi.setVi_cod(Integer.parseInt(rs.getString("vi_cod")) + 1);

        }
         

    } catch (Exception e) {
        System.out.println("Erro" + e);
    }
   return vi;

}

#2

Após adicionar um novo item, tem que avisar o JTable que o modelo foi atualizado:

modelo.addRow(row);
jtable.repaint();

não sei se é a forma correta, mas geralmente funciona.