L'Idea è quella di dividere verticalmente JPanel in due parti uguali,in cui devono
comparire delle immagini in seguito al click di apri,presente in un Jmenu associato ad un JMenubar
ed ovviamente la barra dei menu
Ora ho usato GridLayout per dividere il pannello delle immagini in due parti,ed ho usato un altro
GridLayout per dividere il pannello principale e porre in modo ordinato sia il pannello che
contiene la barra dei Menu che il pannello delle immagini,dato che il pannello delle immagini mi copriva
la barra dei menu..
Però ho il problema che quando divido il pannello principale con GridLayout,che lo divide
in parti uguali,mi occupa troppo spazio per il pannello che contiene la barra dei menu'.
Come fare per faer in modo che il pannello dei menu' mi occupa il suo reale spazio in modo da
destinare più spazio per il pannello delle immagini oppure c'è un modo per evitere che
il pannello delle immgini non mi copra la barra dei menù o meglio c'è qualche metodo per posizionare gli oggetti nella finestra ?????
Inoltre come fare per posizionare l'immagine creata nei due pannelli??
Grazie
CODICE:
package swingtest;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import javax.media.jai.*;
import java.awt.image.RenderedImage;
import javax.media.jai.widget.ScrollingImagePanel;
import com.sun.media.jai.codec.FileSeekableStream;
/**
*
Title: </p>
*
Description: </p>
*
Copyright: Copyright (c) 2004</p>
*
Company: </p>
* @author not attributable
* @version 1.0
*/
public class FinestraSwing extends JFrame{
private JMenuBar barra = new JMenuBar();
private JMenu file = new JMenu("File");
private JMenu effect = new JMenu("Effect");
private JMenuItem esci = new JMenuItem("Esci");
private JMenuItem salva = new JMenuItem("Salva");
private JMenuItem salvaas = new JMenuItem("Salva con nome");
private JMenuItem apri = new JMenuItem("Apri");
private JOptionPane pannello = new JOptionPane();
private JFileChooser aprifile = new JFileChooser();
Container contentPane = getContentPane();
private JLabel srclabel;
private JLabel dstlabel;
private JPanel srcpanel;
private JPanel dstpanel;
private JPanel panelbar;
private JPanel panel;
private JPanel panelimg=new JPanel();
private ScrollingImagePanel srcimg;
private JPanel panelmain;
private JPanel fine;
/* Costruttore della classe*/
public FinestraSwing() throws HeadlessException {
super("Visualizzatore D'immagini");
setSize(1030,750);
barra.add(file);
barra.add(effect);
file.add(apri);
file.add(salva);
file.add(salvaas);
file.add(esci);
/*Pannello Barra*/
panelbar = new JPanel();
panelbar.add(barra, BorderLayout.NORTH);
panelbar.setSize(800,100);
/*Pannello diviso in due parti uguali*/
panelimg = new JPanel();
panelimg.setLayout(new GridLayout(1,2));
panelimg.setDoubleBuffered(true);
panelimg.setBackground(Color.white);
panelimg.setBorder(BorderFactory.createLineBorder( Color.black));
JScrollPane bottone1 = new JScrollPane();
JScrollPane bottone2 = new JScrollPane();
panelimg.add(bottone1);
panelimg.add(bottone2);
/*Pannello che contiene panelimg*/
panelmain = new JPanel(new GridLayout(2,1));
panelmain.add(panelbar);
panelmain.add(panelimg);
setContentPane(panelmain);
esci.addActionListener(new AscoltaEsci());
apri.addActionListener(new AscoltaApri());
}
public class AscoltaEsci implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
public class AscoltaApri implements ActionListener {
public void actionPerformed(ActionEvent e) {
aprifile.setDialogTitle("Scegli Immagine");
aprifile.showOpenDialog (pannello);
String fileName = new String(aprifile.getSelectedFile().toString());
RenderedImage img=JAI.create("fileload",fileName);
srcimg=new ScrollingImagePanel(img,ScrollPaneConstants.HORIZO NTAL_SCROLLBAR_ALWAYS,ScrollPaneConstants.VERTICAL _SCROLLBAR_ALWAYS);
srcimg.setCenter(10,10);
srcimg.setBounds(100,300,400,400);
srcimg.setSize(500,500);
srcimg.setLocation(100,100);
panelimg.add(srcimg);
setContentPane(panelimg);
}
}
public static void main(String[] args) throws HeadlessException {
FinestraSwing finestraSwing1 = new FinestraSwing();
finestraSwing1.setVisible(true);
}
}