[Solucionado]Como agrego un JScrollPane para la siguiente ventana

Iniciado por PabloPbl, 7 Diciembre 2014, 07:56 AM

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

PabloPbl

Tengo un JFrame en el cual tiene contenido un JPanel(BoxLayout - orden vertical), en ese JPanel tengo 30 JLabels que se ordenan hacia abajo.
Esta seria la ventana:

Código (java) [Seleccionar]

ventana3 = new JFrame();
ventana3.setResizable(false);
ventana3.setLocation(200,200);
ventana3.setSize(400,400);

panel1 = new JPanel();
panel1.setLayout(new BoxLayout(panel1, BoxLayout.Y_AXIS));

//Con este ciclo agrego 30 Labels al panel.
int contador = 0;
while(contador < 30){
  JLabel label = new JLabel("Label");
  panel1.add(label);
  contador ++;
}
ventana3.add(panel1);
ventana3.setVisible(true);


Lo que quiero lograr es poner una barra de desplazamiento(JScrollPane) vertical al JPanel, para poder ver todos los JLabels contenidos en el JPanel.

PabloPbl

Después de investigar bastante e intentar, he dado en el blanco.

Por si alguien le sirve acá lo explico un poco:

Resulta que JScrollPane sirve como un contenedor.
Crean un Jpanel.
Creo un objeto del tipo JScrollPane y le paso como parámetro, el panel(JPanel) que contendrá los Scroll.
Una vez que tengamos creado eso, agregamos el JScrollPane, NO el panel.
Sirve para deslizarse verticalmente y horizontal  ;).

Código (java) [Seleccionar]

ventana3 = new JFrame();
ventana3.setResizable(false);
ventana3.setLocation(200,200);
ventana3.setSize(400,400);

JPanel panel1 = new JPanel();
panel1.setLayout(new BoxLayout(panel1, BoxLayout.Y_AXIS));

//Con este ciclo agrego 30 Labels al panel.
int contador = 0;
while(contador < 30){
  JLabel label = new JLabel("Label");
  panel1.add(label);
  contador ++;
}

JSrollPane scrollpane = new JScrollPane(panel1);
ventana3.add(scrollpane);
ventana3.setVisible(true);


Pues así fue como me ha funcionado a mi, corríjanme si me equivoco.
Si algo no entienden, díganmelo en los comentario y con gusto les explico :)