Autor
|
Tema: Agregar Scrollbar a JPanel (Leído 7,301 veces)
|
GSecurity
Desconectado
Mensajes: 9
|
Hola a todos, Este problema es muy posteado en distintos foros de programacion, sin embargo ninguno ha logrado ayudarme o quiza no he logrado entender . Tengo un JPanel con layout Flow en donde agrego controles de manera dinamica, simplemente necesito agregar un scrollbar VERTICAL. Codigo: JPanel pnlcenter = new JPanel(); for (int i = 0; i < 50; i++) { JButton btnAgrega = new JButton("Hola"); pnlcenter.add(btnAgrega); } pnlcenter.setLayout(new FlowLayout()); pnlcenter.setBorder(BorderFactory.createLineBorder(Color.black)); pnlcenter.setBounds(0, 0, 200, 200); pnlcenter.setPreferredSize(new Dimension(2000, 2000)); pnlcenter.setVisible(true); JScrollPane scroller = new JScrollPane(pnlcenter); scroller.setViewportView(pnlcenter); this.add(pnlcenter); Esto es tan basico que aun asi no logro resolverlo Help me please !!
|
|
|
En línea
|
|
|
|
rub'n
Desconectado
Mensajes: 1.217
(e -> λ("live now")); tatuar -> λ("α");
|
Hola a todos, Este problema es muy posteado en distintos foros de programacion, sin embargo ninguno ha logrado ayudarme o quiza no he logrado entender . Tengo un JPanel con layout Flow en donde agrego controles de manera dinamica, simplemente necesito agregar un scrollbar VERTICAL. Codigo: JPanel pnlcenter = new JPanel(); for (int i = 0; i < 50; i++) { JButton btnAgrega = new JButton("Hola"); pnlcenter.add(btnAgrega); } pnlcenter.setLayout(new FlowLayout()); pnlcenter.setBorder(BorderFactory.createLineBorder(Color.black)); pnlcenter.setBounds(0, 0, 200, 200); pnlcenter.setPreferredSize(new Dimension(2000, 2000)); pnlcenter.setVisible(true); JScrollPane scroller = new JScrollPane(pnlcenter); scroller.setViewportView(pnlcenter); this.add(pnlcenter); Esto es tan basico que aun asi no logro resolverlo Help me please !! Mmm eso de que en ningun lugar leiste una solucion, suena a que no buscaste nada, siempre la hay LMAOO/* */ public class ScrollPanel extends JFrame { public ScrollPanel() { for (int i = 0; i < 50; i++) { pnlcenter.add(btnAgrega); } pnlcenter. setLayout(new FlowLayout()); // por defecto usa FlowLayout pnlcenter.setBounds(0, 0, 200, 200); pnlcenter. setPreferredSize(new Dimension(600, 600)); pnlcenter.setVisible(true); scroller.setViewportView(pnlcenter); this.add(scroller); this.pack(); this.setLocationRelativeTo(null); this. setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE); this.setVisible(true); } public static void main (String ... blablla) { new Thread(ScrollPanel ::new). start(); } }
Puedes tambien de la siguiente manera con los métodos suyosscroller.setViewportView(pnlcenter); scroller. setVerticalScrollBarPolicy(JScrollPane. VERTICAL_SCROLLBAR_ALWAYS);scroller. setHorizontalScrollBarPolicy(JScrollPane. HORIZONTAL_SCROLLBAR_NEVER);
tambien que en la linea 22 tu no añadias el JScrollPane al JFrame me imagino.
|
|
« Última modificación: 27 Enero 2020, 00:50 am por rub'n »
|
En línea
|
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen king
|
|
|
GSecurity
Desconectado
Mensajes: 9
|
Mmm eso de que en ningun lugar leiste una solucion, suena a que no buscaste nada, siempre la hay LMAOO/* */ public class ScrollPanel extends JFrame { public ScrollPanel() { for (int i = 0; i < 50; i++) { pnlcenter.add(btnAgrega); } pnlcenter. setLayout(new FlowLayout()); // por defecto usa FlowLayout pnlcenter.setBounds(0, 0, 200, 200); pnlcenter. setPreferredSize(new Dimension(600, 600)); pnlcenter.setVisible(true); scroller.setViewportView(pnlcenter); this.add(scroller); this.pack(); this.setLocationRelativeTo(null); this. setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE); this.setVisible(true); } public static void main (String ... blablla) { new Thread(ScrollPanel ::new). start(); } }
Puedes tambien de la siguiente manera con los métodos suyosscroller.setViewportView(pnlcenter); scroller. setVerticalScrollBarPolicy(JScrollPane. VERTICAL_SCROLLBAR_ALWAYS);scroller. setHorizontalScrollBarPolicy(JScrollPane. HORIZONTAL_SCROLLBAR_NEVER);
tambien que en la linea 22 tu no añadias el JScrollPane al JFrame me imagino. Simplemente agregue toda estas lineas de codigo y ahora al ejecutar el frame se ve completamente vacio. final JScrollPane scroller = new JScrollPane(pnlcenter, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); scroller.setViewportView(pnlcenter); this.setSize(new Dimension(400,400)); this.add(scroller); this.pack(); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); Que puede estar pasando? hay algo que no debo estar entendiendo
|
|
|
En línea
|
|
|
|
rub'n
Desconectado
Mensajes: 1.217
(e -> λ("live now")); tatuar -> λ("α");
|
Simplemente agregue toda estas lineas de codigo y ahora al ejecutar el frame se ve completamente vacio. final JScrollPane scroller = new JScrollPane(pnlcenter, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); scroller.setViewportView(pnlcenter); this.setSize(new Dimension(400,400)); this.add(scroller); this.pack(); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); Que puede estar pasando? hay algo que no debo estar entendiendo Pasa el codigo. que a en mi maquina funciona LMFAOOY usa GeSHI para añadir el codigo java.
|
|
« Última modificación: 1 Febrero 2020, 10:04 am por rub'n »
|
En línea
|
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen king
|
|
|
GSecurity
Desconectado
Mensajes: 9
|
Pasa el codigo. que a en mi maquina funciona LMFAOOY usa GeSHI para añadir el codigo java. Aqui te dejo mi codigo, el formulario lo he creado desde la paleta de controles de netbeans. public frmTest() { initComponents(); for (int i = 0; i < 50; i++) { pnlcenter.add(btnAgrega); } pnlcenter.setBounds(0, 0, 200, 200); pnlcenter. setPreferredSize(new Dimension(2000, 2000)); pnlcenter.setVisible(true); scroller.setViewportView(pnlcenter); this.add(scroller); this.pack(); this.setLocationRelativeTo(null); this. setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE); this.setVisible(true); }
Muchas gracias !!!!
|
|
|
En línea
|
|
|
|
rub'n
Desconectado
Mensajes: 1.217
(e -> λ("live now")); tatuar -> λ("α");
|
Aqui te dejo mi codigo, el formulario lo he creado desde la paleta de controles de netbeans. public frmTest() { initComponents(); for (int i = 0; i < 50; i++) { pnlcenter.add(btnAgrega); } pnlcenter.setBounds(0, 0, 200, 200); pnlcenter. setPreferredSize(new Dimension(2000, 2000)); pnlcenter.setVisible(true); scroller.setViewportView(pnlcenter); this.add(scroller); this.pack(); this.setLocationRelativeTo(null); this. setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE); this.setVisible(true); }
Muchas gracias !!!! que hace el metodo initComponents ? , intenta colaborar a la primera un poco mas para que algo tan simple no se nos haga eterno LMAOOO
|
|
|
En línea
|
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen king
|
|
|
GSecurity
Desconectado
Mensajes: 9
|
que hace el metodo initComponents ? , intenta colaborar a la primera un poco mas para que algo tan simple no se nos haga eterno LMAOOO El initComponent es para que inicie el JFrame.... no entiendo cual es el problema? Help Me
|
|
|
En línea
|
|
|
|
rub'n
Desconectado
Mensajes: 1.217
(e -> λ("live now")); tatuar -> λ("α");
|
El initComponent es para que inicie el JFrame.... no entiendo cual es el problema? Help Me Ayuda tu mas con el código, pasa mas código, seguro algo falta por ahí y de paso simple dog.
|
|
|
En línea
|
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen king
|
|
|
GSecurity
Desconectado
Mensajes: 9
|
Ayuda tu mas con el código, pasa mas código, seguro algo falta por ahí y de paso simple dog.
Pero es todo el codigo que tengo porque no me creen: Con este codigo hago que aparescan una serie de botones dentro de un jpanel. public frmTest() { initComponents(); for (int i = 0; i < 50; i++) { pnlcenter.add(btnAgrega); } pnlcenter.setBounds(0, 0, 200, 200); pnlcenter. setPreferredSize(new Dimension(2000, 2000)); pnlcenter.setVisible(true); this.add(pnlcenter); }
La idea es que me aparezca un scrollbar en la parte de la izquierda ya que mi intencion es agregar mas controles dentro del panel. Guiandome por internet agregue el siguiente codigo el cual me dicen que deberia funcionar pero nada : public frmTest() { initComponents(); for (int i = 0; i < 50; i++) { pnlcenter.add(btnAgrega); } pnlcenter.setBounds(0, 0, 200, 200); pnlcenter. setPreferredSize(new Dimension(2000, 2000)); pnlcenter.setVisible(true); scroller.setViewportView(pnlcenter); this.add(scroller); this.pack(); this.setLocationRelativeTo(null); this. setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE); this.setVisible(true); }
El JFrame lo he creado desde la paleta del netbeans, es todo lo que tengo. Help me !!
|
|
|
En línea
|
|
|
|
EdePC
|
- A mí si que me funciona. No muestras tu main ni tampoco initComponents así que el problema está ahí. En mi caso el initComponents me da problemas por lo que lo he comentado: import java.awt.*; import javax.swing.*; public class frmTest extends JFrame { public frmTest() { //initComponents(); for (int i = 0; i < 50; i++) { pnlcenter.add(btnAgrega); } pnlcenter.setBounds(0, 0, 200, 200); pnlcenter. setPreferredSize(new Dimension(2000, 2000)); pnlcenter.setVisible(true); scroller.setViewportView(pnlcenter); this.add(scroller); this.pack(); this.setLocationRelativeTo(null); this. setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE); this.setVisible(true); } public static void main (String[] args ) { frmTest frm = new frmTest(); } }
- El código anterior funciona incluso sin usar NetBeans, desde un block de notas y compilando a mano con javac frmTest.java && java frmTest- No te manda ningún error o advertencia? has hecho uno Click derecho > Clean a tu proyecto?
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Agregar imagen a JPanel
Java
|
gasoft
|
4
|
18,799
|
30 Octubre 2009, 06:47 am
por gasoft
|
|
|
Redimensionar tamaño JPanel dentro de otro JPanel [SOLUCIONADO]
Java
|
pisagatos
|
3
|
21,925
|
11 Octubre 2012, 04:16 am
por Gianko
|
|
|
Agregar ScrollBar personalizado a un Panel C#
.NET (C#, VB.NET, ASP)
|
Krähne
|
6
|
8,807
|
18 Abril 2011, 20:35 pm
por _katze_
|
|
|
Duda sobre uso de GridLayout y agregar botones a JPanel
Java
|
Diego00
|
1
|
4,299
|
9 Septiembre 2014, 22:18 pm
por lexoazul
|
|
|
Mover Panel que tiene ScrollBar con las teclas, y que se actualice el ScrollBar
.NET (C#, VB.NET, ASP)
|
solesvia
|
0
|
2,399
|
11 Septiembre 2015, 04:54 am
por solesvia
|
|