Foro Oficial de Java

Likibuay

Lanero Reconocido
1 Sep 2004
3,652
pues claro, tenia que meterle un loop para que siguiera preguntando varias veces... saludos.

oee que come q adivina..
jejejeje :cool:
 

Yeison

Lanero Líder
Lanero VIP
1 Feb 2004
11,276
oee que come q adivina..
jejejeje
smiley%20-%20cool.gif

Solamente era analizar el main y ya liki jajajja que flojo:D
 

Master-Chan

Lanero Reconocido
19 Abr 2005
446
buenas

necesito saber las sentecias para eliminar un nodo

public class listas {

Nodos cab,p,q;

public void inicializar()
{

cab=new Nodos (30);
Nodos p=new Nodos (40);
cab.sig=a;
q=new Nodos (50);
cab.sig.sig=b;

Esto es lo que tengo hasta el momento tengo tres nodos y necesito eliminar q y dejar p como la cabeza me dieron la siguiente informacion p.sig=q,sig pero no se como se hace la sentencia despues de los tres nodos, que va antes de p.sig=q.sig eso va con while o simplemente con un if.

Es urgente para esta tarde porfa ayuda gracias chao
 

sairus black

Lanero Reconocido
19 Ene 2008
1,848
bueno de vuelta con el asunto....bros sabeis como cargo un sonido en algo que no sea un applet.....o me toca con mainframe......gracias.
 

sairus black

Lanero Reconocido
19 Ene 2008
1,848
que tal bros...ahy una duda que me ha dado vueltas desde que comenze a progrmar en java...cuando uno usa un objeto Graphics para pintar una imagen usa algo como g.drawImage(Imagen,x,y,Observador)....ese tal observador se supone que es el elemento sobre el cual se va dibujar la imagen...el sunto es que si le coloco algo diferente al famoso this....no me dibuja nada...aun cuando se supone que si le paso una canvas o un frame debe de poder dibujarmela....lo peor de todo es que el compilador no muestra errores...es decir todo esta bien solo que la imagen no se ve....alguien sabe porque pasa eso.....miren que es una de las incognitas de mi vida....gracias.
 

Yeison

Lanero Líder
Lanero VIP
1 Feb 2004
11,276
que tal bros...ahy una duda que me ha dado vueltas desde que comenze a progrmar en java...cuando uno usa un objeto Graphics para pintar una imagen usa algo como g.drawImage(Imagen,x,y,Observador)....ese tal observador se supone que es el elemento sobre el cual se va dibujar la imagen...el sunto es que si le coloco algo diferente al famoso this....no me dibuja nada...aun cuando se supone que si le paso una canvas o un frame debe de poder dibujarmela....lo peor de todo es que el compilador no muestra errores...es decir todo esta bien solo que la imagen no se ve....alguien sabe porque pasa eso.....miren que es una de las incognitas de mi vida....gracias.

pues obvio, cuando estas dibujando sea en una frame utilizas this para que te dibuje en esa ventana, pero si tenes otro componente tendras que pasarlo por allo,
 

sairus black

Lanero Reconocido
19 Ene 2008
1,848
pues obvio, cuando estas dibujando sea en una frame utilizas this para que te dibuje en esa ventana, pero si tenes otro componente tendras que pasarlo por allo,

el problema del this es que no se puede usar en metodos estaticos....de veras que es un lio...como sea mejor uso constructores asi cargo la Graphics con toda la case y no uso this...sino nulll.
 

sairus black

Lanero Reconocido
19 Ene 2008
1,848
baya....jamas crei ver el foro de java estancado....pero ya han pasado 5 dias asi que por eso me atrevo a poner este post.

El asunto es este bros...necesito crear una matriz dinamica....que se redimensione automaticamente una vez la grilla se llene...el problema es que para eso hay que añadir una cabecera extra...pero al momento de tratar de redimansionar el arreglo que contiene las cabeceras y poner la nueva me aparece el tal "java null pointer exception" ni idea por que...si ya coloque la nueva cabecera....alguien sabe que pasa....bueno gracias.
 

juanchibiris

Xtreme Hardware ventas y el mejor servicio técnico
Miembro del equipo
Lanero VIP
11 Nov 2006
11,434
Pues yo una vez utilice algo parecido (si es lo que entendi), use un arreglo con la clase Vector, supongamos esto; Vector arreglo [] = new Vector [10], bueno si empiezas a utilizar el arreglo asi tal como esta definido te saldra la excepcion que dices, entonces me di cuenta que hay que hacer un ciclo de 0 hasta 9, que diga arreglo= new Vector() y asi ya poder utilizar todos los métodos de esta clase.

Pd: No se si esa era la pregunta tuya.
 

sairus black

Lanero Reconocido
19 Ene 2008
1,848
Pues yo una vez utilice algo parecido (si es lo que entendi), use un arreglo con la clase Vector, supongamos esto; Vector arreglo []....

pos seguramente que el null pointer exception tiene que ver con el arreglo que contiene las cabeceras....pero...la verdad no se si utilizando la clase vector pueda arreglar ese fallo.....bueno como sea voy a provar.....gracias bro.
 

htobon

Lanero Reconocido
16 Oct 2007
149
El asunto es este bros...necesito crear una matriz dinamica....que se redimensione automaticamente una vez la grilla se llene...el problema es que para eso hay que añadir una cabecera extra...pero al momento de tratar de redimansionar el arreglo que contiene las cabeceras y poner la nueva me aparece el tal "java null pointer exception" ni idea por que...si ya coloque la nueva cabecera....alguien sabe que pasa....bueno gracias.

Por q no le intentas escribirnos el código de lo que has hecho?
Eso de la matriz dinámica es un toque complejo.. pero ahí lo que tienes que pensar es en el tipo de matriz que quieres hacer.. si es una matriz de tipos básicos o de objetos. Si es de tipos básicos tenes que hacer un método que cuando se esté llenando mas o menos al 70 u 80% pues que cree otra del doble de grande y pase los datos a la nueva.
Si es una matriz con objetos tienes que tener muy claro como inicializar los objetos antes de empezar a trabajar con ella.

Podrías hacer por ejemplo un ArrayList que tenga adentro varios ArrayList, pero recuerde que cada uno de esos ArrayList que hay dentro deben estar inicializados (new ArrayList() ).
 

sairus black

Lanero Reconocido
19 Ene 2008
1,848
bueno el problema de la tabla...era pos que los objetos no se iniciaban...era cosa de ponerlas como null...y listo.

otra cosa que me intriga es por que al correr una aplicacion de java en linux....la ventana aparece repequeña....bueno en algunas ocaciones....ni idea...por que pasara eso.
 

htobon

Lanero Reconocido
16 Oct 2007
149
podrías intentarle ejecutar el método pack() a la ventana (JFrame) que lo que hace es ajustar el tamaño a la ventana con respecto a sus componentes.

Sobra decir que el método debe ejecutarse despues de haber añadido todos los componentes.
 

Aldriaxmai

Lanero Novato
9 May 2006
56
Hola ... Acudo a este foro para pedir ayuda con un programa en java; espero su pronta respuesta puesto que
es una tarea que debo entregar ; el enunciado de la tarea es el siguiente :

" Se tiene un laboratorio donde se van tomando muestras y se van
anotando el resultado de las mismas. El laboratorio toma 10
muestras y para cada muestra analiza 5 variables. Cada variable
analizada tiene un rango; se necesite una aplicación que permita
ingresar las variables y su rango, ingresar las muestras y sacar un
informe por muestra que variables hay por debajo del limite inferior
y que variables estan por encima del limite superior. La matriz debe
poder ser impresa y sería deseable poner en rojo las variables por
debajo del limite y por encima del limite en toda la matriz "

y esta fue la solucion que yo le di al problema :

import java.io.*;

public class Algoritmo {

public Algoritmo() {
}

public static void main ( String args [] ) throws IOException {

int muestras=0;
int variables=0;
int tamañomax=0;
String dato="";
int tamaño=0;
String muestramod="";
String variablemod="";
int posmuestramod=0;
int posvariablemod=0;
String datonuevo="";
String muestrainf="";

System.out.println(" Dado que no se encuentran datos en memoria, debera ingresar los datos de la misma o terminar el programa : ");
System.out.println(" Que desea hacer ? : 1 - ingresar datos a el programa, 2 - terminar programa");
BufferedReader teclado = new BufferedReader ( new InputStreamReader (System.in) );
int eleccion = Integer.parseInt(teclado.readLine());

if(eleccion==1){

System.out.println("Cuantas Muestras Evaluara ? :");
teclado = new BufferedReader ( new InputStreamReader (System.in ) );
muestras = Integer.parseInt(teclado.readLine());

System.out.println("Cuantas variables evaluara para cada muestra ? :");
teclado = new BufferedReader ( new InputStreamReader (System.in ) );
variables = Integer.parseInt(teclado.readLine());

if(variables==1){
variables=0;
}

}

String matriz[][] = new String [variables+muestras][2+variables];

for(int i=0;i<(muestras+variables);i++){

for(int j=0;j<(variables);j++){

matriz[j]=" ";

}

}

for(int cont=1;cont<=variables;cont++){

System.out.println("Ingrese el nombre de la variable numero "+cont);
teclado = new BufferedReader ( new InputStreamReader (System.in ) );
matriz[cont-1][0]=teclado.readLine();

System.out.println("Ingrese el limite inferior de la variable "+matriz[cont-1][0]);
teclado = new BufferedReader ( new InputStreamReader (System.in ) );
matriz[cont-1][1]=teclado.readLine();

System.out.println("Ingrese el limite superior de la variable "+matriz[cont-1][0]);
teclado = new BufferedReader ( new InputStreamReader (System.in ) );
matriz[cont-1][2]=teclado.readLine();

}

for(int cont=1;cont<=muestras;cont++){

System.out.println("Ingrese el nombre de la muestra numero "+cont);
teclado = new BufferedReader ( new InputStreamReader (System.in ) );
matriz[cont+(variables-1)][0]=teclado.readLine();

int cont1=1;

while(cont1<=variables){

System.out.println("Ingrese el valor de la variable "+matriz[cont1-1][0]+" para la muestra "+matriz[cont+(variables-1)][0]);
teclado = new BufferedReader ( new InputStreamReader (System.in ) );
matriz[cont+(variables-1)][cont1]=teclado.readLine();

cont1++;

}

}

if(eleccion==2){

System.exit(0);
}

boolean salida=false;

for(int i = 0; i<(muestras+variables);i++){

for(int j = 0; j<(variables+1); j++){

if((matriz[j]).length()>tamañomax){

tamañomax=(matriz[j]).length();

}

}

}


while(salida==false){

System.out.println(" Que desea hacer ? : ");
System.out.println(" 1 - Ingresar una nueva matriz");
System.out.println(" 2 - Modificar un dato de la matriz");
System.out.println(" 3 - Imprimir un informe sobre una muestra especifica");
System.out.println(" 4 - Imprimir la tabla de datos");
System.out.println(" 5 - Terminar el programa");

teclado = new BufferedReader ( new InputStreamReader (System.in ) );
eleccion=Integer.parseInt(teclado.readLine());

switch(eleccion){

case 1:{

System.out.println("Cuantas Muestras Evaluara ? :");
teclado = new BufferedReader ( new InputStreamReader (System.in ) );
muestras = Integer.parseInt(teclado.readLine());

System.out.println("Cuantas variables evaluara para cada muestra ? :");
teclado = new BufferedReader ( new InputStreamReader (System.in ) );
variables = Integer.parseInt(teclado.readLine());

if(variables==1){
variables=0;
}

matriz = new String [variables+muestras][2+variables];

for(int i=0;i<(muestras+variables);i++){

for(int j=0;j<(variables);j++){

matriz[j]=" ";

}

}

for(int cont=1;cont<=variables;cont++){

System.out.println("Ingrese el nombre de la variable numero "+cont);
teclado = new BufferedReader ( new InputStreamReader (System.in ) );
matriz[cont-1][0]=teclado.readLine();

System.out.println("Ingrese el limite inferior de la variable "+matriz[cont-1][0]);
teclado = new BufferedReader ( new InputStreamReader (System.in ) );
matriz[cont-1][1]=teclado.readLine();

System.out.println("Ingrese el limite superior de la variable "+matriz[cont-1][0]);
teclado = new BufferedReader ( new InputStreamReader (System.in ) );
matriz[cont-1][2]=teclado.readLine();

}

for(int cont=1;cont<=muestras;cont++){

System.out.println("Ingrese el nombre de la muestra numero "+cont);
teclado = new BufferedReader ( new InputStreamReader (System.in ) );
matriz[cont+(variables-1)][0]=teclado.readLine();

int cont1=1;

while(cont1<=variables){

System.out.println("Ingrese el valor de la variable "+matriz[cont1-1][0]+" para la muestra "+matriz[cont+(variables-1)][0]);
teclado = new BufferedReader ( new InputStreamReader (System.in ) );
matriz[cont+(variables-1)][cont1]=teclado.readLine();

cont1++;

}

}

for(int i = 0; i<(muestras+variables);i++){

for(int j = 0; j<(variables+1); j++){

if((matriz[j]).length()>tamañomax){

tamañomax=(matriz[j]).length();

}

}

}

}
break;

case 2:{

System.out.println("Que muestra desea modificar ? :");
teclado = new BufferedReader ( new InputStreamReader (System.in ) );
muestramod=teclado.readLine();



<---- aqui falta








System.out.println("Que variable de la muestra desea modificar ? :");
teclado = new BufferedReader ( new InputStreamReader (System.in ) );
variablemod=teclado.readLine();





<---- aqui falta





System.out.println("Que dato desea introducir ? : ");
teclado = new BufferedReader ( new InputStreamReader (System.in ) );
datonuevo=teclado.readLine();

System.out.println(posmuestramod+""+posvariablemod);
matriz[posmuestramod][posvariablemod+1]=datonuevo;

}
break;

case 3:{

System.out.println("Sobre cual muestra desea obtener el informe? :");
teclado = new BufferedReader ( new InputStreamReader (System.in ) );
muestrainf=teclado.readLine();

for(int i = 0;i<(variables+muestras);i++){

if(matriz[0].equals(muestrainf)){
posmuestrainf=i);
}
}




<---- aqui falta










}
break;

case 4:{

for(int i = 0; i<(muestras+variables);i++){

for(int j = 0; j<(variables+1); j++){

dato=matriz[j];
tamaño=dato.length();
tamaño=tamañomax-tamaño;

for(int k=0;k<tamaño;k++){
dato=dato+" ";
}

matriz[j]=dato;
}

}


for(int i = 0; i<(variables+muestras);i++){

for(int j = 0; j<(variables+1); j++){

System.out.print("|"+matriz[j]);

}

System.out.println("|");
}

}
break;

case 5:{

System.out.println("El programa terminara ahora ");
salida=true;
}
break;

default:{

System.out.println("No ha ingresado ninguna opcion valida, por tanto el programa terminara ");
salida=true;
}
break;

}

}

}

}

ahora, el problema es el siguiente, para que el programa pueda saber donde esta ubicado el dato que el
usuario quiere modificar, este debe recorrer la matriz para saber a que fila corresponde la muestra que el
usuario entro y a que columna equivale la variable que el usuario entro; el problema es que no se como
comparar una variable tipo string con un dato que se encuentra dentro de una matriz;

Grax...
 

Tr0nad0r

Lanero Reconocido
8 Mar 2004
7,926
Si es para comparar igualdad usa:

PHP:
boolean b = matriz[i][j].equals(variableString);
//b sera true si son iguales, y false si son diferentes.


Si es para hacer comparacion ">" o "<" usa:

PHP:
int i = matriz[i][j].compareTo(variableString);
//i sera > 0 si el string objeto es "mayor" que el argumento, 
//i sera < 0 si el string objeto es "menor" que el argumento,
// i sera =  0 si los string son iguales, es decir el mismo caso que equals() retorna true