import java.awt.*;
import java.awt.event.*;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.awt.Color;
import java.awt.image.ImageFilter;
import java.awt.Graphics2D;
public class OpenImage extends JFrame implements ActionListener{
/**
*
*/
OpenImageLabel label;
Container cp;
File file;
BufferedImage bi;
public OpenImage() throws IOException{
super("Resize and Rotate");
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel row1 = new JPanel();
JButton open = new JButton ("Open");
open.addActionListener(this);
JButton rotate = new JButton("Rotate");
rotate.addActionListener(this);
JButton resize = new JButton("Resize");
resize.addActionListener(this);
JButton exit = new JButton ("Exit");
exit.addActionListener(this);
row1.add(open);
row1.add(rotate);
row1.add(resize);
row1.add(exit);
BorderLayout grid1 = new BorderLayout();
cp = getContentPane();
cp.setLayout(grid1);
JPanel topPanel = new JPanel();
topPanel.setLayout( new BorderLayout() );
getContentPane().add( topPanel );
label = new OpenImageLabel();
JScrollPane scrollPane = new JScrollPane();
scrollPane.getViewport().add( label );
topPanel.add( scrollPane, BorderLayout.CENTER );
JButton save = new JButton("Save");
JPanel row3 = new JPanel();
row3.add(save);
cp.add(BorderLayout.NORTH, row1);
getContentPane().add( topPanel, BorderLayout.CENTER );
cp.add(BorderLayout.SOUTH, row3);
pack();
setSize(900,700);
setVisible(true);
}
// This method returns a buffered image with the contents of an image
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if (command == "Exit"){
System.exit(0);
}
if (command == "Open"){
JFileChooser chooser = new JFileChooser();
int returnVal = chooser.showOpenDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
file = chooser.getSelectedFile();
//This is where a real application would open the file.
label.openFile(file);
System.out.println("Opening: " + file.getName() + "." + "\n");
} else {
System.out.println("Open command cancelled by user." + "\n");
}
}
if(command =="Rotate"){
//We will rotate image here
label.rotateImage();
}
}
public static void main(String [] args){
try {
// Set System L&F
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
}
catch (UnsupportedLookAndFeelException e) {
// handle exception
}
catch (ClassNotFoundException e) {
// handle exception
}
catch (InstantiationException e) {
// handle exception
}
catch (IllegalAccessException e) {
// handle exception
}
try {
JFrame frame = new OpenImage();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}