è possibile stabilire x un panel la sua "pesantezza", ovvero dirgli che qualsiasi altro oggetto grafico si deve sempre sovrapporre a lui?
è possibile stabilire x un panel la sua "pesantezza", ovvero dirgli che qualsiasi altro oggetto grafico si deve sempre sovrapporre a lui?
Basta aggiungere gli oggetti interessati direttamente al pannello.
si, il problema è che nel mio frame ho due pannelli.
in quello in alto ho messo gli elelementi swing, come ad sempio jcombox e lo restante spazio è occupato da un pannello contenente una scena 3d (canbas3D).
Ebbene... il combobox quando si apre invece di coprire per la parte necessaria il panel 3d va a finire sotto.
è questo il vero problema!!
come risolvere?
Prova a settare come LayoutManager del JFrame un BorderLayout:
poi aggiungi il pannello del JComboBox al riquadro sud:codice:Container contentPane = getContentPane(); contentPane.setLayout(new BorderLayout());
e poi il pannello dell'animazione al centro:codice:contentPane.add(p1,BorderLayout.SOUTH);
Ricordati che queste istruzioni devono essere contenute nel costruttore del JFramecodice:contentPane.add(p2,BorderLayout.CENTER);
si questo l'ho fatto.
il problema viene dopo.
il panel centrale ha infatti:
codice:private JPanel panelCanvas = null;codice:mainFrame.add(getPanelCanvas(), BorderLayout.CENTER);e dopo assegno:codice:private JPanel getPanelCanvas() { if (panelCanvas == null) { panelCanvas = new JPanel(); panelCanvas.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.Color.black,1)); panelCanvas.setLayout(new BorderLayout()); } return panelCanvas; }
in questo modo:codice:private Canvas3D myCanvas3D;
codice:myCanvas3D = new Canvas3D(config); panelCanvas.add("Center", myCanvas3D);
così correttamente creato il jframe a video appare ok.
il problema, ripeto, è quando i componenti del panel in alto vanno a finire sotto il panel 3d.
è chiaro che se nel jframe nn vado a mettere "panelCanvas.add("Center", myCanvas3D);" l'apertura dei jmenu o dei jcombobox si sovrappongono semza problemi al panelCanvas centrale.
diciamo che è un problema di "pesantezza" del 3d.... che appare sempre in primo piano....
come ovviare a questo?