import java.awt.geom.*; import java.awt.*; import java.awt.image.*; import java.awt.event.*; import java.awt.geom.*; import javax.swing.*; import java.util.Random; import java.net.*; import java.io.*; import org.xml.sax.SAXException; import com.aetrion.flickr.*; import com.aetrion.flickr.photos.*; import com.aetrion.flickr.photosets.*; public class FlickrImageViewer extends JPanel implements ActionListener, Runnable { DrawableImage d; JPanel webAddrPanel; JTextField webAddrField; //flickr stuff private Flickr flickr = null; private String apiKey="4edc94e07f511a04108f65ebc8bdd88e"; //douglas eck private PhotoList ph = null; private int ctr=0; FlickrImageViewer (String searchTerm) { super(new BorderLayout()); addComponentListener(new SimpleComponentListener()); //refresh from flickr //get the flickr photo list from flickr this.flickr = new Flickr(apiKey); updatePhotoList(searchTerm); Thread animator = new Thread(this); animator.start(); } public void run() { while (true) { try { Thread.sleep(2000); } catch (InterruptedException e) { System.out.println(e); } repaint(); } } public void paintComponent(Graphics g) { super.paintComponent(g); PhotosInterface pi = flickr.getPhotosInterface(); try { Image img = pi.getImage((Photo)ph.get(ctr%ph.size()),Size.MEDIUM); ctr++; g.drawImage(img,0,0,this); } catch (Exception e) { System.out.println(e); } } public void actionPerformed(ActionEvent e) { if (e.getSource()==webAddrField){ String s = webAddrField.getText(); remove(d); d = new DrawableImage(s,this); add(d,BorderLayout.CENTER); d.rescaleImage(getWidth()); paintAll(getGraphics()); } } class SimpleComponentListener extends ComponentAdapter { public void componentResized(ComponentEvent e) { //d.rescaleImage(getWidth()); //setPreferredSize(d.imgSize()); } } //flickr stuff public void updatePhotoList(String searchTerm) { try { PhotosInterface pi = flickr.getPhotosInterface(); SearchParameters sp = new SearchParameters(); String [] tags = new String [1]; tags[0]=searchTerm; sp.setTags(tags); ph = pi.search(sp,100,1); } catch (FlickrException e) { System.out.println(e); } catch (IOException e) { System.out.println(e); } catch (SAXException e) { System.out.println(e); } } public static void main(String[] args) { JFrame frame = new JFrame(); FlickrImageViewer panel = new FlickrImageViewer(args[0]); frame.add(panel); frame.setTitle("ImageDrawer " + args[0]); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(600,400); frame.pack(); frame.setVisible(true); } }