ERRO no DELETE

Tenho o seguinte procedimento para remover do banco, ele remove certinho, o programa continua, mas ele da o seguinte erro:

Procedimento:

public void removeProdutos(String palavra){
   Connection con = null; 
    try 
         { 

             String driverName = "org.postgresql.Driver";            
             Class.forName(driverName); 
             String serverName = servidor;
             String mydatabase = "luguipi";
             String url = "jdbc:postgresql://" + serverName +  "/" + mydatabase;
             String username = "postgres";
             String password = "postgres";    

             con = DriverManager.getConnection(url, username, password);
            
            java.sql.Statement stmt = con.createStatement();
            stmt.executeQuery("delete from produtos WHERE referencia = '"+palavra.toUpperCase()+"'");      
       
         //esse JOption ele nao aparece!!!! 

           JOptionPane.showMessageDialog(null,"Remoção Efetuada com Sucesso!","SUCESSO",1);
         } 
        catch (ClassNotFoundException ex) {
            Logger.getLogger(Metodos.class.getName()).log(Level.SEVERE, null, ex);
        }         catch(SQLException e) 
         { 
             // se houve algum erro, uma exceção é gerada para informar o erro 
             e.printStackTrace(); //vejamos que erro foi gerado e quem o gerou 
         } 
         finally 
         { 
            try 
            { 
               con.close(); 
            } 
            catch(SQLException onConClose) 
            { 
                System.out.println("Houve erro no fechamento da conexão"); 
                onConClose.printStackTrace(); 
            } 
         } // fim do bloco try-catch-finally     
    }

esse é o erro:

org.postgresql.util.PSQLException: Nenhum resultado foi retornado pela consulta.
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:255)
at Controle.Metodos.armazenaCadastroProdutos(Metodos.java:762)
at Interface.Produtos.CadastroProdutos.botaoCadastrarActionPerformed(CadastroProdutos.java:289)
at Interface.Produtos.CadastroProdutos.access$200(CadastroProdutos.java:19)
at Interface.Produtos.CadastroProdutos$3.actionPerformed(CadastroProdutos.java:110)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6041)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5806)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4413)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2440)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

executeQuery não é o mais indicado para delete, utilize executeUpdate(sql).

com o executeUpdate(sql);

ele executou o JOption depois mas o erro de nenhum resultado foi retorenado pela consulta ainda continua.
o que pode ser??

Ve se assim funciona:

try{ stmt.executeUpdate("delete from produtos WHERE referencia = '"+palavra.toUpperCase()+"'"); }catch(PSQLException ex){ //Não faz nada }

A excessão está sendo lançada porque o sql não está “atualizando” nenhuma linha do banco, daí retorna a excessão avisando que não atualizou nada, entendeu o porque da excessão?

entendi o porque, mas ele sempre vai retornar esse tipo de erro?