import java.awt.Container;
import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.RenderingHints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Fenster extends JPanel{
public  final int WIDTH=320;
public  final int HEIGHT=500;
public JButton b1;
public JButton b2;
public MenuBar menubar;
public Menu menu;
public MenuItem menuitem;
public BufferedImage img;
Insets insets;
JPanel p;
JFrame dasFenster;
public Fenster()
{
 dasFenster = new JFrame();
 p=this;
 this.setLayout(null);
 insets=this.getInsets();
 b1=new JButton("rotation L");
 b1.setBounds(10+insets.left, 35+insets.top,100 ,20 );
 b1.addActionListener(new ActionListener(){


public void actionPerformed(ActionEvent arg0) {

img=rotation(img,90,new RenderingHints(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON));
repaint();
}});
 b2=new JButton("rotation R");
 b2.setBounds(180+insets.left, 35+insets.top,100 ,20 );
 menu=new Menu("File");
 menuitem=new MenuItem("Laden");
 menubar=new MenuBar();
 menuitem.addActionListener(new ActionListener()
 { public void actionPerformed(ActionEvent arg0) {
FileDialog fd=new FileDialog(new Frame(),"Laden",FileDialog.LOAD);
String filename;
fd.setDirectory("F:\\");
fd.setFile("*.jpg");

fd.setVisible(true);
try {
LadenImage(fd.getDirectory(),fd.getFile());
//LadenImage();
repaint();

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
 
 });
 dasFenster.setSize(WIDTH, HEIGHT);
 this.setBounds(0, 0, WIDTH, HEIGHT);
 dasFenster.setLayout(null);
 dasFenster.add(this);
 menubar.add(menu);
 menu.add(menuitem);
 dasFenster.setMenuBar(menubar);
 this.add(b1);
 this.add(b2);
 
 dasFenster.setVisible(true);
 dasFenster.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}

public void LadenImage(String direct,String filename) throws IOException
{
    
img=(BufferedImage)ImageIO.read(new File(direct,filename));

}public  BufferedImage rotation(BufferedImage bufferedImage,int radian,RenderingHints hints )
{
int width = bufferedImage.getWidth();   
int height = bufferedImage.getHeight(); 
BufferedImage dstImage=null;
AffineTransform affinetransform=new AffineTransform();
affinetransform.rotate(radian);
dstImage = new BufferedImage(height, width, bufferedImage.getType());
AffineTransformOp affineTransformOp =new AffineTransformOp (affinetransform,hints);
return affineTransformOp.filter(bufferedImage, dstImage);   
}public void paint(Graphics g)
{
super.paint(g);
if(img==null)
{
return;
}
g.drawImage(img,WIDTH/3+25,HEIGHT/3,null);
}

}
MAINpublic class test { /**
 * @param args
 */
public static void main(String[] args) {
Fenster fenster=new Fenster(); }}