Advertisement
kajacx

Image Viewer

Sep 17th, 2012
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.14 KB | None | 0 0
  1. package gTest;
  2.  
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import java.io.File;
  6. import javax.swing.*;
  7.  
  8. public class PictureLoader extends JFrame implements ActionListener {
  9.  
  10.     private JFileChooser chooser = new JFileChooser();
  11.     private PicPanel pic = new PicPanel();
  12.  
  13.     public static void main(String[] args) {
  14.         new PictureLoader().setVisible(true);
  15.     }
  16.  
  17.     @SuppressWarnings("LeakingThisInConstructor")
  18.     private PictureLoader() {
  19.         super("PictureLoader");
  20.         setLayout(new BorderLayout());
  21.         setLocation(20, 20);
  22.  
  23.         Container flow = new Container();
  24.         flow.setLayout(new FlowLayout(FlowLayout.CENTER));
  25.  
  26.         JButton but = new JButton("Select picture");
  27.         but.addActionListener(this);
  28.         flow.add(but);
  29.  
  30.         add(flow, BorderLayout.NORTH);
  31.  
  32.         add(pic, BorderLayout.CENTER);
  33.  
  34.         setDefaultCloseOperation(EXIT_ON_CLOSE);
  35.  
  36.         setPicture("X:/java/pic/brb.jpg");
  37.        
  38.         pack();
  39.     }
  40.  
  41.     private void setPicture(Image i) {
  42.         MediaTracker mt = new MediaTracker(this);
  43.         mt.addImage(i, 0);
  44.         try {
  45.             mt.waitForID(0);
  46.         } catch (Exception ex) {
  47.             ex.printStackTrace(System.out);
  48.         }
  49.         pic.setPicture(i);
  50.         pack();
  51.         repaint();
  52.         setVisible(true);
  53.     }
  54.  
  55.     private void setPicture(String fileName) {
  56.         Image i = Toolkit.getDefaultToolkit().getImage(fileName);
  57.         setPicture(i);
  58.     }
  59.  
  60.     @Override
  61.     public void actionPerformed(ActionEvent ae) {
  62.         if (chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
  63.             setPicture(chooser.getSelectedFile().getAbsolutePath());
  64.         }
  65.  
  66.     }
  67.  
  68.     private class PicPanel extends JPanel {
  69.  
  70.         private Image image;
  71.  
  72.         private void setPicture(Image i) {
  73.             image = i;
  74.             Dimension d = new Dimension(image.getWidth(null), image.getHeight(null));
  75.             setPreferredSize(d);
  76.             setSize(d);
  77.         }
  78.  
  79.         @Override
  80.         public void paintComponent(Graphics g) {
  81.             g.drawImage(image, 0, 0, null);
  82.         }
  83.     }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement