Aggiungere JscrollPane a JinternalFrame

di il
4 risposte

Aggiungere JscrollPane a JinternalFrame

Salve,
ho un Jinternal frame al quale vorrei aggiungere lo scroll pane nel momento in cui ridimensionando il Jinternalframe il contenuto non è più visibile.
Ho scritto questo ma non fa quello che deve:
frame = new JInternalFrame(nomeFile);
       
        frame.addInternalFrameListener(this);
       
        pannelloFrame = new JPanel();
        
        JScrollPane scroll = new JScrollPane(pannelloFrame);
        
        frame.add(scroll);
        
        frame.add(pannelloFrame);
        

        frame.setTitle(nomeFile);
        frame.setSize(new Dimension(300, 300));

        frame.setLocation(xOffset * openFrameCount, yOffset * openFrameCount);

        frame.setClosable(true);
        frame.setMaximizable(true);
        frame.setIconifiable(true);
        frame.setResizable(true);
        frame.pack();

        desktopPane.add(frame);
        frame.setVisible(true);
Dove sbaglio?
Grazie

4 Risposte

  • Re: Aggiungere JscrollPane a JinternalFrame

    MariaMaria ha scritto:


    frame = new JInternalFrame(nomeFile);
           
            frame.addInternalFrameListener(this);
           
            pannelloFrame = new JPanel();
            
            JScrollPane scroll = new JScrollPane(pannelloFrame);
            
            frame.add(scroll);
            
            frame.add(pannelloFrame);   // NO, pannelloFrame è già dentro il JScrollPane!
    Vedi commento che ho aggiunto nell'ultima riga quotata.
  • Re: Aggiungere JscrollPane a JinternalFrame

    Grazie!
    Funziona anche se non mi è chiaro dove sbagliavo, forse la riga di codice da eliminare "sovrascriveva" lo scroll?
    Grazie tante
  • Re: Aggiungere JscrollPane a JinternalFrame

    MariaMaria ha scritto:


    Grazie!
    Funziona anche se non mi è chiaro dove sbagliavo, forse la riga di codice da eliminare "sovrascriveva" lo scroll?
    Grazie tante
    Un componente grafico può avere 1 solo "parente" (dal punto di vista strutturale nella interfaccia grafica). Ricordalo sempre d'ora in poi.

    Se lo metti come "view" in JScrollPane (con new JScrollPane(componente) ), allora il componente è già disposto dal punto di vista strutturale (tecnicamente il parente è il JViewport che a sua volta è nel JScrollPane).

    Quindi se il componente lo aggiungi di nuovo in un altro contenitore .... sparisce dal JViewport!
  • Re: Aggiungere JscrollPane a JinternalFrame

    Grazie per la delucidazione.
Devi accedere o registrarti per scrivere nel forum
4 risposte