tebilon escribió:Muchas gracias por vuestra ayuda. Como veis estoy muy verde con esto de Java.
¿Podríais indicarme alguna especie de itinerario o de orden en el que se deba aprender el lenguaje de principio a fin? Gracias.
Un saludo.
litos001 escribió:tebilon escribió:Muchas gracias por vuestra ayuda. Como veis estoy muy verde con esto de Java.
¿Podríais indicarme alguna especie de itinerario o de orden en el que se deba aprender el lenguaje de principio a fin? Gracias.
Un saludo.
Pues yo haría lo típico.
Tipos de datos
Clases y objetos
Atributos y métodos (Constructores)
entrada/salida
Colecciones
Hilos de Control
y ya si te interesa swing...
Lo he puesto un poco general.
tebilon escribió:litos001 escribió:tebilon escribió:Muchas gracias por vuestra ayuda. Como veis estoy muy verde con esto de Java.
¿Podríais indicarme alguna especie de itinerario o de orden en el que se deba aprender el lenguaje de principio a fin? Gracias.
Un saludo.
Pues yo haría lo típico.
Tipos de datos
Clases y objetos
Atributos y métodos (Constructores)
entrada/salida
Colecciones
Hilos de Control
y ya si te interesa swing...
Lo he puesto un poco general.
Gracias por tu respuesta litos001, veo que es más o menos lo que hay en la mayoría de los libros y manuales que he visto, pero lo que me gustaría saber es después de esto ¿que?
Un saludo.
tebilon escribió:litos001 escribió:tebilon escribió:Muchas gracias por vuestra ayuda. Como veis estoy muy verde con esto de Java.
¿Podríais indicarme alguna especie de itinerario o de orden en el que se deba aprender el lenguaje de principio a fin? Gracias.
Un saludo.
Pues yo haría lo típico.
Tipos de datos
Clases y objetos
Atributos y métodos (Constructores)
entrada/salida
Colecciones
Hilos de Control
y ya si te interesa swing...
Lo he puesto un poco general.
Gracias por tu respuesta litos001, veo que es más o menos lo que hay en la mayoría de los libros y manuales que he visto, pero lo que me gustaría saber es después de esto ¿que?
Un saludo.
elenano2 escribió:Hola a todos, a ver si alguien a utilizado esto alguna vez.
Tengo un campo de texto donde quiero comprobar en tiempo real que lo introducido es correcto, por lo que se me ha ocurrido hacer un thread que compruebe todo el rato la información que hay dentro de ese campo.
He conseguido hacerlo pero al "Salir" por ejemplo, de la caja. Lo que no consigo es que se ejecute infinitamente para que este comprobando todo el rato esa caja.
Hay alguna forma de hacer que un thread sea infinito?
elenano2 escribió:Hola a todos, a ver si alguien a utilizado esto alguna vez.
Tengo un campo de texto donde quiero comprobar en tiempo real que lo introducido es correcto, por lo que se me ha ocurrido hacer un thread que compruebe todo el rato la información que hay dentro de ese campo.
He conseguido hacerlo pero al "Salir" por ejemplo, de la caja. Lo que no consigo es que se ejecute infinitamente para que este comprobando todo el rato esa caja.
Hay alguna forma de hacer que un thread sea infinito?
elenano2 escribió:Gracias chicos por responder, pero ya lo puse jeje. Efectivamente, en onKeyListener(no se llamaba asi), pero vamos, que cuando pulsas una tecla en la caja de texto, llama al thread y lo hace perfecto :=).
Muchas gracias
elenano2 escribió:Lazo un hilo por si da la casualidad de que se bloquea. Al ser un hilo tan ligero ni se nota y lo hacer super rapido.
Para mi, es la mejor forma, porque según escribes por detrás se esta comprobando rápidamente todo y no te entras
elenano2 escribió:A ver, tengo un campo de texto donde compruebo que la empresa no este dada de alta.
Lo que hago, es que cada KeyTyped, lanzo el hilo y compara el nombre introducido(Ya sea mayuscula o miniscula) con los nombres de las empresas registradas.
Y si coincide, pongo el campo en rojo para no dejar agregarlo. En cuanto borro una letra por ejemplo y no coincide con ninguna empresa lo vuelvo a poner en blanco.
Creas el hilo que ejeute el siguiente código:
cadena empresa = "";
booleano ya_existe;
mientras cierto hacer
si campo_empresa != empresa hacer
empresa = campo_empresa;
ya_existe = consultar("existe?", empresa)
si ya_existe hacer
poner campo_empresa de color rojo
sino hacer
poner campo_empresa de color blanco
fin si
dormir durante 100ms
fin si
fin mientras
tom_deluxe escribió:elenano2 escribió:A ver, tengo un campo de texto donde compruebo que la empresa no este dada de alta.
Lo que hago, es que cada KeyTyped, lanzo el hilo y compara el nombre introducido(Ya sea mayuscula o miniscula) con los nombres de las empresas registradas.
Y si coincide, pongo el campo en rojo para no dejar agregarlo. En cuanto borro una letra por ejemplo y no coincide con ninguna empresa lo vuelvo a poner en blanco.
Podrías hacerlo de otra forma para no tener que hacer tantas consultas ni crear el hilo tantas veces:
Creas el hilo que ejeute el siguiente código:
cadena empresa = "";
booleano ya_existe;
mientras cierto hacer
si campo_empresa != empresa hacer
empresa = campo_empresa;
ya_existe = consultar("existe?", empresa)
si ya_existe hacer
poner campo_empresa de color rojo
sino hacer
poner campo_empresa de color blanco
fin si
dormir durante 100ms
fin si
fin mientras
Para el PC 100ms de espera para cada iteración del bucle va a ser una eternidad, así que en la práctica va a estar a 1% de uso de cpu xd
Bueno, no sé hasta que punto esto te puede ir mejor, pero si fuese sobre una base de datos que no es local, sobretodo si es por internet creo que marcaría la diferencia
int modulo = tiempoSistema%tiempoEspera;
IF (modulo <= umbral)
llamaHilo();
elenano2 escribió:La verdad es que no se me ha saturado y me ha dado problemas pero si pudíera hacer lo del tiempo de llamada estaría bien.
No he hecho nunca lo del tiempo así que mirare a ver si lo encuentro . Como se calcula el tiempo real?
Gracias
System.currentTimeMillis()
highfredo escribió:tom_deluxe escribió:elenano2 escribió:A ver, tengo un campo de texto donde compruebo que la empresa no este dada de alta.
Lo que hago, es que cada KeyTyped, lanzo el hilo y compara el nombre introducido(Ya sea mayuscula o miniscula) con los nombres de las empresas registradas.
Y si coincide, pongo el campo en rojo para no dejar agregarlo. En cuanto borro una letra por ejemplo y no coincide con ninguna empresa lo vuelvo a poner en blanco.
Podrías hacerlo de otra forma para no tener que hacer tantas consultas ni crear el hilo tantas veces:
Creas el hilo que ejeute el siguiente código:
cadena empresa = "";
booleano ya_existe;
mientras cierto hacer
si campo_empresa != empresa hacer
empresa = campo_empresa;
ya_existe = consultar("existe?", empresa)
si ya_existe hacer
poner campo_empresa de color rojo
sino hacer
poner campo_empresa de color blanco
fin si
dormir durante 100ms
fin si
fin mientras
Para el PC 100ms de espera para cada iteración del bucle va a ser una eternidad, así que en la práctica va a estar a 1% de uso de cpu xd
Bueno, no sé hasta que punto esto te puede ir mejor, pero si fuese sobre una base de datos que no es local, sobretodo si es por internet creo que marcaría la diferencia
aparte de dormir el hilo tendrias que desechar las peticiones que le fueran llegando, sino se saturaria de todas maneras.
por ejemplo podrias solo llamar al hilo solo cada 10ms (sin necesidad de dormirlo) poniendo algo como:int modulo = tiempoSistema%tiempoEspera;
IF (modulo <= umbral)
llamaHilo();
tom_deluxe escribió:No entiendo a que te refieres con las peticiones. Las "peticiones" ahora no las crea el usuario, sólo se crea 1 cada 100 ms nada más.
Salu2
highfredo escribió:tom_deluxe escribió:No entiendo a que te refieres con las peticiones. Las "peticiones" ahora no las crea el usuario, sólo se crea 1 cada 100 ms nada más.
Salu2
te pongo en escenario:
- Hilo A envia 10 el texto del cuadro de texto al hilo B
- Hilo B las tiene que procesar todas, si le añades el retardo en el hilo B el resultado es que tarda 10*100ms, cuando lo mejor seria hacer una criba al numero de veces que se le pide al hilo B algo (que en vez de 10, se envien 3)
tom_deluxe escribió:highfredo escribió:tom_deluxe escribió:No entiendo a que te refieres con las peticiones. Las "peticiones" ahora no las crea el usuario, sólo se crea 1 cada 100 ms nada más.
Salu2
te pongo en escenario:
- Hilo A envia 10 el texto del cuadro de texto al hilo B
- Hilo B las tiene que procesar todas, si le añades el retardo en el hilo B el resultado es que tarda 10*100ms, cuando lo mejor seria hacer una criba al numero de veces que se le pide al hilo B algo (que en vez de 10, se envien 3)
No sé si me he explicado mal o estoy un poquito lento
El hilo que está dando vueltas todo el rato es totalmente independiente. No hay ningún hilo que le envíe nada, es él que va y lee lo que hay en el cuadro de texto, por lo que no se acumula ninguna petición.
tom_deluxe escribió:highfredo escribió:tom_deluxe escribió:No entiendo a que te refieres con las peticiones. Las "peticiones" ahora no las crea el usuario, sólo se crea 1 cada 100 ms nada más.
Salu2
te pongo en escenario:
- Hilo A envia 10 el texto del cuadro de texto al hilo B
- Hilo B las tiene que procesar todas, si le añades el retardo en el hilo B el resultado es que tarda 10*100ms, cuando lo mejor seria hacer una criba al numero de veces que se le pide al hilo B algo (que en vez de 10, se envien 3)
No sé si me he explicado mal o estoy un poquito lento
El hilo que está dando vueltas todo el rato es totalmente independiente. No hay ningún hilo que le envíe nada, es él que va y lee lo que hay en el cuadro de texto, por lo que no se acumula ninguna petición.
josealejandro escribió:Hola amigos eolianos, yo tengo otra duda, estoy comenzando a tratar con POO y bueno, mi maestro ha sido un maldito que me ha pedido un proyecto final bastante laborioso y a mi punto de vista imposible.
Se trata de imitar el siguiente videojueg:
http://www.youtube.com/watch?v=huS9ZpaLMvQ
El vídeo de fondo pues es cosa sencilla según he leido con javaFX si no mal recuerdo o sus similares, mi duda es como diablos haré lo demás, lo único que me dijo mi maestro es que lea sobre threads, y pues si les veo utilidad pero no resuelven todo el programa, pueden apuntarme en que dirección buscar?
Saludos!
highfredo escribió:josealejandro escribió:Hola amigos eolianos, yo tengo otra duda, estoy comenzando a tratar con POO y bueno, mi maestro ha sido un maldito que me ha pedido un proyecto final bastante laborioso y a mi punto de vista imposible.
Se trata de imitar el siguiente videojueg:
http://www.youtube.com/watch?v=huS9ZpaLMvQ
El vídeo de fondo pues es cosa sencilla según he leido con javaFX si no mal recuerdo o sus similares, mi duda es como diablos haré lo demás, lo único que me dijo mi maestro es que lea sobre threads, y pues si les veo utilidad pero no resuelven todo el programa, pueden apuntarme en que dirección buscar?
Saludos!
acabas de empezar y te han mandado eso?? joder con tu profesor...
vale, para empezar sera mejor que te fijes mas en un guitar hero, ya que al ir las accines en un rail fijo es menos complejo.
a partir de hay mirate sprites, hilos, eventos de teclado, reproduccion de sonido, java swing y javafx tambien te podria ser util pero no tienes porque usarlo (aunque en este campo no te puedo ayudar)
josealejandro escribió:highfredo escribió:josealejandro escribió:Hola amigos eolianos, yo tengo otra duda, estoy comenzando a tratar con POO y bueno, mi maestro ha sido un maldito que me ha pedido un proyecto final bastante laborioso y a mi punto de vista imposible.
Se trata de imitar el siguiente videojueg:
http://www.youtube.com/watch?v=huS9ZpaLMvQ
El vídeo de fondo pues es cosa sencilla según he leido con javaFX si no mal recuerdo o sus similares, mi duda es como diablos haré lo demás, lo único que me dijo mi maestro es que lea sobre threads, y pues si les veo utilidad pero no resuelven todo el programa, pueden apuntarme en que dirección buscar?
Saludos!
acabas de empezar y te han mandado eso?? joder con tu profesor...
vale, para empezar sera mejor que te fijes mas en un guitar hero, ya que al ir las accines en un rail fijo es menos complejo.
a partir de hay mirate sprites, hilos, eventos de teclado, reproduccion de sonido, java swing y javafx tambien te podria ser util pero no tienes porque usarlo (aunque en este campo no te puedo ayudar)
Y me va a evaluar con la certificacion de java xD
Pero entonces ya mismo comienzo a leer sobre lo que mencionas, también intenté hablar con el sobre el guitar hero, pero nada. Quiere que trabaje con el movimiento oscilante de los botones y que no sea algo recto. Q_Q
highfredo escribió:
math powa!!!!
pues entonces tambien tendras que hecharle un ojo al algebra y a la fisica.
mira esto
http://es.wikipedia.org/wiki/Curva_de_B%C3%A9zier
josealejandro escribió:highfredo escribió:
math powa!!!!
pues entonces tambien tendras que hecharle un ojo al algebra y a la fisica.
mira esto
http://es.wikipedia.org/wiki/Curva_de_B%C3%A9zier
Va a estar bien interesante el asunto xD ya mismo voy estudiando todo ese tipo de movimiento, estoy leyendo sobre threads ahora mismo, ya que sepa interpretar el tema pasaré a estudiar sobre event handling. Va a ser un duro mes... (tengo 2 meses para hacerlo)
--Edit--
Ahorita mismo me puse a buscar sobre esas curvas de Bezier pero, no logro encontrar como eso es aplicable a java, encontré como hacerlo en Blender, pero nada sobre java. Es esto posible?
langos1989 escribió:Alguien me puede explicar que hace el operando que está subrayado? He intentado googlear, pero esos símbolos Google se los pasa por el forro a la hora de buscar.
int i =256;
i >>>= 1;
amuchamu escribió:langos1989 escribió:Alguien me puede explicar que hace el operando que está subrayado? He intentado googlear, pero esos símbolos Google se los pasa por el forro a la hora de buscar.
int i =256;
i >>>= 1;
Es el operador de desplazamiento a derecha sin signo, "unsigned right shift".
http://es.wikibooks.org/wiki/Programaci ... azamientos
elenano2 escribió:Buenas compañeros, a ver si habéis topado alguna vez con este problema.
Estoy creando una conexión tcp a un programa que me envia tramas, hasta aqui bien y sin ningún problema.
Luego tengo que ir leyendo la trama separandola por bytes, el problema esta, que el programa servidor esta hecho en C y C++.
Entonces el usa para guardar los datos WORD y DWORD y luego los envia. El DWORD esta compuesto por 32 bits(4bytes) y en java no se como poder guardar esos bytes para luego interpretarlos...
No se si me he explicado bien, es que llevo varias horas haciendo pruebas y no consigo obtener el valor bien.. :S
Gracias de antemano
elenano2 escribió:Gracias por responder
Mira, ahora mismo lo tengo asi:
int len = in.readInt();
byte[] data = new byte[len];
Es decir, guardo los 4byte(32bits) en el array correctamente y ahora para poder pasarlo a caracteres legibles lo pongo directamente en String?
public class Hilo
extends Thread
{
private int tipoHilo;
private static int n;
private int nVueltas;
public Hilo(int nVueltas, int tipoHilo,int n)
{
this.nVueltas=nVueltas; this.tipoHilo=tipoHilo;
this.n=n;
}
public void run()
{
switch(tipoHilo){
case 0: for(int i=0; i<nVueltas; i++)n++; break;
case 1: for(int i=0; i<nVueltas; i++)n--; break;
}
}
public class Main {
private static int n=0;//esta es sobre la que se deben hacer todos las operaciones de incremento y decremento
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception {
Hilo p = new Hilo(100, 0,n);
Hilo q = new Hilo(100, 1,n);
p.start();
q.start();
p.join();
q.join();
System.out.println(n);
}
}
zaius5 escribió:Tengo una clase que hereda de Thread y la llamo en la clase main,y lo que yo quiero es que las dos instancias de la clase Hilo que hay en main modifiquen la misma variable,que es la variable n de main,pero creo que tal como lo hago cada objeto Hilo esta modificando su propia variable n, y no se como hacerlo,a ver si alguien me puede orientarpublic class Hilo
extends Thread
{
private int tipoHilo;
private static int n;
private int nVueltas;
public Hilo(int nVueltas, int tipoHilo,int n)
{
this.nVueltas=nVueltas; this.tipoHilo=tipoHilo;
this.n=n;
}
public void run()
{
switch(tipoHilo){
case 0: for(int i=0; i<nVueltas; i++)n++; break;
case 1: for(int i=0; i<nVueltas; i++)n--; break;
}
}public class Main {
private static int n=0;//esta es sobre la que se deben hacer todos las operaciones de incremento y decremento
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception {
Hilo p = new Hilo(100, 0,n);
Hilo q = new Hilo(100, 1,n);
p.start();
q.start();
p.join();
q.join();
System.out.println(n);
}
}
num1=teclado.nextInt();
for (f=0;num1>0;num1/=10,[u]f*=[/u]10)
[u]f+=[/u]num1%10;
System.out.println(f/10);