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:
Link imagen: http://goo.gl/VnnWqpublic 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); }
Gracias por adelantado