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

Problema con JScrollPane

Estas en el tema de Problema con JScrollPane en el foro de Java en Foros del Web. Hola a todos! Estoy haciendo un juego de bingo en Java y me he encontrado con un problema en el diseño de la interfaz. Básicamente ...
  #1 (permalink)  
Antiguo 16/11/2010, 04:53
 
Fecha de Ingreso: noviembre-2008
Mensajes: 59
Antigüedad: 15 años, 5 meses
Puntos: 1
Problema con JScrollPane

Hola a todos!

Estoy haciendo un juego de bingo en Java y me he encontrado con un problema en el diseño de la interfaz. Básicamente mi idea es mostrar, además de las bolas que ya han aparecido, un combo con los nombres de los jugadores. Al clickar un jugador en el combo, aparecen sus cartones en el scrollpane de debajo. Tiene que ser un scrollpane, dado que sino no me caben en la pantalla.

El problema es que cuando clicko el combo, el scrollpane se lo "come", es decir, que el menú del combo aparece por debajo del scrollpane. ¿Alguna idea para solucionarlo? Aquí va el código y una imagen de la interfaz.

Código:
	public void inicializar() {
		gp = new GraphicsPanel();
		gp.repaint();
		frame = new JFrame("VisualBingo");
		barra = new MenuBar();
		inicio = new Menu("Inicio");
		nuevo = new MenuItem("Nuevo juego");
		cartones = new MenuItem("Crear cartones");
		salir = new MenuItem("Salir");
		ScrollPane panelscroll = new ScrollPane();
		combo = new JComboBox();
		area = new JTextArea();
		JPanel panel = new JPanel();
		JPanel mainpanel = new JPanel();
		
		gp.setSize(600, 650);
		panel.setSize(400, 650);
		area.setSize(370, 550);
		panelscroll.setSize(400, 500);
		combo.setSize(400, 30);
		
		area.setFont(new Font("Arial", 0, 10));
		
		mainpanel.setLayout(null);
		panel.setLayout(null);

		ActionListener menuclickado = new ActionListener() {
			public void actionPerformed(ActionEvent actionEvent) {
				MenuItem item = (MenuItem) actionEvent.getSource();
				controladorMenu(item);
			}
		};

		combo.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent actionEvent) {
				if (!jugactual.equals(combo.getSelectedItem())) {
					String nomjugador = (String) combo.getSelectedItem();
					jugactual = nomjugador;
					cargarCartones(nomjugador);

				}
			}
		});
		nuevo.addActionListener(menuclickado);
		cartones.addActionListener(menuclickado);
		salir.addActionListener(menuclickado);
		
		panelscroll.add(area);
		inicio.add(nuevo);
		inicio.add(cartones);
		inicio.add(salir);
		barra.add(inicio);
		panel.add(combo);
		combo.setLocation(0, 0);
		panel.add(panelscroll);
		panelscroll.setLocation(0, 40);
		frame.setMenuBar(barra);
		mainpanel.add(gp);
		mainpanel.add(panel);
		panel.setLocation(600, 0);

		frame.add(mainpanel);

		frame.setVisible(true);
		frame.setSize(1020, 800);
	}
Link imagen: http://goo.gl/VnnWq

Gracias por adelantado
  #2 (permalink)  
Antiguo 16/11/2010, 15:23
 
Fecha de Ingreso: noviembre-2010
Mensajes: 17
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Problema con JScrollPane

Hola napar.

No se si la "solución" que te voy a proporcionar funcionará.

Al usar el setLayout(null). a veces según que acciones realices se mueven los objetos de la ventana a su antojo y tambien los setLocation y setSize, vuelven loca la ventana, puedes probar a cambiar estas dos funciones "setLocation y setSize por setBounds(), que en una linea haces las dos juntas y suele dar menos problemas.

Espero que te sirva.

Un saludo.
  #3 (permalink)  
Antiguo 16/11/2010, 17:17
 
Fecha de Ingreso: noviembre-2008
Mensajes: 59
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Problema con JScrollPane

Lo he intentado, pero sigue dándome el mismo problema. Creo que el tema es que un panel no se entera de lo que hace el otro o algo así. ¿No hay ninguna manera de hacer un scroll sin necesidad de ScrollPane?
  #4 (permalink)  
Antiguo 17/11/2010, 16:00
 
Fecha de Ingreso: noviembre-2010
Mensajes: 17
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Problema con JScrollPane

Bueno construir la interfaz grafica a mano como un applet es muy tedioso, lo que puedes hacer es usar el asistente y mirar el código que genera y ver que propiedades tienen los scrollpanels y que propiedades les pusiste tu a mano y comparar y si ves algo diferente en el del asistente puedes probar en el tuyo a ver si te funciona como tu quieres.

Supongo que usaras el cliente Myeclipse 8.6 para hacer la aplicación, tiene un asistente para ventanas magnifico, ademas puedes manejar los layouts desde el asistente que siempre resulta mas fácil y manejar los objetos a tu antojo por la pantalla.

Bueno tienes tiempo hasta el 10 de diciembre para hacerlo, ya te echare una mano.
jajaja.

Etiquetas: jscrollpane
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 09:41.