Foro Oficial de Java

NSlaver

Jack of all trades
16 Abr 2002
3,548
Lo lleno de OBJETOS NO de clases, para ser mas exactos de referencias a OBJETOS ......
Entonces con el get(int index) va llamando a el elemento indexado con el respectivo entero dentro de la Colección, y le hace el cast por que devuelve objetos de la clase Object........
 

SlashOne

Lanero Regular
1 Mar 2006
87
Uno dijo:
bien tengo un problema... yo se que es una bobada... tengo un ArrayList... lo llené de clases... ahora tengo que llamar un metodo especifico de cada clase que esta dentro del ArrayList.. como hago?? con get()??? como sería??

gracias
Como dice NSlaver, tienes que usar el metodo get(int) y hacer cast al tipo de cada objeto... sin embargo, como práctica general de diseño normalmente en una colección debes tener objetos que sean de la misma clase o tengan una superclase común, y lo que haces es llamar los métodos de la clase común los cuales pueden tener un comportamiento diferente cada uno si las subclases hacen override de estos (el famoso polimorfismo); por esta razón, normalmente no requieres hacer casting a diferentes tipos sino a un solo tipo base, es más, en Java 1.5 usando un ArrayList clasificado no habría que hacer ningun tipo de casting.
 

Elgo

Lanero Regular
5 Mar 2006
16
Uno dijo:
bien tengo un problema... yo se que es una bobada... tengo un ArrayList... lo llené de clases... ahora tengo que llamar un metodo especifico de cada clase que esta dentro del ArrayList.. como hago?? con get()??? como sería??

gracias
Puede usar el instanceof para identificar a que clase/superclase pertenecen

Seria algo como:
Código:
//Datos ejemplo
Collection c = Arrays.asList("E",new Integer(1), new Object(), System.out);
for (Iterator it=c.iterator();it.hasNext();) {
  Object laCosa = it.next();
  if (laCosa instanceof Integer) System.out.println(((Integer)laCosa).intValue()*2);
  else if (laCosa instanceof String)  System.out.println(((String)laCosa).length());
}
PD: ArrayList es List, List es Collection.
Mejor recorrer la coleccion de la manera que ofrece Java 5 para objetos de clases iterables
Código:
for (Object laCosa:c) { (...) }
 

fram7

Lanero Reconocido
14 Oct 2004
1,436
SlashOne dijo:
...es más, en Java 1.5 usando un ArrayList clasificado no habría que hacer ningun tipo de casting.

Bueno eso del List clasificado si no se como funciona?, alguna informacion extra o un ejemplo??.


Por otro lado tengo un progrma de Multicast, en UDP y en la U me funciona perfectamente pero lo implenento en mi casa (modem 56K) y no me funciona, no tengo ni firewire ni nada de eso, alguna idea del pq ??
 

Maaaa giver

Lanero Regular
26 Dic 2005
99
los List clasificados (y en general Collection clasificados) son como los templates de c++.
se declararian como
Collection<LaClaseQueQuiera> miColeccion
y no necesita castings para consultar los objetos contenidos en la colecion. El funcionamiento es el mismo, pero la coleccion ahora solo acepta la clase usada entre <> envez de Objetc
 

FoxM

Lanero Reconocido
25 Jun 2004
917
Java Generics:
antes:
PHP:
// Removes 4-letter words from c. Elements must be strings
static void expurgate(Collection c) {
    for (Iterator i = c.iterator(); i.hasNext(); )
      if (((String) i.next()).length() == 4)
        i.remove();
}

Ahora:
PHP:
// Removes the 4-letter words from c
static void expurgate(Collection<String> c) {
    for (Iterator<String> i = c.iterator(); i.hasNext(); )
      if (i.next().length() == 4)
        i.remove();
}
 

m@uro

Lanero Regular
23 Sep 2005
36
Hola Laneros!
No se si me puedan ayudar con algunos tutoriales de javasim o de trabajo de java con el simulador arena
 

Maaaa giver

Lanero Regular
26 Dic 2005
99
Vayeya_bttf dijo:
pues ya lo hice asi y no me da el salto de linea ni tabulacion osea ya no me marca error pero no me hace nada :muerto:

Aparentemente swing no toma encuenta caracteres especiales como \n o \t...
no se como se solucione esto
 

UAC-PERRILLOS10

Lanero Reconocido
26 Jul 2004
1,193
si los toma, prueba a ver....guarda todo el texto con \n y \t en una variable y mandalo como parametro a joption o a lo que sea para que veas
 

paracelso

Lanero Regular
20 Feb 2004
63
Eso depende de la clase; no todos los componentes graficos procesan saltos de linea o comandos de ese estilo... por ejemplo los jlabel.
 

Vayeya_bttf

Lanero Reconocido
19 Abr 2005
147
paracelso dijo:
Eso depende de la clase; no todos los componentes graficos procesan saltos de linea o comandos de ese estilo... por ejemplo los jlabel.
ahhhhhh pues lo que estoy ocupando ej jlabel.... entonces no puedo agregarle un salto e linea???:muerto:
 

NSlaver

Jack of all trades
16 Abr 2002
3,548
Vayeya_bttf dijo:
ahhhhhh pues lo que estoy ocupando ej jlabel.... entonces no puedo agregarle un salto e linea???:muerto:

De lo más sencillo que se puede hacer para emular las secuencias de escape es utilizar la capacidad de algunos componentes de swing para mostrar html:

PHP:
JLabel labelConColoresYSaltos = new JLabel("<html><center><b><u>N-</u>Slaver</b><br>"
                + "<font color=#ffffdd>www.laneros.com</font>");

Si no le gusta esta opción le toca pensar en modificar un l&f para que acepte este tipo de caracteres y de eso npi
 

la_lio

Lanero Regular
31 Mar 2006
2
Hola pues soi nueva aque y en java asi que me gustaria saber si me podrian ayudar con una duda que tengo:
Quisiera saber si se puede poner algo como hipervinculos de un programa de java aha otro???
 

Vayeya_bttf

Lanero Reconocido
19 Abr 2005
147
NSlaver dijo:
De lo más sencillo que se puede hacer para emular las secuencias de escape es utilizar la capacidad de algunos componentes de swing para mostrar html:

PHP:
JLabel labelConColoresYSaltos = new JLabel("<html><center><b><u>N-</u>Slaver</b><br>"
                + "<font color=#ffffdd>www.laneros.com</font>");

Si no le gusta esta opción le toca pensar en modificar un l&f para que acepte este tipo de caracteres y de eso npi
ya me confundiii tambien funicona con codigo java?????? yo no estoy trabajando con jsp si no un aplicacion standalone :S
 

SlashOne

Lanero Regular
1 Mar 2006
87
Vayeya_bttf dijo:
ya me confundiii tambien funicona con codigo java?????? yo no estoy trabajando con jsp si no un aplicacion standalone :S

Sin embargo algunos componentes de java como el JTextPane y JEditorPane pueden contener documentos HTML y mostrarlos; en el caso especial de JLabel, la funcionalidad es diferente ya que este simplemente detecta si el String que le pones como texto comienza por "<html>" (así, en minúsculas), y hace una interpretación simple de sus contenidos.

En este caso por ejemplo te permite insertar saltos de línea, pero ojo que no es con <br> como en html normal, sino con <p> (Así mismo sin usar </p> ni nada, funciona como si fuera <br>)

HTH
 

FoxM

Lanero Reconocido
25 Jun 2004
917
Vayeya_bttf dijo:
ya me confundiii tambien funicona con codigo java?????? yo no estoy trabajando con jsp si no un aplicacion standalone :S


Claro que se puede. Al compilar el programa, se analiza si el string del componente Swing es codigo html, y en caso de serlo, se procesa como cualquier html. La restriccion que parece haber es que el string debe comenzar con el texto "<html>" y luego si todo el codigo html que se requiera

http://java.sun.com/docs/books/tutorial/uiswing/components/html.html

Funciona incluso en el tool tip text
 

nena87

Lanero Regular
1 Abr 2006
2
Hola laneros!vereis! soy nueva aqui y nada estoy desesperada,
smiley%20-%20cry.gif
tengo q hacer una práctica en java del tetris pero no el tetris completo sino varios métodos y funciones,únicamente q muestre en la consola nada más.Pero soy principiante y no tengo mucha idea.Yo he hecho todo prácticamente solo quedaría completarlo,y tengo que entregarlo esta semana,si hay alguna persona q seria tan amable de ayudarme por favor que me agregue y le paso mi codigo para que me ayude.
mi messenger es elenukiya@hotmail.com
muchas gracias por adelantado
 

Los últimos temas