For

4 respostas
B

Olá pessoal, estou fazendo um programinha que ao clicar no botão ele chama um método que tem um FOR… só que esse FOR vai de 1 a 65535 e depois que eu clico no botão ele executa normalmente o FOR, mas trava os outros botões e o botão pra sair da aplicação. Eu queria saber como faço pra que isso não aconteça.

ok.addMouseListener(new MouseListener(){ 
   public void mousePressed(MouseEvent e){} 
   public void mouseReleased(MouseEvent e){} 
   public void mouseEntered(MouseEvent e){} 
   public void mouseExited(MouseEvent e){} 
   public void mouseClicked(MouseEvent e){ 
      verificaPortas(host.getText()); 
   }}); 


void verificaPortas(String host){ 
   for(int i=1;i<=65535;i++){ 
                     //Porrada de try e catch; 
                } 
}

Valeu!!!

4 Respostas

C

Rode o trecho de código em uma Thread separada… assim ele não irá travar o resto do programa enquanto executa:

void verificaPortas(String host){
   Thread t = new Thread(new Runnable() {
         for(int i=1;i<=65535;i++){
                //Porrada de try e catch;
          }
   });
   t.start();

}

Espero que tenhas entendido ;)))

B

Cara... quando eu compilo esse código, ele dá o erro:

void verificaPortas(String host){ 
   Thread t = new Thread(new Runnable() { 
         for(int i=1;i<=65535;i++){ 
                //Porrada de try e catch; 
          } 
   }); 
   t.start(); 

}
verificaPortas.java:53: illegal start of type
                        for(int i=1;i<=65535;i++){
                        ^
verificaPortas.java:66: <identifier> expected
                        }
                         ^
verificaPortas.java:67: <anonymous projeto$2> should be declared abstract; it do
es not define run() in
                });
                ^
3 errors
C

Oooops!!

Respondi na pressa e acabei cometendo uma gafe: esqueci de implementar o método run() :PPP

void verificaPortas(String host){
   Thread t = new Thread(new Runnable() {
         public void run() {
              for(int i=1;i<=65535;i++){
                     //Porrada de try e catch;
               }
         }
   });
   t.start();

}

Mesmo assim o código pode dar alguns erros… ele está incompleto (“porrada de try e catch” podem definir ou usar variáveis não acessíveis etc.), a idéia agora é adaptar ao seu código :))

B

Valeu cara… agora deu certo.

Criado 6 de fevereiro de 2003
Ultima resposta 7 de fev. de 2003
Respostas 4
Participantes 2