Foro Oficial de Java

oee que come q adivina..
jejejeje
smiley%20-%20cool.gif

Solamente era analizar el main y ya liki jajajja que flojo:D
 
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
 
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.
 
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.
 
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,
 
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.
 
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.
 
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.
 
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.
 
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() ).
 
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.
 
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.
 
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...
 
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
 

Los últimos temas