package javacodebook.media.graphic.load;

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;

/**
 * Eine einfache Swing-Anwendung, um das ImagePanel anzuzeigen.
 */
public class ImageViewer extends JFrame {
    //das ImagePanel
    ImagePanel imagePanel = null;

    /** Creates a new instance of ImageViewer */
    public ImageViewer() {
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        getContentPane().setLayout(new BorderLayout());
        //Einen Button zum Öffnen von Dateien erstellen
        JPanel buttonPanel = new JPanel();
        getContentPane().add(buttonPanel, BorderLayout.NORTH);
        JButton openButton = new JButton("Datei öffnen");
        buttonPanel.add(openButton);
        //Einen ActionLister auf den Button legen, der einen FileChooser öffnet
        openButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                JFileChooser chooser = new JFileChooser();
                int status = chooser.showOpenDialog(ImageViewer.this);
                if (status == JFileChooser.APPROVE_OPTION) {
                    //ausgewählte Datei ermitteln und abspielen
                    File file = chooser.getSelectedFile();
                    try {
                        ImageIcon icon = new ImageIcon(file.getAbsolutePath());
                        //vorher evtl. noch vorhandenes ImagePanel entfernen
                        if(imagePanel != null)
                            getContentPane().remove(imagePanel);
                        //das ImagePanel anzeigen
                        imagePanel = new ImagePanel(icon.getImage());
                        getContentPane().add(imagePanel, BorderLayout.CENTER);
                        //den Frame auf die entsprechende Größe anpassen
                        pack();
                    } catch(Exception e) {
                        e.printStackTrace(System.out);
                    }
                }
            }
        });
    }

    public static void main(String[] args) {
        ImageViewer viewer = new ImageViewer();
        viewer.pack();
        viewer.show();
    }
}
