Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/11/2010, 15:42
PabloSs
 
Fecha de Ingreso: marzo-2010
Mensajes: 16
Antigüedad: 14 años, 1 mes
Puntos: 0
Pregunta Boton - "detener" ejecución hasta presionar boton

Buenas, que tal?
Tengo el siguiente inconveniente y quería saber si alguien me puede dar una mano... Necesito detener la ejecución de un programa hasta que se haga "click" sobre un botón. Es decir, debo parar la ejecución del programa cuando me muestre la venta, y recién cuando se presione sobre el botón "OK" ahí reanudar con la ejecución del programa.
Estaba probando hacerlo con un hilo pero no puedo lograrlo... alguien tiene alguna idea de como hacer esto.... desde ya cualquier idea me vendría muy bien!

A continuación les dejo el código con el cual estoy probando y la idea es que cdo se presione el botón "OK" recién ahí me muestre el ultimo "println" que se encuentra en el main().
Código PHP:
public class ejemplo extends JFrame implements Runnable{

static 
boolean Load=false;
public 
JFileChooser jfcExaminarEntrada;
public 
JButton jbExaminar;
public 
JButton jbLoad;
public 
JPanel jPanel1;
public 
JTextField jtfRutaEntrada;
public 
String dir;
File  myFile;


    public 
ejemplo(){}
    
    
    public 
void run(){
        
synchronized(this){
    
            if(
Load==false){
                
//el problema es q akka tengo q esperar q se cargue la dir, cdo se cargue recien ahi continuar con la ejecucion
                
initComponents();
                }
                else{
System.out.println("hace otra cosa");    }
        }
//sync
    
}//run
    
    
    
private void initComponents() {
        
setTitle("Seleccionar el Archivo");
        
setResizable(false);
        
jfcExaminarEntrada = new JFileChooser();
        
jPanel1 = new  JPanel();
        
jtfRutaEntrada = new  JTextField();
        
jbExaminar = new  JButton();
        
jbLoad = new  JButton();
        
        
        
getContentPane().setLayout(null);

        
jPanel1.setBorderBorderFactory.createTitledBorder("Archivo"));
        
jPanel1.setLayout(null);
        
jPanel1.add(jtfRutaEntrada);
        
jtfRutaEntrada.setBounds(203035019);

        
jbExaminar.setText("...");
        
jPanel1.add(jbExaminar);
        
jbExaminar.setBounds(400305025);

        
jbLoad.setText("OK");
        
jPanel1.add(jbLoad);
        
jbLoad.setBounds(460307025);

        
getContentPane().add(jPanel1);
        
jPanel1.setBounds(303055070);
        
        
java.awt.Dimension screenSize java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        
setBounds((screenSize.width-618)/2, (screenSize.height-150)/2618150);

        
jbExaminar.addActionListener(new ControlaEventos());
        
jbLoad.addActionListener(new ControlaEventos());
        
        
setVisible(true);
        
System.out.println("despues de setVisible");
        
notify();
    }
    
    public class 
ControlaEventos implements ActionListener{
        
        public 
void actionPerformed(ActionEvent evento){
        if (
evento.getSource()==jbExaminar){
            
System.out.println("Entro jbExaminar");    }

        if (
evento.getSource()==jbLoad){
            
System.out.println("Entro jbLoad");    }
        }
    }


    public static 
void main(String[] args){
        
ejemplo st= new ejemplo();
        
Thread td= new Thread(st);
        
td.start();
        
        
synchronized(td){
        try {
        
System.out.println("Esperando a que td se complete...");
        
td.wait();
        
//parar la ejecucion del programa aca, y continuar luego de haber echo click en el boton "OK" (jbLoad)
        //es decir que el proximo cartel de "println" se muestre despues de haber echo click en el boton
        
} catch (InterruptedException ex) { }
        }
    
    
//codigo q deberia ejecutarse despues de hacer click en el boton "OK" (jbLoad)
    
System.out.println("Sigue corriendo ....");
    }

Bueno espero haberme expresado bien... cualquier idea sera muy agradecida...
Saludos..