Hallo ich habe folgendes Problem und zwar importiere ich durch einen REST Aufruf Fotos aus Flickr und möchte sie in einer Gui anzeigen lassen , es funktioniert das 1 foto angezeigt wird aber nicht mehrere. Hier mal der Code
Und hier die Gui Klasse
Bin für jede Hilfe dankbar. Das Problem muss in der ersten Klasse liegen.
Code:
public ArrayList<URL> fetchImage() throws Exception{
URLConnection connection = new URL("http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=a750a873fbd6a892f2965a8601a0a2be&sort=date-posted-asc&per_page=10&tags=Polizei,Feuerwehr&text=Polizei+Love Parade+Feuerwehr+Katastrophen+Unfälle").openConnection();
DataInputStream dis = new DataInputStream(connection.getInputStream());
FileWriter filewriter = new FileWriter(new File("Photos.xml"));
BufferedReader read=new BufferedReader(new InputStreamReader(dis));
String nextline;
String[] servers = new String[100];
String[] ids = new String[100];
String[] secrets = new String[100];
while ((nextline = read.readLine()) != null) {
filewriter.append(nextline);
// Zeigt mir als String alle Fotos mit Attributen an
System.out.println(nextline);
}
dis.close();
filewriter.close();
String filename = "Photos.xml";
XMLInputFactory factory = XMLInputFactory.newInstance();
//System.out.println("FACTORY: " + factory);
XMLEventReader reader = factory.createXMLEventReader(filename, new FileInputStream(filename));
int i = 0;
while (reader.hasNext()) {
XMLEvent event = reader.nextEvent();
if (event.isStartElement()) {
StartElement element = (StartElement) event;
String elementName = element.getName().toString();
if (elementName.equals("photo")) {
i++;
Iterator<Attribute> iterator = element.getAttributes();
while (iterator.hasNext()) {
Attribute attribute = (Attribute) iterator.next();
QName name = attribute.getName();
String value = attribute.getValue();
//System.out.println("Attribute name/value: " + name + "/" + value);
if ((name.toString()).equals("server")) {
servers[i] = value;
//System.out.println("Server Value" + servers[0]);
}
if ((name.toString()).equals("id")) {
ids[i] = value;
}
if ((name.toString()).equals("secret")) {
secrets[i] = value;
}
}
String flickrurl = "http://static.flickr.com/" + servers[i] + "/" + ids[i] + "_" + secrets[i] + ".jpg";
URL u = new URL(flickrurl);
ArrayList<URL> list=new ArrayList<URL>();
list.add(u);
System.out.println(u);
return list;
}
}
}
Und hier die Gui Klasse
Code:
public class PhotoApp extends JFrame{
FlickrPhoto photo=new FlickrPhoto();
public PhotoApp() throws Exception {
super("Aggregierte Fotos aus Flickr");
Container cont=getContentPane();
JPanel panel1=new JPanel();
//URL url;
List<URL> imgList = photo.fetchImage();
//Iterator<URL> it= imgList.iterator();
//while(it.hasNext()){
//url=it.next();
//java.net.URL where = url;
//ImageIcon icon = new ImageIcon(where);
//System.out.println(url);
JLabel label1=new JLabel(new ImageIcon(imgList.get(0)));
//JLabel label2=new JLabel(new ImageIcon(imgList.get(1)));
//label1.setIcon(icon);
panel1.add(label1);
//panel1.add(label2);
cont.add(panel1,BorderLayout.SOUTH);
}
// }
public static void main(String args[]) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
PhotoApp app = null;
try {
app = new PhotoApp();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
app.setSize(600, 600);
app.setVisible(true);
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
});
}
}
Bin für jede Hilfe dankbar. Das Problem muss in der ersten Klasse liegen.