Barra de estado
Saludos compañeros, estoy haciendo una barra de estado y al pulsar las distintas opciones de un menu kiero k me aparezca un mensaje distinto. En la barra de estado tengo un panel y le añadi a ese dos paneles, en el d la izda pongo los msj y en el d la derecha lahora. pues bien, cada vez que se pulse una opcion del menu hago lo siguiente para mostrar el mensaje:
JLabel c=new JLabel("Opcion menu");
panel_informacionl.add(c);
pero me salen los mensajes uno al lado del otro, y lo k kiero es k salgan encima, k machaque lo que habia anteriormente. Alguien me puede ayudar para hacerlo porfavor ??? Gracias.
JLabel c=new JLabel("Opcion menu");
panel_informacionl.add(c);
pero me salen los mensajes uno al lado del otro, y lo k kiero es k salgan encima, k machaque lo que habia anteriormente. Alguien me puede ayudar para hacerlo porfavor ??? Gracias.
Un par de aclaraciones... Primero cada ves que haces eso lo que haces es crear un nuevo objeto y lo agregas al contenedor, por ende asi como funciona esta andando perfecto.
Lo que deberias hacer es remover el label antes de crear uno nuevo y añadirlo, pero de la forma en que tenes planteado el esquema no creo que te salga bien. Es mas si planteas las cosas bien no hace falta crear un nuevo label. Ahora te ayudo. Mira creas la clase BarraEstado
public class BarraEstado extends JPanel{
private JLabel mensaje;
private JPanel panelDerecha;
private JPanel panelIzquierda;
public BarraEstado(){
setLayout() //El que queiras
mensaje = new JLabel();
panelDerecha = new JPanel();
panelDerecha.add(mensaje);
panelIzquiera = new JPanel(); // Iicias los dos paneles
}
public void escribirMensaje(String msn){
mensaje.setText(msn);
}
}
Bueno que pasa cada vez que cambies algo en el menu llama a mostrar mensaje pasandole el String del mensaje que queres que se muestre en la barra fijate que no agrego un objeto nuevo cada ves que llames al metodo, ademas no creas un objeto cada ves que llamas al metodo lo que es un poco mas eficiente y no hizo falta remover nada del Panel los paneles tienen un metodo remove que pasandole el nombre del objeto eliminan el objeto que agregaste.
Saludos
Sebastian
Lo que deberias hacer es remover el label antes de crear uno nuevo y añadirlo, pero de la forma en que tenes planteado el esquema no creo que te salga bien. Es mas si planteas las cosas bien no hace falta crear un nuevo label. Ahora te ayudo. Mira creas la clase BarraEstado
public class BarraEstado extends JPanel{
private JLabel mensaje;
private JPanel panelDerecha;
private JPanel panelIzquierda;
public BarraEstado(){
setLayout() //El que queiras
mensaje = new JLabel();
panelDerecha = new JPanel();
panelDerecha.add(mensaje);
panelIzquiera = new JPanel(); // Iicias los dos paneles
}
public void escribirMensaje(String msn){
mensaje.setText(msn);
}
}
Bueno que pasa cada vez que cambies algo en el menu llama a mostrar mensaje pasandole el String del mensaje que queres que se muestre en la barra fijate que no agrego un objeto nuevo cada ves que llames al metodo, ademas no creas un objeto cada ves que llamas al metodo lo que es un poco mas eficiente y no hizo falta remover nada del Panel los paneles tienen un metodo remove que pasandole el nombre del objeto eliminan el objeto que agregaste.
Saludos
Sebastian