Devo chiudere un immagine,caricata in un pannello,per permettere di aprire un nuova,come fare,senza far accavallare le immagini??
Inoltre quando apro un immagine se la finestra e ridotta non mi fa vedere le immagini se la allargo si,la stessa cosa lo fa anche se la
finestra e ingrandita.Cosa Sbaglio??GRAZIE
package swingtest;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import javax.media.jai.*;
import java.awt.image.RenderedImage;
import com.sun.media.jai.widget.DisplayJAI;
/**
*
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 JMenuItem chiudi = new JMenuItem("Chiudi");
private JOptionPane pannello = new JOptionPane();
private JFileChooser aprifile = new JFileChooser();
private JFileChooser salvafile=new JFileChooser("C:\\Programmi");
private JOptionPane pannellosalva = new JOptionPane();
private JPanel main = new JPanel();
private JPanel panelimg=new JPanel();
private DisplayJAI srcimg;
private DisplayJAI dstimg;
/* Costruttore della classe*/
public FinestraSwing() throws HeadlessException {
super("Visualizzatore D'immagini");
setSize(500,500);
barra.add(file);
barra.add(effect);
file.add(apri);
file.add(salva);
file.add(salvaas);
file.add(chiudi);
file.add(esci);
getContentPane().setLayout(new BorderLayout());
/*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));*/
getContentPane().add(barra,BorderLayout.NORTH);
// getContentPane().add(panelimg,BorderLayout.CENTER) ;
esci.addActionListener(new AscoltaEsci());
apri.addActionListener(new AscoltaApri());
chiudi.addActionListener(new AscoltaChiudi());
salvaas.addActionListener(new AscoltaSalvaas());
}
public class AscoltaEsci implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
public class AscoltaSalvaas implements ActionListener{
public void actionPerformed(ActionEvent e){
salvafile.setDialogTitle("Inserisci percorso");
salvafile.showSaveDialog(pannellosalva);
String fileNameSave = new String(aprifile.getSelectedFile().toString());
String filesalvato = new String(salvafile.getSelectedFile().toString());
RenderedImage imgsrcsave=JAI.create("fileload",fileNameSave);
//store
JAI.create("filestore",imgsrcsave,filesalvato,"BMP ",null);
}
}
public class AscoltaApri implements ActionListener {
public void actionPerformed(ActionEvent e) {
panelimg = new JPanel();
panelimg.setLayout(new GridLayout(1,2));
panelimg.setBackground(Color.white);
panelimg.setDoubleBuffered(true);
panelimg.setBorder(BorderFactory.createLineBorder( Color.black));
aprifile.setDialogTitle("Scegli Immagine");
aprifile.showOpenDialog (pannello);
String fileName = new String(aprifile.getSelectedFile().toString());
RenderedImage imgsrc=JAI.create("fileload",fileName);
RenderedImage imgdst = JAI.create("fileload",fileName);
srcimg = new DisplayJAI();
srcimg.set(imgsrc,0,0);
dstimg = new DisplayJAI();
dstimg.set(imgdst,0,0);
JScrollPane panelsrc= new JScrollPane();
JScrollPane paneldst= new JScrollPane();
panelsrc.getViewport().add(srcimg);
paneldst.getViewport().add(dstimg);
panelimg.add(panelsrc);
panelimg.add(paneldst);
// validate();
//repaint();
panelimg.doLayout();
getContentPane().add(panelimg,BorderLayout.CENTER) ;
}
}
public class AscoltaChiudi implements ActionListener {
public void actionPerformed(ActionEvent e) {
getContentPane().remove(panelimg);
//validate();
// repaint();
}
}
public static void main(String[] args) throws HeadlessException {
try{
UIManager.setLookAndFeel(UIManager.getSystemLookAn dFeelClassName());
}
catch(Exception e){
}
FinestraSwing finestraSwing1 = new FinestraSwing();
finestraSwing1.setVisible(true);
}
}