Quiero un JPanel con un tamaño y una posición definida. Dentro del JPanel, tengo cierta cantidad de elementos (botones) insertados horizontalmente. Debido a que mi JPanel tiene un ancho definido, si agrego muchos botones, no pude ver eso. En este caso, necesito una barra de desplazamiento para este JPanel. Pero este JPanel debe tener un CIERTO TAMAÑO EN UNA DETERMINADA POSICIÓN dentro de un JFrame. La barra de desplazamiento del JPanel se ha posicionado debajo de él horizontalmente. ¿Puede ayudarme alguien? ¡Lo intenté sin éxito!Desplazamiento de un JPanel
Respuesta
Utilice un JScrollPane y fuerce su preferredSize a su tamaño dado (o configure el contenedor de scrollPane LayoutManager para anular y llame a setBounds() en el panel de desplazamiento). También establece las políticas de barra de desplazamiento. He aquí una pequeña muestra de que:
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class Test {
public static void main(String... args) {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
for (int i = 0; i < 10; i++) {
panel.add(new JButton("Hello-" + i));
}
JScrollPane scrollPane = new JScrollPane(panel);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
scrollPane.setBounds(50, 30, 300, 50);
JPanel contentPane = new JPanel(null);
contentPane.setPreferredSize(new Dimension(500, 400));
contentPane.add(scrollPane);
frame.setContentPane(contentPane);
frame.pack();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setVisible(true);
}
}
Emm, el problema es que necesito ubicar el JPanel en una posición específica del JFrame. Además, debe tener un tamaño definido. – Chu
@BrallanAguilar ya sea que use un LayoutManager para posicionar y clasificar sus componentes, configure LayoutManager como nulo y llame a setBounds() para posicionar y dimensionar su componente. En este caso, debe hacer eso en el JScrollPane –
¿Puede ayudarme con un ejemplo, por favor? – Chu
Agregue todos los botones a su panel. Luego agrega este panel al panel de desplazamiento.
panel.add(button1);
panel.add(button2);
panel.add(button3);
.
.
.
panel.add(buttonn);
Una vez que agregue botones en el panel, agregue el panel al panel de desplazamiento.
JScrollPane panelPane = new JScrollPane(panel);
Y añada este panel a su marco.
Estas son algunas soluciones posibles:
o
- para desplazarse a la decisión
Point
oRectangle
existe existe el métodoscrollRectToVisible
v.g.myPanel.scrollRectToVisible(myButton.getBounds());
- 1. JPanel Sustitución con JPanel en un JFrame
- 2. Tamaño JScrollPane que contiene JPanel cuando aparecen barras de desplazamiento
- 3. Agregar JScrollPane a un JPanel
- 4. Repainting un JPanel dentro de un marco
- 5. JFileChooser incrustado en un JPanel
- 6. agregar JMenuBar a un JPanel?
- 7. Agregue un JFreeChart en JPanel
- 8. dibujo de texto dentro de un JPanel
- 9. Java JPanel dentro de JScrollPane?
- 10. JPanel transparente
- 11. JPanel desplazable
- 12. Centrar un JLabel en un JPanel
- 13. Cómo establecer un fondo transparente de JPanel?
- 14. Java - Obtener una imagen de un JPanel
- 15. JPanel dentro de otra
- 16. ¿Cómo aumentar la velocidad de desplazamiento lento en un JScrollPane?
- 17. Java Swing: cómo deshabilitar un JPanel?
- 18. Mostrar una imagen jpg en un JPanel
- 19. ¿Por qué es mejor adjuntar un JPanel?
- 20. Agregando JPanels adicionales a un JPanel
- 21. Añadir actionlistener a jpanel
- 22. JPanel a JFrame
- 23. loop a través de JPanel
- 24. agregando JLayeredPane a JPanel
- 25. Java JPanel redraw issues
- 26. Java Ver Componentes JPanel
- 27. JPanel Padding en Java
- 28. JPanel con fondo de imagen
- 29. Desplazamiento de un TextBlock
- 30. En NetBeans ¿cómo agrego un jMenuBar a un JPanel?
yo sepa, el punto es ya su 'JPanel' ha una 'Definido anchura/altura/size', por lo que una vez que añadir nada a ella, que va más allá de su tamaño, no puede ver esa cosa, incluso con' JScrollPane' se le agregó, ya que incluso 'JScrollPane' no puede ir más allá del tamaño de' JPanel', por lo que esos componentes están ocultos siempre :(. Ya que si no 'defines su tamaño, los componentes se agregan primero al 'JPanel' y entonces es 'preferredSize()' está determinado implícitamente por 'doLayout()' tipo de cosas, por lo tanto su 'JScrollPane' funciona en esa situación, pero no aquí. –
También considere [' JToolBar'] (http://docs.oracle .com/javase/tutorial/uiswing/components/toolbar.html) o un [diseño adecuado] (http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html). Sin un [sscce] (http://sscce.org/) que aclara el significado de _cierto tamaño_ y _cierta posición_, esta pregunta no puede responderse en su forma actual. – trashgod