[SOLUCIONADO] Crear un jLabel dentro de un jFrame existente

Iniciado por almensilla, 31 Diciembre 2010, 22:26 PM

0 Miembros y 1 Visitante están viendo este tema.

almensilla

Buenas a todos,
es la primera vez que escribo en este foro y la verdad es que ya estoy desesperado porque no encuentro la manera de resolver un problema que me surge.

Os pongo en situacion:
Tengo un jFrame que hace varias cosas, y una de ellas es mostrar una lista con varios componentes y lo que me gustaria conseguir es que cada vez que pulse un componente de esa lista, se cree un jLabel en un jFrame diferente (no el que contiene esa lista) pero que ya existe.

He intentado de todo, me he metido en foros ingleses pero nadie tiene esta duda concreta, o las respuestas que he visto no me han servido.

Lo que he intentado hacer es:
en el evento del click de la lista, he creado el jLAbel y despues he llamado directamente al jFrame y lo he intentado añadir. Lo he hecho de todas estas maneras:

- jFrame1.getContentPane().add(jLabel)
-jFrame1.getContentPane().add(jLabel).validate();
-jFrame1.add(jlabel);
-jFrame1.getContentPane().add(textLabel);
 jFrame1.pack();

Y varias mas pero que ahora mismo no recuerdo. He probado a que se cree un jFrame nuevo y añadirlo y eso SI funciona. Pero lo que yo quiero es que se añada en un jFrame que ya existe.

Por si sirve de algo os dejo el esquema de la gui:

-jFrame1
 +jMenuBar
 -jLayeredPane1
    ·label jLabel1

Tambien he intentado añadirlo directamente al jlayeredpane (Que en realidad es donde lo quiero meter) pero tampoco hace nada.

Agradezco cualquier ayuda!

saludos

klaine

intenta lo siguiente:

Código (java) [Seleccionar]


Container panel = tuVentana.getContentPane();

tuVentana.setVisible(false);
panel.add(TuComponente);
tuVentana.setVisible(true);


almensilla

#2
Que va, no funciona. Os pongo el codigo por si os sirve de algo:
Código (java) [Seleccionar]

private void jList2MouseClicked(java.awt.event.MouseEvent evt) {                                    
       // TODO add your handling code here:
       System.out.println("Aqui ha yegado");
       JLabel textLabel = new JLabel("I'm a label in the window",SwingConstants.CENTER);
       textLabel.setPreferredSize(new Dimension(300, 100));
       textLabel.setIcon(new javax.swing.ImageIcon("images/map/error.png") );
       textLabel.setVisible(true);
       textLabel.setEnabled(true);
       textLabel.setLayout(null);

      // jFrame1.getContentPane().setLayout(new FlowLayout());

       Container panel=jFrame1.getContentPane();
       jFrame1.setVisible(false);
       panel.add(textLabel);
       jFrame1.setVisible(true);
   


       //jFrame1.getContentPane().add(textLabel);
       //jFrame1.pack();


Muchas gracias!!

almensilla

Nadie se le ocurre como poder hacerlo?

Y sabeis si se puede en vez de hacer lo que yo quiero hacer, arrastrar un elemento de esa lista a otro jFrame y que se quede ahi?

Basicamente la idea de lo que quiero hacer es que en una lista se muestren un conjunto de elementos que estan funcionando en ese instante (son elementos que pueden desaparecer o darse de alta solos) y que pueda coger cada uno de esos elementos de esa lista y los pueda mostrar en un mapa. Habia pensado en arrastrarlo o en su defecto lo que dije al principio de pinchar en el y que apareciera en el otro jframe para desde ahi poder arrastrarlo y colorcalo en la zona del mapa que yo quiera.

Sabeis como se puede hacer eso, o teneis algun ejemplo similar??
Muchas Gracias y feliz año!

klaine

¿y si simplemente destruyes esa ventana?, luego creas una nueva con los valores que deseas

Código (java) [Seleccionar]

TuVentana.dispose();
// <crear nueva ventana>


Previamente guardas los valores que deseas que tenga en variables static, declaradas globalmente.

Leyer

#5
Cita de: almensilla en  1 Enero 2011, 17:53 PM
Y sabeis si se puede en vez de hacer lo que yo quiero hacer, arrastrar un elemento de esa lista a otro jFrame y que se quede ahi?

:http://www.roseindia.net/java/example/java/swing/drag-drop.shtml

Para el problema principal ,Tienes que usar un panel y agregar el componente a el  luego llamas al metodo updateUI().

un saludo.

almensilla

Muchas gracias por las respuestas. Esta tarde lo pruebo que no tengo ahora mismo el proyecto en este ordenador, y os comento.

Un saludo

L0n3l1eR

Disculpa la pregunta pero lo estas haciendo manualmente o usando el palette?

almensilla

Ummm no se a qué te refieres con el palette. Lo estoy haciendo con la interfaz de netbeans, es decir, seleccionando los componentes que quiero que tenga mi GUI y los voy colocando como quiero, y lo unico que voy programanado son lso eventos del mouse y tal..

kondrag_X1

alomejor te interesa utilizar JDialog es lo mismo xD ,bueno parecido a JFrame pero te lo habre aparte.

aki el link :http://download.oracle.com/javase/1.4.2/docs/api/javax/swing/JDialog.html