Java - ayuda con threads

 
Vista:

ayuda con threads

Publicado por Ricardo (1 intervención) el 21/04/2010 05:22:59
buenas, estoy haciendo un programa que simula elfuncionamiento del computador IAS, ya lo logre hacer pero quiero que en el momento en que empiezo a escribir los resultados, que lo hago mediante un for, hace que se imprima cada tanto tiempo, es decir que cada iteracion del for se imprima cada tantos segundos, esto con el fin de que se pueda visualizar paso a paso lo que el programa hace, agrego el ciclo for donde quiero lograr esto, (el programa es un jframe y el ciclo for se ejecuta cuando se selecciona un boton)

int function,adres=-1,j,i;
String mens,nexti = null;
int posp=posm;
for (i = 0; i < code.size(); i++) {

if(i<0)break;
System.out.println(posp);
j=i+1;
function=((IAS)code.get(i)).getfuncion();

if (j<code.size()){
adres=((IAS)code.get(j)).getMempos();
nexti=((IAS)code.get(j)).getopcode();
}
else nexti=null;adres=0;
if(adres<=15){
mens = "00";
}
else if(adres<=255){
mens="0";
}
else mens="";
jTextField5.setText(""+(posp));
if(i%2!=0){
++posp;
}

jTextField6.setText(((IAS)code.elementAt(i)).getopcode());
jTextField7.setText(nexti+mens+(Integer.toHexString(adres)));

switch (function) {
case 0:
if(!jTextField10.getText().equals("")){

jTextField9.setText(jTextField10.getText());
}else textArea1.setText("Aun no ha cargado nada en el registro MQ");
break;
case 1:
int cont=((IAS)code.get(i)).getMempos();
if(!contants.isEmpty()){
numb=Long.parseLong(contants.elementAt(cont));
if(numb>limite){
textArea1.setText("Error de tamaño");
}else jTextField10.setText(contants.elementAt(cont));
}else textArea1.setText("Mem error");

break;
case 2:
cont=((IAS)code.get(i)).getMempos();
String ac=jTextField9.getText();
if(!ac.equals("")){
numb=Long.parseLong(contants.elementAt(cont));
if(numb>limite){
textArea1.setText("Error de tamaño");
}else contants.add(cont, ac);
}else textArea1.setText("Aun no ha cargado nada en el registro AC");


break;
case 3:
cont=((IAS)code.get(i)).getMempos();
if(!contants.isEmpty()){
numb=Long.parseLong(contants.elementAt(cont));
if(numb>limite){
textArea1.setText("Error de tamaño");
}else jTextField9.setText(contants.elementAt(cont));
}else textArea1.setText("Mem error");


break;
case 4:
break;
case 5:
cont=((IAS)code.get(i)).getMempos();
if(!contants.isEmpty()){
numb=Long.parseLong(contants.elementAt(cont));
if(numb>limite){
textArea1.setText("Error de tamaño");
}else jTextField9.setText(Long.toString(Math.abs(numb)));
}else textArea1.setText("Mem error");


break;
case 6:
break;
case 7:

cont=((IAS)code.get(i)).getMempos();
if(cont<=posm){
textArea1.setText("ERROR");
}else{
i=(2*(cont-posm))-1;
if(i>=code.size()){
textArea1.setText("ERROR");
i=-2;
}
}
break;
case 8:
cont=((IAS)code.get(i)).getMempos();
if(cont<=posm){
textArea1.setText("ERROR");
}else{
i=(2*(cont-posm));
if(i>=code.size()){
textArea1.setText("ERROR");
i=-2;
}
}

break;
case 9:
numb=Long.parseLong(jTextField9.getText());
if(numb>0){
cont=((IAS)code.get(i)).getMempos();
if(cont<=posm){
textArea1.setText("ERROR");
}else{
i=(2*(cont-posm))-1;
if(i>=code.size()){
textArea1.setText("ERROR");
i=-2;
}
}
}
break;
case 10:
numb=Long.parseLong(jTextField9.getText());
if(numb>0){
cont=((IAS)code.get(i)).getMempos();
if(cont<=posm){
textArea1.setText("ERROR");
}else{
i=(2*(cont-posm));
if(i>=code.size()){
textArea1.setText("ERROR");
i=-2;
}
}
}
break;
case 11:
cont=((IAS)code.get(i)).getMempos();
long numc=Long.parseLong(contants.elementAt(cont));
numb=Long.parseLong(jTextField9.getText());
numb+=numc;
jTextField9.setText(""+numb);
break;
case 12:
cont=((IAS)code.get(i)).getMempos();
numc=Long.parseLong(contants.elementAt(cont));
numb=Math.abs(Long.parseLong(jTextField9.getText()));
numb+=numc;
jTextField9.setText(""+numb);
break;
case 13:
cont=((IAS)code.get(i)).getMempos();
numc=Long.parseLong(contants.elementAt(cont));
numb=Long.parseLong(jTextField9.getText());
numb-=numc;
jTextField9.setText(""+numb);
break;
case 14:
break;
case 15:
cont=((IAS)code.get(i)).getMempos();
numc=Long.parseLong(contants.elementAt(cont));
numb=Long.parseLong(jTextField9.getText());
numb*=numc;
long d=numb;
if(numb>limite){
while(numb>limite){
numb=numb>>1;
}
}
jTextField9.setText(""+Long.toHexString(numb).toUpperCase());
jTextField10.setText(""+Long.toHexString((d-numb)).toUpperCase());
break;
case 16:
cont=((IAS)code.get(i)).getMempos();
numc=Long.parseLong(contants.elementAt(cont));
numb=Long.parseLong(jTextField9.getText());
jTextField10.setText(Long.toHexString(numb/numc).toUpperCase());
jTextField9.setText(Long.toHexString(numb%numc).toUpperCase());
break;
case 17:
numb=Long.parseLong(jTextField9.getText());
numb=numb<<1;
jTextField9.setText(Long.toHexString(numb).toUpperCase());

break;
case 18:
numb=Long.parseLong(jTextField9.getText());
numb=numb>>1;
jTextField9.setText(Long.toHexString(numb).toUpperCase());
break;
case 19:
cont=((IAS)code.get(i)).getMempos();
numb=Long.parseLong(jTextField9.getText());
int dd=(2*(cont-posm))-1;
if(numb>999){
while(numb>999){
numb=numb>>1;
}
}
((IAS)code.get(dd)).setMempos((int)numb);
break;
case 20:
cont=((IAS)code.get(i)).getMempos();
numb=Long.parseLong(jTextField9.getText());
dd=(2*(cont-posm));
if(numb>999){
while(numb>999){
numb=numb>>1;
}
}
((IAS)code.get(dd)).setMempos((int)numb);

break;
default:
System.err.println("ERROR");
break;
}

}
jTextField5.setText(""+(posp));
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder