Java - LLamar un JPanel creado en otra clase

 
Vista:

LLamar un JPanel creado en otra clase

Publicado por LALO (4 intervenciones) el 20/06/2016 02:41:21
Hola programadores
soy nuevo en esto y requiero llamar a un panel creado en una clase, desde otra clase para usarlo

es más o menos así

a)
método main
aquí está instanciado el marco, se hace visible y se acaba el programa al terminar su ejecución

b) clase del marco
aquí se adhiere una lámina de la clase 1, con border layout
aquí también se pega una lamina de la clase 2 en el centro de la lamina de la clase 1
aquí fueron instanciadas las laminas de la clase 1 y la clase 2

c) Clase de la lamina 1 (esta sin datos, solo sirve para sostener las láminas que se irán poniendo y quitando.

d)clase de la lamina 2
tiene unos datos JLabel y un JButton, al presionarlo debe borrar la lamina 2 del centro de la lamina 1 y mostrar la lamina 3

e) clase de la lamina 3
tiene un Jlabel que me dice que si pude quitar la lámina 2 y mostrar la 3


toda la parte lógica de mi programa ya está terminada, solo me falta poder quitar la lámina dos del centro de la lámina 1 y poder poner en ese mismo lugar la lamina 3 al pulsar el botón de la lámina 2
El asunto es que instancío la clase de la lamina 2 en el marco para adherirla al centro de la lamina 1 y luego ya no puedo llamarla de la clase 2 para ponerle el remove all y llenarla de la lamina 3
gracias por su ayuda
el código está adjunto, si no entienden lo que requiero, me bastaría con que me mostrarán como quitar una lámina del marco y mostrar otra en el mismo lugar, tal vez sea básico pero es lo único que me falta, ya tengo 16 láminas de un programa con sus funciones cada una, pero no puedo cambarlas para mostrarlas, el ejemplo que envío es el más sencilo que pude hacer para entender como se podría realizar el proceso.
package pruebas;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class PruebaPaneless {

public static void main(String[] args) {
MarcoPaneles marcopruebas= new MarcoPaneles();
marcopruebas.setVisible(true);
marcopruebas.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

class MarcoPaneles extends JFrame {
public MarcoPaneles (){
Dimension pantalla= Toolkit.getDefaultToolkit().getScreenSize();
int altura=pantalla.height;
int ancho=pantalla.width;
setLocation(ancho/4, altura/4);
setSize(ancho/2, altura/2);
setTitle ("Cambiar paneles");

laminainicial= new LaminaInvisible();
add(laminainicial);

L1= new Lamina1(JPanel laminainicial);
laminainicial.add(L1, BorderLayout.CENTER);
}

}

class LaminaInvisible extends JPanel {
public LaminaInvisible(){
setLayout(new BorderLayout());
}
public JPanel laminainicial;
}


class Lamina1 extends JPanel{

public Lamina1(JPanel laminainicial){
boton1= new JButton("Boton de prueba");
add(boton1);

Lamina2 L2= new Lamina2();
boton1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.out.println("El botón ha sido pulsado");


laminainicial.removeAll();
laminainicial.add(L2, BorderLayout.CENTER);
laminainicial.revalidate();
}
});
}
public JPanel L1;
private JButton boton1;
}

class Lamina2 extends JPanel{
public Lamina2(){
JLabel texto= new JLabel("Pudiste cambiar de lamina", JLabel.CENTER);
add(texto);
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

LLamar un JPanel creado en otra clase

Publicado por Maritza (6 intervenciones) el 20/06/2016 17:03:44
hola!
para poder usar algunos de los objetos entre diferentes clases solo debes de designar que sea publico, una solución es nombrar a tu objeto (asignarlo a una variable) y después hacerlo publico.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

LLamar un JPanel creado en otra clase

Publicado por LALO (4 intervenciones) el 22/06/2016 01:40:41
Muchas gracias por tu respuesta
me podrías poner un ejemplo?
ya intenté muchas cosas y no puedo hacerlo
muchas gracias
LALO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

LLamar un JPanel creado en otra clase

Publicado por Maritza (4 intervenciones) el 27/06/2016 08:20:54
Hola!
lo primero que debes es cambiar el JPanel a publico, para esto debes de dar clic derecho y seleccionar customize code y en vez de que sea privado lo cambias a publico.haces una instancia de la clase en donde se encuentre el jpanel que quieres utilizar.
o tambien puedes crear una clase de tipo panel asi;
public class Panel extends JPanel {
Datos de tu JPanel
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

LLamar un JPanel creado en otra clase

Publicado por LALO (4 intervenciones) el 29/06/2016 00:14:06
Muchas gracias
lo intentaré
saludos
LALO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar