elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Agregar un JLabel en tiempo de ejecución
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Agregar un JLabel en tiempo de ejecución  (Leído 5,027 veces)
zonahurbana

Desconectado Desconectado

Mensajes: 178

RS, JC.


Ver Perfil WWW
Agregar un JLabel en tiempo de ejecución
« en: 30 Julio 2013, 00:06 am »

¿Cómo puedo agregar un JLabel en tiempo de ejecución?

Es decir, en el momento de que "suceda algo" quiero que aparezca una imagen en una posición determinada.
Quisiera que el JLabel se cree en ese instante y se muestre en una posición que yo elija basándome en datos que se han obtenido en tiempo de ejecución.
No quisiera respuestas como "créalo oculto y luego muéstralo" porque de seguro es posible crearlo al instante, sólo que no tengo idea de cómo  :silbar:

Gracias de antemano ...


En línea

Nunca dejar de aprender es importante, más allá del ritmo que se siga ...
1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Agregar un JLabel en tiempo de ejecución
« Respuesta #1 en: 30 Julio 2013, 00:17 am »

Claro que es posible.

Código
  1. private javax.swing.JLabel jLabel1;
  2. .
  3. .
  4. .
  5. //aquí el momento en el que sucede algo
  6.  
  7. jLabel1 = new javax.swing.JLabel();
  8.  
  9.        jLabel1.setText("jLabel1");
  10.        jPanel1.add(jLabel1);
  11.        jLabel1.setBounds(200, 160, 34, 14);
  12.  
  13. //se cierra el momento en el que sucede algo
  14.  
  15.  


En línea

abc
zonahurbana

Desconectado Desconectado

Mensajes: 178

RS, JC.


Ver Perfil WWW
Re: Agregar un JLabel en tiempo de ejecución
« Respuesta #2 en: 30 Julio 2013, 00:46 am »

Muchas gracias por responder.

La verdad es que estoy tratando de hacer el juego de la "Snake" (lo he visto como reto en la sección C++, en donde usan las bibliotecas SDL y Allegro, pero quiero intentarlo con Java en modo GUI usando los JFrame, de paso que aprendo sobre este lenguaje, que lo llevaré como curso el ciclo entrante).

Como aún no he avanzado mucho quiero probar antes cómo serían las funciones para agregar un JLabel y que se muestre (esto sería cuando se ha "comido" un objeto determinado y la Snake debe crecer).

Este es el código que he escrito referente a ello:
Código
  1.    private void formWindowOpened(java.awt.event.WindowEvent evt) {                                  
  2.        ArrayList<javax.swing.JLabel> Bloques = new ArrayList<>();
  3.        Bloques.add( new javax.swing.JLabel("/SnakePackage/imgs/body.gif") );
  4.        MyMain.add(Bloques.get(0));
  5.        Bloques.get(0).setLocation(0, 0);
  6.    }    
No estoy totalmente seguro, pero me parece que esta función se activa una sola vez cuando se inicia el programa.
Estoy creando un ArrayList para almacenar allí los JLabel que se vayan creando. Estos JLabel en realidad no contienen texto y son una imagen muy pequeña (10x10px me parece).

Hasta antes conseguía que un JLabel con la misma imagen se moviera (derecha, izquierda, arriba, abajo) según se presionen las teclas correspondientes y allí cambiaba la posición con setLocation(x, y).

El error me dice que un método non-static no puede ser referenciado de un contexto static. ¿Cómo es eso?

Bueno, MyMain es el nombre que le puse al JFrame cuando lo agregué al paquete, pero al parecer no es un JPanel (¿es necesario que cree uno?):
Código
  1. public class MyMain extends javax.swing.JFrame
En línea

Nunca dejar de aprender es importante, más allá del ritmo que se siga ...
zonahurbana

Desconectado Desconectado

Mensajes: 178

RS, JC.


Ver Perfil WWW
Re: Agregar un JLabel en tiempo de ejecución
« Respuesta #3 en: 30 Julio 2013, 21:56 pm »

He conseguido que funcione con:
Código
  1. this.getContentPane().add( NOMBRE_DEL_OBJETO );
Tal vez le sea de ayuda a alguien posteriormente...
En línea

Nunca dejar de aprender es importante, más allá del ritmo que se siga ...
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como agregar un check box en tiempo de ejecucion????
Programación Visual Basic
agutin1983 0 1,685 Último mensaje 21 Noviembre 2005, 19:55 pm
por agutin1983
Agregar controles en tiempo de ejecucion
Programación Visual Basic
Garrido_jesus20 6 3,672 Último mensaje 29 Marzo 2006, 21:57 pm
por Garrido_jesus20
JTable... como agregar filas en tiempo de ejecucion
Java
Lu15_CL4 6 40,138 Último mensaje 31 Mayo 2008, 03:17 am
por Lu15_CL4
JLabel no moficado en tiempo de ejecucion
Java
Xedrox 3 2,091 Último mensaje 6 Mayo 2014, 21:42 pm
por Zoik
agregar columnas al datagrid en tiempo de ejecucion
.NET (C#, VB.NET, ASP)
SAGA-gl 1 8,319 Último mensaje 1 Julio 2015, 16:26 pm
por SAGA-gl
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines