import javax.imageio.ImageIO; import javax.swing.Icon; import javax.swing.JPanel; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.swing.ImageIcon; import javax.swing.JLabel; import java.awt.Color; import java.awt.MediaTracker; import java.awt.Toolkit; public class OpenImageLabel extends JLabel { JLabel label; BufferedImage bimage; ImageIcon iconimage; Image displayImage; BufferedImage biSrc, biDest; BufferedImage bi; Graphics2D big; public OpenImageLabel(){ this.setBackground(Color.RED); iconimage = new ImageIcon(); } public OpenImageLabel(Image image){ ImageIcon newimage = new (Image)(image); } public void setPane(BufferedImage image){ //Doesn't work validate(); } public void setPane(ImageIcon image){ this.setIcon(image); validate(); } public void openFile(File file){ String filename = (file.getPath()); //iconimage = new ImageIcon(filename); try { image = ImageIO.read(file); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } displayImage = Toolkit.getDefaultToolkit().getImage(filename); MediaTracker mt = new MediaTracker(this); try { mt.waitForAll(); } catch (Exception e) { System.out.println("Exception while loading."); } //Image image = toImage(displayImage); this.setPane(displayImage); } public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2D = (Graphics2D) g; g2D.drawImage(bi, 0, 0, this); } // This method returns an Image object from a buffered image public static Image toImage(BufferedImage bufferedImage) { return Toolkit.getDefaultToolkit().createImage(bufferedImage.getSource()); } public void rotateImage(){ //This is where we will rotate the image int w = bimage.getWidth(); int h = bimage.getHeight(); BufferedImage dimg = dimg = new BufferedImage(w, h, bimage.getType()); Graphics2D g = dimg.createGraphics(); g.rotate(Math.toRadians(90), w/2, h/2); g.drawImage(bimage, null, 0, 0); iconimage = (new ImageIcon(dimg)); //setPane(iconimage); } }