package FileChooserTest;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
/**
* Frame contine menu pentru incarcarea filurilor grafice si zone de afisare afilurile ce se vor incarca
* @author Dan
*
*/
public class ImageViewerFrame extends JFrame
{
/**
*
*/
private static final long serialVersionUID = 1L;
public ImageViewerFrame()
{
setTitle("FileChooserTest");
setSize(WIDTH,HEIGHT);
//Crearea rindului Menu
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu menu = new JMenu("File");
menuBar.add(menu);
JMenuItem openItem = new JMenuItem("Open");
menu.add(openItem);
openItem.addActionListener(new FileOpenListner());
JMenuItem exitItem = new JMenuItem("Exit");
menu.add(exitItem);
exitItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
System.exit(0);
}
});
//Pentru afisarea desenului se foloseste Label
label = new JLabel();
add(label);
//Crearea ferestrei de dialog pentru alegerea filului
chooser = new JFileChooser();
//Sa admitem numai filuri cu extensie .jpg .jpeg .gif
final ExtensionFileFilter filter = new ExtensionFileFilter();
filter.addExtension("jpg");
filter.addExtension("jpeg");
filter.addExtension("gif");
filter.setDescription("Image Files");
chooser.setFileFilter(filter);
chooser.setAccessory(new ImagePreviewer(chooser));
chooser.setFileView(new FileIconView(filter,new ImageIcon("images/jack.gif")));
}
/**
* Listener activity, legat de menu File > Open
*/
private class FileOpenListner implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
chooser.setCurrentDirectory(new File("."));
//Afisarea ferestrei de dialog pentru alegerea filurilor
int result = chooser.showOpenDialog(ImageViewerFrame.this);
//Daca file este admis el este folosit in calitate de pictograma la Label
if(result == JFileChooser.APPROVE_OPTION)
{
String name = chooser.getSelectedFile().getPath();
label.setIcon(new ImageIcon(name));
}
}
}
private JLabel label;
private JFileChooser chooser;
public static final int WIDTH = 300;
public static final int HEIGHT = 400;
}