Ayuda con JTabbedPane
Hola a todos... Mi problema es que tengo un JTabbedPane ya tengo dos paneles agregados, pero necesito ocultar un Panel presionando un boton y luego hacerlo visible presionando otro boton, con que metodo puedo hacer que se oculte y se visualice? Espero que me ayuden por favor.
- Inicie sesión o regístrese para enviar comentarios
setVisible()
setVisible()
Descripción
El comando setVisible() muestra u oculta los objetos especificados por objeto.
Si especifica el parámetro opcional *, indica que el parámetro objeto designa el nombre de un objeto (una cadena). Si no pasa el parámetro *, indica que el parámetro objeto es un campo o una variable. En este caso, usted especifica una referencia de un campo o de una variable (campo o variable tipo objeto únicamente) en lugar de una cadena. Para mayor información sobre nombres de objetos, consulte la sección Propiedades de los objetos.
Si pasa visible igual a TRUE, los objetos son mostrados. Si pasa visible igual a FALSE, los objetos se ocultan.
Saludos.
Hola amigo creo que no me
Hola amigo creo que no me expliqué... yo lo que quiero hacer es por ejemplo: en el TabbedPane agrego dos, tres ... (Panels) ahora con un boton dejar de visualizar un panel o una ficha del JTabbedPane y luego con un boton hacer visible esa ficha o panel. Lo que tu me dices con respecto al setVisible(false) es para dejar de mostrar todo el JTabbedPane. gracias por tu ayuda
Podrias poner tu codigo
Podrias poner tu codigo. Porfavor
Saludos.
creo que no se puede ocultar
creo que no se puede ocultar solo una pestaña del Tabed, ¿cual seria el caso?, sin embargo si pudes agregar y quitar pestañas, trabajando bien esto, puedes lograr el efecto de mostrar/ocultar una pestaña..
El Codigo
este es el codigo estaba probando algo como esto pero no funcionó:
en el actionperformed del boton cerrar
Component temp; //variable para obtener repaldo de la ficha que se borra
int index; // indice de la ficha
index = panelFichas.getSelectedIndex();
temp=panelFichas.getComponentAt(index);
panelFichas.removeTabAt(index);
y en el actionperformed del boton abrir
panelFichas.add(temp.getName(), temp); // añade la ficha que borré la que esta en temp
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JTabbedPane;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.SwingConstants;
public class tabPane extends JFrame
{
JTabbedPane panelFichas = new JTabbedPane(); // crea objeto JTabbedPane
JButton botonCerrar, botonAbrir;
BorderLayout pos;
// establece la GUI
public tabPane()
{
super( "Demo de JTabbedPane " );
pos = new BorderLayout(5, 5);
setLayout(pos);
panelFichas = new JTabbedPane();
botonCerrar = new JButton("Cerrar");
botonAbrir = new JButton("Abrir");
// establece pane11 y lo agrega al objeto JTabbedPane
JLabel etiqueta1 = new JLabel( "panel uno", SwingConstants.CENTER );
JPanel panel1 = new JPanel(); // crea el primer panel
panel1.add( etiqueta1 ); // agrega etiqueta al panel
panelFichas.addTab( "Ficha uno", null, panel1, "Primer panel" );
// establece panel2 y lo agrega al objeto JTabbedPane
JLabel etiqueta2 = new JLabel( "panel dos", SwingConstants.CENTER );
JPanel panel2 = new JPanel(); // crea el segundo panel
panel2.setBackground( Color.YELLOW ); // establece el color de fondo en amarillo
panel2.add( etiqueta2 ); // agrega etiqueta al panel
panelFichas.addTab( "Ficha dos", null, panel2, "Segundo panel" );
ManejadorBoton manejador = new ManejadorBoton();
botonCerrar.addActionListener(manejador);
botonAbrir.addActionListener(manejador);
add(botonCerrar, BorderLayout.NORTH);
add(botonAbrir, BorderLayout.SOUTH);
add( panelFichas, BorderLayout.CENTER ); // agrega objeto JTabbedPane al marco
} // fin del constructor de MarcoJTabbedPane
// clase interna para manejar eventos de botón
private class ManejadorBoton implements ActionListener
{
// maneja evento de botón
public void actionPerformed( ActionEvent evento )
{
if(evento.getSource() == botonCerrar)
System.out.println("que se cierrre la ficha seleccionada");
if(evento.getSource() == botonAbrir)
System.out.println(" que se abra o visualice la ficha q estaba cerrada");
} // fin del método actionPerformed
} // fin de la clase interna privada ManejadorBoton
} // fin de la clase MarcoJTabbedPane
Ya lo solucioné
Gracias por su ayuda...
Lo que hice fué
tengo unas variables
Component temp; //variable para obtener repaldo de la ficha que se borra
int index; // indice de la ficha
ok que era lo que habia que hacer tratar de ocultar una ficha de un jtabbedPane cuando se presione un boton y luego mostrar esa ficha presionando otro boton para ello borré la ficha y la respaldé en la variable temp, en la variable index guardé el indice de la ficha con el metodo getSelectedIndex() y luego con el metodo removeTabAt(index)
borra la ficha pero en sí ella esta respaldada en la variable temp.... y luego en el boton para mostrar la ficha borrada utilicé el metodo add de JTabbedPane era tan facil pero no se me habia ocurrido...
// actionPerformet boton cerrar
index = panelFichas.getSelectedIndex();
temp=panelFichas.getComponentAt(index);
panelFichas.removeTabAt(index);
// actionPerformet boton abrir
tab.add("nombre de la ficha", temp);
No me habia percatado que dentro del panel de las ficha no tenia nada y por eso no notaba los cambios yo creia que haciendo esto tab.add("nombre de la ficha", temp); me creaba una ficha nueva pero no es asi ya que le paso temp que tiene la ficha que habia cerrado.
Para aquellos que tengan una mejor solucion por favor que la compartan
@Shadonwk
@Shadonwk menciono algo asi como lo que tu realizaste, que bien que ayas podido resolver tu problema no se me habia ocurrido hacer eso pero es algo nuevo de aprendizaje que deja este foro.
Saludos.