Foro de elhacker.net

Programación => Java => Mensaje iniciado por: PabloPbl en 7 Diciembre 2014, 07:56 am



Título: [Solucionado]Como agrego un JScrollPane para la siguiente ventana
Publicado por: PabloPbl en 7 Diciembre 2014, 07:56 am
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
  1. ventana3 = new JFrame();
  2. ventana3.setResizable(false);
  3. ventana3.setLocation(200,200);
  4. ventana3.setSize(400,400);
  5.  
  6. panel1 = new JPanel();
  7. panel1.setLayout(new BoxLayout(panel1, BoxLayout.Y_AXIS));
  8.  
  9. //Con este ciclo agrego 30 Labels al panel.
  10. int contador = 0;
  11. while(contador < 30){
  12.   JLabel label = new JLabel("Label");
  13.   panel1.add(label);
  14.   contador ++;
  15. }
  16. ventana3.add(panel1);
  17. 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.


Título: Re: [Ayuda]Como agrego un JScrollPane para la siguiente ventana
Publicado por: PabloPbl en 8 Diciembre 2014, 18:18 pm
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
  1. ventana3 = new JFrame();
  2. ventana3.setResizable(false);
  3. ventana3.setLocation(200,200);
  4. ventana3.setSize(400,400);
  5.  
  6. JPanel panel1 = new JPanel();
  7. panel1.setLayout(new BoxLayout(panel1, BoxLayout.Y_AXIS));
  8.  
  9. //Con este ciclo agrego 30 Labels al panel.
  10. int contador = 0;
  11. while(contador < 30){
  12.   JLabel label = new JLabel("Label");
  13.   panel1.add(label);
  14.   contador ++;
  15. }
  16.  
  17. JSrollPane scrollpane = new JScrollPane(panel1);
  18. ventana3.add(scrollpane);
  19. 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 :)