Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/11/2010, 04:53
napartar
 
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