Violação da chave estrangeira

Olá pessoal estou com um probleminha estou criando um cadastro de produto e nele tenho uma jcomobox contendo o grupo dos produtos, estou querendo pegar a string da comobox porem está dando os seguintes erros:

Erro ao inserir dados resulteset não está posicionado na primereira posição talvez tenha que chamar o next.
o segundo erro é:
Erro ao inserir produto/ERRO:postgresql.utilPSQLExeption inseção ou atualização da tabela "cadpro"viola a restrinção de chave estrangeira “g_codtit” detalhe (g_codtit)=0 não está presente na tabela cadgrupo

segue o codigo
package br.com.lenasoft.controle;

import br.com.lenasoft.modelo.ModeloProdutos;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

/**
*

  • @author Marcio Oliveira
    */
    public class ControleProduto{

ConectaBanco conexao = new ConectaBanco();
ModeloProdutos mod = new ModeloProdutos();

//int CodFornecedor;
// int MarcaProduto;
int GrupoProdutos;

public void inserirProdutos(ModeloProdutos mod){

buscaCodGrupo(mod.getFornecedorProduto());

// buscamarca(mod.getMarca());
conexao.conexao();

 try {
     PreparedStatement pst= conexao.conn.prepareStatement("insert into cadpro(nome_produto,preco_copra,preco_venda,qtd_produto,g_codtit)values(?,?,?,?,?)");
     pst.setString(1,mod.getNomeproduto());
     pst.setFloat(2,mod.getPrecoCompra());
     pst.setFloat(3,mod.getPrecoVenda());
     pst.setInt(4,mod.getQuantidade());
    // pst.setInt (5,mod.getMargemLucro());
    // pst.setInt(6, MarcaProduto);
     pst.setInt(5,GrupoProdutos);
     pst.execute();
     JOptionPane.showMessageDialog(null, "Dados cadastrado com sucesso!!");
 } catch (SQLException ex) {
     JOptionPane.showMessageDialog(null, "Erro ao inserir produto/ERRO:"+ex);
 }
 
 conexao.desconecta();

}

public void buscaCodGrupo(String nome){

conexao.conexao();

 try {
     conexao.executaSQL("select * from cadgrup where g_nome='"+nome+"'");
     conexao.rs.next();
     GrupoProdutos = conexao.rs.getInt("g_codtit");
      
 } catch (SQLException ex) {
     JOptionPane.showMessageDialog(null, "Erro ao Buscar codigo do grupo /Erro:"+ex);
 }
   conexao.desconecta();

}

A tabela cadgrupo (localizada no banco de dados) não possui uma linha com o código 0, logo não há chave estrangeira a ser associada.
Quando você tenta inserir um dado na tabela cadpro sem a chave estrangeira preexistente na tabela cadgrupo, a operação não é realizada.
Você deve inserir primeiro a informação na tabela cadgrupo e depois você insere a informação na tabela cadpro, pois quando o sgbd for procurar a chave estrangeira ela existe, ai não da erro.