PDA

Visualizza la versione completa : JScrollPane in JFrame


divincodin
12-03-2009, 15:59
Ciao,spero che qualcuno mi possa aiutare a risolvere questo problemino.
In sostanza tramite il GridLayout ho creato 2 pannelli,dividendo lo schermo verticalmente.
Nel primo faccio caricare,tramite un JFileChooser,tutte le immagini contenute all'interno della cartella selezionata.Il problema si ha quando le immagini sn troppe e quindi per essere visualizzate tutte correttamente,dovrei scendere con una barra di scorrimento.
Penso proprio che al posto del pannello normale di sinistra debba usare un JScrollPane ma,pur avendo fatto prove,non riesco a risolvere il problema.
Questo parte del mio codice:




public class Applicazione
{
public static void main(String [] args)
{
Frame frame=new Frame();
frame.show();
}
}


class Frame extends JFrame implements ActionListener
{
pannelloa a=new pannelloa();
pannellob b=new pannellob();
JMenuItem apriCartella,apriVideo;
File f;
String pathfile;


public Frame()
{
setTitle("Analizzatore Video Medicali");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setExtendedState(MAXIMIZED_BOTH);

JMenuBar barra=new JMenuBar();
JMenu menu=new JMenu("File");
apriVideo=new JMenuItem("Apri Video");
apriCartella=new JMenuItem("Apri Cartella Immagini");
barra.add(menu);
menu.add(apriVideo);
menu.add(apriCartella);
apriVideo.addActionListener(this);
apriCartella.addActionListener(this);
this.setJMenuBar(barra);

//JScrollPane scroll=new JScrollPane();
Container pane=getContentPane();
pane.setLayout(new GridLayout(1,2));
pane.add(a);
pane.add(b);
}
}


class pannelloa extends JPanel
{
public pannelloa()
{

}
}


class pannellob extends JPanel
{
public pannellob()
{
setBackground(Color.orange);
}
}





Ho provato a creare un JScrollPane scroll=new JScrollPane(); come nel commento nel codice ed a fare pane.add(scroll) al posto di pane.add(a)....le immagini le carica ma non spuntano.
Grazie per una eventuale risposta.Ciao

xela86
12-03-2009, 16:54
non so se sia corretto ma io quando ho aggiunto elementi al JScrollPane richiamavo il getViewport.add() prova anche se non so se questo approccio corretto

Loading