import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFileChooser;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.KeyStroke;
import javax.swing.filechooser.FileFilter;
public class Ereignishandling extends JComponent{
/**
*
*/
private static final long serialVersionUID = -878263303322780253L;
JFileChooser fileChooser = new JFileChooser();
Image verkleinertesThumbnail ;
Image zudrehendesOriginalBild;
Image tempZuDrehendesBild = null;
Image tempThumbnail = null;
BufferedImage bufferedImage;
File originalBild = null;
int originalBreite;
int originalHoehe;
private Gui gui;
public Ereignishandling(Gui gui){
this.gui = gui;
}
public void setImage( File uebergebenesOriginalBild )
{
zudrehendesOriginalBild = Toolkit.getDefaultToolkit().getImage(uebergebenesOriginalBild.getAbsolutePath());
verkleinertesThumbnail = Toolkit.getDefaultToolkit().getImage( uebergebenesOriginalBild.getAbsolutePath() ).getScaledInstance(300, -1, Image.SCALE_SMOOTH);
if ( verkleinertesThumbnail != null ){
repaint();
}
}
@Override
protected void paintComponent( Graphics g )
{
if ( verkleinertesThumbnail != null )
g.drawImage( verkleinertesThumbnail, 10, 0, this );
}
public void ShortcutsErstellen(JMenuItem MenueEintrag, char c) {
MenueEintrag.setAccelerator(KeyStroke.getKeyStroke(c,
InputEvent.CTRL_MASK));
}
public void Exithandling(JMenuItem exit) {
exit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
}
public void OeffnenDialog(JMenuItem dateiOeffnen) {
dateiOeffnen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg1) {
fileChooser.setSize(100, 100);
fileChooser.setDialogTitle("Bilddatei öffnen");
fileChooser.setFileFilter( new FileFilter()
{
@Override
public boolean accept( File f )
{
return f.isDirectory() || f.getName().toLowerCase().endsWith( ".jpg" )
;
}
@Override
public String getDescription()
{
return "*.jpg;";
}
} );
switch (fileChooser.showOpenDialog(null)) {
case JFileChooser.APPROVE_OPTION:
gui.getZweitesBild().setImage(null);
originalBild = fileChooser.getSelectedFile();
ImageIcon icon = new ImageIcon(originalBild.getAbsolutePath());
// originalBreite = icon.getIconWidth();
// originalHoehe = icon.getIconHeight();
setImage(originalBild);
break;
case JFileChooser.CANCEL_OPTION:
break;
}
}
});
}
public void SpeichernDialog(JMenuItem speichernUnter) {
speichernUnter.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0){
fileChooser.setSize(100, 100);
fileChooser.setDialogTitle("Bilddatei speichern unter...");
fileChooser.setFileFilter( new FileFilter()
{
@Override
public boolean accept( File f )
{
return f.isDirectory() || f.getName().toLowerCase().endsWith( ".jpg" )
;
}
@Override
public String getDescription()
{
return "*.jpg;";
}
} );
switch (fileChooser.showSaveDialog(null)) {
case JFileChooser.APPROVE_OPTION:
BufferedImage bi = new BufferedImage( 100, 100, BufferedImage.TYPE_INT_RGB );
Graphics2D g2d = bi.createGraphics();
g2d.drawImage( bufferedImage, 10, 0, null );
g2d.dispose();
String typ = "jpg";
File datei = fileChooser.getSelectedFile();
try {
ImageIO.write( bufferedImage, typ, datei );
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
case JFileChooser.CANCEL_OPTION:
break;
}
}
});
}
public void drehung90Links(JButton jButtonDrehung90Links) {
jButtonDrehung90Links.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
dreheBildlinks(zudrehendesOriginalBild, verkleinertesThumbnail);
}
});
}
public void drehung90rechts(JButton jButtonDrehung90Rechts) {
jButtonDrehung90Rechts.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
dreheBildrechts(zudrehendesOriginalBild, verkleinertesThumbnail);
}
});
}
public void drehung180(JButton jButton180) {
jButton180.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0){
dreheBild180(zudrehendesOriginalBild, verkleinertesThumbnail);
}
});
}
protected Image dreheBildrechts(Image zudrehendesOriginalBild, Image verkleinertesThumbnail) {
if ((zudrehendesOriginalBild == null)|| (verkleinertesThumbnail == null)) {
JOptionPane.showMessageDialog(this,"Zuerst eine Bilddatei auswählen!", "Fehler",JOptionPane.INFORMATION_MESSAGE, null);
return null;
} else {
tempZuDrehendesBild = createImage(zudrehendesOriginalBild.getHeight(null), zudrehendesOriginalBild.getWidth(null));
Graphics2D g = (Graphics2D) tempZuDrehendesBild.getGraphics();
g.rotate((Math.PI / 2), 0, 0);
g.drawImage(zudrehendesOriginalBild, 0, -zudrehendesOriginalBild.getHeight(null), null);
gui.getZweitesBild().setImage(verkleinertesThumbnail);
bufferedImage = (BufferedImage) tempZuDrehendesBild;
tempThumbnail = createImage(verkleinertesThumbnail.getHeight(null), verkleinertesThumbnail.getWidth(null));
Graphics2D g2 = (Graphics2D) tempThumbnail.getGraphics();
g2.rotate((Math.PI / 2), 0, 0);
g2.drawImage(verkleinertesThumbnail, 0, -verkleinertesThumbnail.getHeight(null), null);
gui.getZweitesBild().setImage(tempThumbnail);
return tempZuDrehendesBild;
}
}
protected Image dreheBildlinks(Image zudrehendesOriginalBild, Image verkleinertesThumbnail) {
if ((zudrehendesOriginalBild == null)|| (verkleinertesThumbnail == null)) {
JOptionPane.showMessageDialog(this,"Zuerst eine Bilddatei auswählen!", "Fehler",JOptionPane.INFORMATION_MESSAGE, null);
return null;
} else {
tempZuDrehendesBild = createImage(zudrehendesOriginalBild.getHeight(null), zudrehendesOriginalBild.getWidth(null));
Graphics2D g = (Graphics2D) tempZuDrehendesBild.getGraphics();
g.rotate((Math.PI*1.5),(tempZuDrehendesBild.getHeight(null)),0 );
g.drawImage(zudrehendesOriginalBild, 0, -zudrehendesOriginalBild.getWidth(null), null);
gui.getZweitesBild().setImage(tempZuDrehendesBild);
bufferedImage = (BufferedImage) tempZuDrehendesBild;
tempThumbnail = createImage(verkleinertesThumbnail.getHeight(null), verkleinertesThumbnail.getWidth(null));
Graphics2D g2 = (Graphics2D) tempThumbnail.getGraphics();
g2.rotate((Math.PI*1.5),(tempThumbnail.getHeight(null)),0 );
g2.drawImage(verkleinertesThumbnail, 0, -verkleinertesThumbnail.getWidth(null), null);
gui.getZweitesBild().setImage(tempThumbnail);
return tempZuDrehendesBild;
}
}
protected Image dreheBild180(Image zudrehendesOriginalBild, Image verkleinertesThumbnail) {
if ((zudrehendesOriginalBild == null)|| (verkleinertesThumbnail == null)) {
JOptionPane.showMessageDialog(this,"Zuerst eine Bilddatei auswählen!", "Fehler",JOptionPane.INFORMATION_MESSAGE, null);
return null;
} else {
tempZuDrehendesBild = createImage(zudrehendesOriginalBild.getWidth(null), zudrehendesOriginalBild.getHeight(null));
Graphics2D g = (Graphics2D) tempZuDrehendesBild.getGraphics();
g.rotate((Math.PI),(tempZuDrehendesBild.getWidth(null)/2),0 );
g.drawImage(zudrehendesOriginalBild, 0, -zudrehendesOriginalBild.getHeight(null), null);
gui.getZweitesBild().setImage(tempZuDrehendesBild);
bufferedImage = (BufferedImage) tempZuDrehendesBild;
tempThumbnail = createImage(verkleinertesThumbnail.getWidth(null), verkleinertesThumbnail.getHeight(null));
Graphics2D g2 = (Graphics2D) tempThumbnail.getGraphics();
g2.rotate((Math.PI),(tempThumbnail.getWidth(null)/2),0 );
g2.drawImage(verkleinertesThumbnail, 0, -verkleinertesThumbnail.getHeight(null), null);
gui.getZweitesBild().setImage(tempThumbnail);
return tempZuDrehendesBild;
}
}
}