Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Problema con Jframe, se me congelan los Jframe.

Estas en el tema de Problema con Jframe, se me congelan los Jframe. en el foro de Java en Foros del Web. Hola equipo, comparto un problema que tengo en Java swing: Resulta que tengo dos Jframe, El JFrame1 tiene dentro un boton que llama un metodo ...
  #1 (permalink)  
Antiguo 05/12/2014, 23:25
 
Fecha de Ingreso: noviembre-2014
Mensajes: 26
Antigüedad: 10 años
Puntos: 0
Pregunta Problema con Jframe, se me congelan los Jframe.

Hola equipo, comparto un problema que tengo en Java swing:

Resulta que tengo dos Jframe,

El JFrame1 tiene dentro un boton que llama un metodo encargado de ejecutar un script sql, el script se encarga de hacer un truncate a la base de dato y despues hace un load data file...para alimentar mi tabla con un fichero csv. Cuando ejecuto la instruccion, me funciona perfecto.

El JFrame2 lo uso simplemente para afichar las diferentes vistas usando procedimiento. Que funciona todo bien.

Cual es el problema: ?

cuando ejecuto mi JFrame1 como main class y llamo mi funcion, me corre todo perfecto, pero cuando ejecuto mi JFrame2 como main class y desde mi JFrame2 llamo mi JFrame1 y ejecuto la funcion dentro del JFrame1 entonces se me congela la aplicacion.......

Gracias por su tiempo:
  #2 (permalink)  
Antiguo 06/12/2014, 00:17
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Problema con Jframe, se me congelan los Jframe.

Hola:

Si solo se te congela la aplicación hasta que termina la función, posiblemente el motivo sea que estás bloqueando el hilo de java que se encarga de atender a los eventos de ratoón y repintado de ventanas (EDT o Event Dispatch Thread). La solución es lanzar un hilo aparte para ejecutar esa función que tarda mucho.

Aquí tienes más info y un ejemplo http://chuwiki.chuidiang.org/index.p...ead%29_de_Java

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 07/12/2014, 15:33
 
Fecha de Ingreso: noviembre-2014
Mensajes: 26
Antigüedad: 10 años
Puntos: 0
Pregunta Respuesta: Problema con Jframe, se me congelan los Jframe.

Gracias chuidiang....

Yo estoy trabajando con procedimientos almacenados, ellos solo afichan vistas y se cargan una ves que abro mi Jframe2(Que es el JFrame main class), hasta ahi todo perfecto, pero cuando abro desde el menu de mi jframe2 mi otro jframe1 que es donde tengo la funcion de cargar el script.sql que hace el truncate y después ingresa los datos a la base de dato,.....cuando ejecuto la funcion, entonces es ahi cuando se me congela, ...

de momento pienso en desabilitar las vistas de mi JFrame2 cuando Ejecute la función que esta en mi Jframe1, y despues hacer un Refresh...............


Probe estos separando los dos frame en projectos diferentes y funciona, pero el lio esta cuanado los dos Jframe los tengo en el mismo proyecto........


Gracias por su ayuda.....
  #4 (permalink)  
Antiguo 08/12/2014, 05:11
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Problema con Jframe, se me congelan los Jframe.

Hola:

Lo de procedimientos almacenados es indistinto. El tema es ... ¿se te congela la aplicación hasta que termina de hacer lo que sea en la base de datos? ¿o se congela de forma permanente?

Se bueno
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 08/12/2014, 07:43
 
Fecha de Ingreso: noviembre-2014
Mensajes: 26
Antigüedad: 10 años
Puntos: 0
Respuesta: Problema con Jframe, se me congelan los Jframe.

Se congela de forma permanente.
Gracias
  #6 (permalink)  
Antiguo 08/12/2014, 08:38
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Problema con Jframe, se me congelan los Jframe.

Pon algo de código. ¿Cómo llamas desde un jFrame al otro? ¿cómo llamas a la función?.

"el lio esta cuanado los dos Jframe los tengo en el mismo proyecto" . ¿funciona bien hasta un punto en el que haces esa llamada y se congela todo o se congela todo desde el mismo arranque?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #7 (permalink)  
Antiguo 09/12/2014, 14:29
 
Fecha de Ingreso: noviembre-2014
Mensajes: 26
Antigüedad: 10 años
Puntos: 0
Pregunta Respuesta: Problema con Jframe, se me congelan los Jframe.

Hola aqui te dejo un resumen mi codigo.........


Código HTML:
// class control Apps, desde aqui mando a llamar a mi JFrame principal que seria JFrame1 

public class AppCtr {

   public static void main(String[] args) throws IOException, ClassNotFoundException, SQLException 
   {
     new JFrame1().setVisible(true);  
   }
} 

// JFrame1
public class JFrame1 extends javax.swing.JFrame {
    
   public JFrame1() throws SQLException {
        
         initComponents();
         
         combIdCharger(jComboBox_id); //Llamo el metodo en el contructor para que me cargue abriendo el JFrame1,
                                        desde que se abre el JFrame el carga todos los 
                                        id en un combobox, funciona bien//
									//Cuando quito mi metodo del contructor, funciona  mi jframe2, lo que me da a entener es
                                    //que mientras este la app est cargando un procedimiento, no puedo correr un script sql que tenga
                                    //que ver con la informacion que tiene la funcion. 									
 
         
    }
    
      // Aqui esta el metodo que estoy llamando en el contructor.
     // esto me llama un procedimiento almacenado ( select id from table)
    // todo esto funciona bien..........................................
   
 
public void combIdCharger(JComboBox jComboBox_id){
    
    try{
                                   //procedimiento almacenado 
          rset= objDaoSpeech.trouver_case_test_id_master(rset);
          
          jComboBox_id.removeAllItems();
          
          while(rset.next()){
            
            jComboBox_id.addItem(rset.getString(1));
            
            }
                   
        } catch( Exception ex){
                ex.printStackTrace();
        }
  
    
    }
// llamada al Jframe2 /////hasta aqui todo bien////////

private void jMenuLoadActionPerformed(java.awt.event.ActionEvent evt) {                                          
    
        new Jframe2().setVisible(true);
    }   

}

// JFrame 2 
// Esto solo tiene un boton que me manda a ejecutar mi script.....
// Aqui es donde se me congela.......
// Entonces decidi llamar mi Jframe2 desde mi class AppCtr, Ejecuto mi boton y funciona perfecto.
 



private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        
        String aSQLScriptFilePath = "R:\\load_data.sql";
               
        Connection con = null;
        try {
            con = ConfigDB.getConnection("/control/infoconnexion.txt");
        } catch (IOException | ClassNotFoundException | SQLException ex) {
            Logger.getLogger(Menu.class.getName()).log(Level.SEVERE, null, ex);
        }
		try {
			//Initialize object for ScripRunner
			ScriptRunner sr = new ScriptRunner(con, false, false);
 
			// Give the input file to Reader
			Reader reader = new BufferedReader(new FileReader(aSQLScriptFilePath));
		     //Exctute script
		     sr.runScript(reader);
                            
                      
 
		} catch (IOException | SQLException e) {
			System.err.println("Failed to Execute" + aSQLScriptFilePath
					+ " The error is " + e.getMessage());
		}
     
    }  
  #8 (permalink)  
Antiguo 09/12/2014, 15:06
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Problema con Jframe, se me congelan los Jframe.

¿Y qué hace ScriptRunner?, en concreto runScript(reader).

En el método jButton1ActionPerformed() vete poniendo System.out.printl() o mejor síguelo paso a paso con debugger a ver si se queda bloqueado en algún momento o termina del todo.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #9 (permalink)  
Antiguo 09/12/2014, 15:22
 
Fecha de Ingreso: noviembre-2014
Mensajes: 26
Antigüedad: 10 años
Puntos: 0
Respuesta: Problema con Jframe, se me congelan los Jframe.

Esta es la extructura de mi script.
Lo hice asi porque no puedo meter la clause LOAD DATA INFILE dentro un procedimiento, y por questiones de seguridad no quiero usar query dentro de mi programa java...

Código HTML:
use mydb;

SET foreign_key_checks = 0; 

truncate table table1;
truncate table table2;
truncate table table3;

SET foreign_key_checks = 1; 


load data local infile 'C:/temp/table3.csv'
     into table table3 fields terminated by ','
     enclosed by '"'
     lines terminated by '\r\n';
	
load data local infile 'C:/temp/table2.csv'
     into table table2 fields terminated by ','
     enclosed by '"'
     lines terminated by '\r\n' 
     ignore 1 lines;

load data local infile 'C:/temp/table1.csv'
     into table table1 fields terminated by ','
     enclosed by '"'
     lines terminated by '\r\n'; 
     

  #10 (permalink)  
Antiguo 09/12/2014, 15:57
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Problema con Jframe, se me congelan los Jframe.

Entiendo que ScriptRunner es una clase java y no el procedure. ¿Qué hace esa clase java y en concreto su método runScript(). ¿Hay alguna posibilidad de que se quede bloqueado por algún error?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #11 (permalink)  
Antiguo 09/12/2014, 19:20
 
Fecha de Ingreso: noviembre-2014
Mensajes: 26
Antigüedad: 10 años
Puntos: 0
Respuesta: Problema con Jframe, se me congelan los Jframe.

Bueno, yo sencillamente trabajo con un jar que se incluye esas funciones, para trabajar con runScript()., debes cargar la liberia ibatis.jar...miralo aqui mas claro: runScript() envia script.sql.....y recibe como parametro la connexion....

Pero eso me funciona perfecto cuando lo ejecuto independiente, el gran problema es cuando, aficho mis vistas y despues quiero cargar nuevos ficheros....posible sea un problema de refresh....

mira este link.

http://stackoverflow.com/questions/19657609/jdbc-connecting-mysql-script-need-help-using-scriptrunner.


aqui te dejo un ejemplo mas claro del codigo que uso, cuando llamo al runScript()

Código HTML:
// Initialize object for ScripRunner
        System.out.println("Running script.............");
        ScriptRunner sr = new ScriptRunner(conn, false, false);

        // Give the input file to Reader
        Reader reader = new BufferedReader(new FileReader(aSQLScriptFilePath));

        // Exctute script
        sr.runScript(reader);
  #12 (permalink)  
Antiguo 09/12/2014, 21:57
 
Fecha de Ingreso: noviembre-2014
Mensajes: 26
Antigüedad: 10 años
Puntos: 0
De acuerdo Respuesta: Problema con Jframe, se me congelan los Jframe.

Amigo, gracias por su preciado tiempo, haciendo unos test de prueba, pude detectar el problema....

en el script.sql que estaba corriendo, en lugar de usar el truncate table, para vaciar las tablas, use delete from tabla...el resto lo deje como estaba
entonces me funciono perfecto.

...gracias!!!!!!

Última edición por micheldefrancisco; 10/12/2014 a las 00:32
  #13 (permalink)  
Antiguo 10/12/2014, 01:38
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: Problema con Jframe, se me congelan los Jframe.

Buenas,

He seguido el hilo y hay una cosa que no me cuadra.

Si el problema estaba en el script, que se quedaba pillado...

Cita:
El JFrame1 tiene dentro un boton que llama un metodo encargado de ejecutar un script sql, el script se encarga de hacer un truncate a la base de dato y despues hace un load data file...para alimentar mi tabla con un fichero csv. Cuando ejecuto la instruccion, me funciona perfecto.
Como es posible que en tu primer post digas que te funcionaba perfecto??


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #14 (permalink)  
Antiguo 10/12/2014, 08:57
 
Fecha de Ingreso: noviembre-2014
Mensajes: 26
Antigüedad: 10 años
Puntos: 0
Respuesta: Problema con Jframe, se me congelan los Jframe.

Te explico FaLKER...

Precisamente eso era lo que me tenia loko...

En un inicio cuando empece a desarrollar la aplicacion, la unica funcion que tenia era la llamada del script para alimentar mi base de dato desde un boton(y funcionaba super bien), era todo...el script tenia esta estructura...fijate bien que aqui estoy usando TRUNCATE table.

Código HTML:
Ver original
  1. SET foreign_key_checks = 0;
  2. truncate table table1                
  3. SET foreign_key_checks = 1;
  4.  
  5. load data local infile 'c:/table1.csv'  
  6.      into table table1fields terminated by ','
  7.      enclosed by '"'
  8.      lines terminated by '\r\n';

Luego cuando segui desarrollando la aplicacion, cree un nuevo jframe2, para agrupar mis vistas, hacer mis consultas...ect...donde una ves que comenzaba afichar mis vistas, cargar mis combobox dynamic...ect, le daba la oportunidad al usuario de ingresar nuevos volumenes de datos usando la llamada de mi script desde un boton. Fijate que esta funcion yo la estaba ejecutando con los procedimientos ya ejecutudos en el jframe2. Entonces es aqui cuando se me congelaba....

Entonces en el script decidi remplazar el truncate por el delete, y entonces me funciono.....

Etiquetas: jframe
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:23.