Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Manejo de JScrollBar

Estas en el tema de Manejo de JScrollBar en el foro de Java en Foros del Web. Hola de nuevo tengo el siguiente problema: Estoy ejecutando una aplicacion que saca una diferencia de fechas, dado el resultado de dicha diferencia tiene que ...
  #1 (permalink)  
Antiguo 17/05/2016, 09:19
Avatar de DanX03  
Fecha de Ingreso: septiembre-2007
Ubicación: México D.F.
Mensajes: 148
Antigüedad: 16 años, 6 meses
Puntos: 3
Manejo de JScrollBar

Hola de nuevo tengo el siguiente problema:

Estoy ejecutando una aplicacion que saca una diferencia de fechas, dado el resultado de dicha diferencia tiene que colocar una serie de elementos (compuesto por 2 JTextBox y 1 Jlabel) el detalle esta que cuando son mas de 2 elementos estos elementos ya no son visibles dentro del panel donde los coloco, he intentado colocarlos en un JScrollBar, pero no muestra las barras de desplazamiento. ¿Cómo logro esto?

Aqui esta el codigo que estoy usando para la generacion del panel
Código Java:
Ver original
  1. public jcPanel1()
  2.     {
  3.         this.nota = new HashMap();
  4.         this.setSize(230, 120);
  5.         JScrollPane Scroll = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
  6.                 JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
  7.         Scroll.setPreferredSize(new Dimension(230,120));
  8.         JPanel PDinamico =new JPanel();
  9.         PDinamico.setLayout(new BoxLayout(Scroll,BoxLayout.PAGE_AXIS));
  10.         PDinamico.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
  11.        
  12.         Scroll.add(PDinamico);
  13.         Scroll.setVisible(true);
  14.         Scroll.setBorder(BorderFactory.createLineBorder(Color.BLACK));
  15.         this.setBorder(BorderFactory.createLineBorder( Color.BLACK ));
  16.         this.setLayout( new FlowLayout() );
  17.        
  18.     }
  #2 (permalink)  
Antiguo 17/05/2016, 12:04
 
Fecha de Ingreso: febrero-2016
Mensajes: 13
Antigüedad: 8 años, 1 mes
Puntos: 0
Respuesta: Manejo de JScrollBar

y ya probaste cambiándole las dimensiones al scrollbar y por lo que veo primero pintas el scrollbar y luego el jpanel prueba colocando primero el panel y luego el scroll
  #3 (permalink)  
Antiguo 17/05/2016, 13:33
Avatar de DanX03  
Fecha de Ingreso: septiembre-2007
Ubicación: México D.F.
Mensajes: 148
Antigüedad: 16 años, 6 meses
Puntos: 3
Respuesta: Manejo de JScrollBar

He probado colocando primero el JPanel y despues el JScrollPanel, obtengo los mismos resultados. Checando la documentacion de Java me encontre que al final del codigo debo de agregar lo siguiente:

Código Java:
Ver original
  1. Container CPanel = getContentPane();
  2. CPanel.add(PDinamico, BorderLayout.CENTER);

Al agregar estas lineas me marca error en el getContentPane(), me indica que no encuentra el simbolo, ¿cúal libreria debo importar o que es lo que estoy haciendo mal?
  #4 (permalink)  
Antiguo 17/05/2016, 13:45
 
Fecha de Ingreso: febrero-2016
Mensajes: 13
Antigüedad: 8 años, 1 mes
Puntos: 0
Respuesta: Manejo de JScrollBar

aca consegui un ejemplo como se debe implementar el scrollbar dentro de un jpanel
Cita:
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(JScrollPan e.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_C LOSE);
frame.setVisible(true);
}
}
  #5 (permalink)  
Antiguo 17/05/2016, 16:18
Avatar de DanX03  
Fecha de Ingreso: septiembre-2007
Ubicación: México D.F.
Mensajes: 148
Antigüedad: 16 años, 6 meses
Puntos: 3
Respuesta: Manejo de JScrollBar

Eso es algo que deseo que aparezca en la pantalla, la cuestion es la siguiente:

El panel solo debe de verse cuando se haya hecho una operacion y en lugar de que se recorran los elementos de forma horizontal los deseo de forma vertical.

Dicho panel contiene elementos que se generan en cantidad de acuerdo al resultado de la operacion efectuada anteriormente
  #6 (permalink)  
Antiguo 25/05/2016, 17:08
Avatar de DanX03  
Fecha de Ingreso: septiembre-2007
Ubicación: México D.F.
Mensajes: 148
Antigüedad: 16 años, 6 meses
Puntos: 3
Respuesta: Manejo de JScrollBar

He cambiado un poco el codigo de acuerdo a lo que se explica en varias paginas de Java, pero sigo sin poder ver las barras de desplazamiento, estas son las ultimas modificaciones que hice de acuerdo a dichas paginas:

Código Java:
Ver original
  1. public jcPanel1()
  2.     {
  3.         this.nota = new HashMap();
  4.         this.setSize(230, 110);
  5.         this.setVisible(true);
  6.         this.setBorder(BorderFactory.createLineBorder( Color.BLACK ));
  7.         JPanel PDinamico =new JPanel();
  8.         PDinamico.setSize(this.getSize());
  9.         PDinamico.setLayout(new GridLayout(10,10));
  10.         PDinamico.add(this);
  11.         JScrollPane Scroll=new JScrollPane(PDinamico,JScrollPane.VERTICAL_SCROLLBAR_NEVER,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
  12.         Scroll.setVisible(true);
  13.     }
  14.  
  15.     public void Mi_Componente()
  16.     {        
  17.         //instancia nueva a componente
  18.        
  19.         for(int x=0;x<=frmprincipal.nveces;x++)
  20.         {
  21.             jpc = new jComponentes(index);
  22.             jpc.txtprecionocheD.addActionListener(this);//escucha eventos
  23.             this.add(jpc);//se añade al jpanel
  24.             this.validate();
  25.             //se añade al MAP
  26.             this.nota.put("key_" + index, jpc );
  27.             //se incrementa contador de componentes
  28.             index++;
  29.         }
  30.     }
con este codigo me muestra el contenido del panel 2 veces a partir del tercer elemento ya no lo muestra y tampoco se muestra la barra de desplazamiento ¿Cúal es mi error?
  #7 (permalink)  
Antiguo 26/05/2016, 13:22
Avatar de DanX03  
Fecha de Ingreso: septiembre-2007
Ubicación: México D.F.
Mensajes: 148
Antigüedad: 16 años, 6 meses
Puntos: 3
Respuesta: Manejo de JScrollBar

Ya resolvi el problema, el detalle era que el JScrollPane lo tengo que invocar desde el formulario principal y no desde el panel que lo contiene, asi es como logre solucionar este detalle.

Etiquetas: manejo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:31.