Mehr über Gridbag-Layout: RSS-Feeds integrieren

Da sich das GUI jetzt wie gewünscht verhält, geht es mit der Aufgabe dieses Fensters weiter: Bilder aus einer RSS-Suche bei Flickr anzuzeigen. Allerdings kann man nicht einfach die Suchergebnisse anfordern und annehmen, dass die resultierende XML mit den Java-Basisklassen weiterverarbeitet werden kann. Man könnte es versuchen, aber der Aufwand entspräche in keinem Fall dem Ergebnis.

Zum Glück gibt es zur Bewältigung dieses Problems ein Projekt namens Rome. Wenn man die Rome-Bibliothek herunterlädt, sollte man auf jeden Fall auch JDOM herunterladen.

Wie dieses Beispiel zeigt, besteht der Zweck von Rome darin, schnell und einfach Ergebnisse aus RSS-Feeds zu ziehen. Da das nur geschehen soll, wenn der Anwender auf die Suchtaste drückt, ist der Code, der Rome verwendet, in einem Action-Listener untergebracht.

Der Taste wird nun ein Action-Listener hinzugefügt:


searchBtn.addActionListener(new GridBagAL());

Die listening-Klasse sieht so aus:

Wenn er aufgerufen wird, erzeugt dieser Listener die gewünschte URL, indem er den Text aus dem Textfeld und den gewählten Modus aus der Combobox als URL codiert. Mit Rome wird der Feed dann als SyndFeed-Objekt angelegt. Man setzt einen Vektor ein, um das gewünschte Datum aus dem Feed zu speichern.

Um zu verstehen, warum die Enclosures des Feeds interessant sind, hier ein Blick auf die Quelle eines resultierenden Feeds: http://api.flickr.com/services/feeds/photos_public.gne?tags=dog,cat&tagmode=any&format=rss_200_enc. Wenn lediglich ein Titel für jeden Eintrag auf der JTable und dessen Image-URL im Image-Label erscheinen muss, können diese Informationen leicht aus dem Enclosure gewonnen werden.

Zur Unterstützung bei der Darstellung dieser Informationen wird nun eine Klasse namens FlickrTableEntry geschrieben. In ihr werden Bild-Titel und -URL gespeichert. Der Code ist folgender:

Sobald die Tabellen-Daten gespeichert sind, wird ein weiterer Vektor erzeugt. Er bestimmt die Spaltenbezeichnungen in der Tabelle und aktualisiert die Tabelle, indem er ein neues Tabellen-Modell erzeugt, das die neuen Tabellendaten und Spaltennamen enthält.

Damit der Code kompiliert werden kann, werden die folgenden Include-Elemente benötigt:

Wenn man den bis jetzt vorliegenden Code ausprobiert, sieht man, dass die Tabelle mit Bildernamen von Flickr gefüllt wird. Jetzt muss man nur noch dafür sorgen, dass die Bilder im Image-Label dargestellt werden. Dafür muss man einen ListSelectionListener verwenden. Es wird nun der folgende Code dort hinzugefügt, wo die Tabelle initialisiert wurde.

Auch das folgende Include-Element ist erforderlich:


import javax.swing.event.*;

Nun funktioniert alles wie gewünscht. Wenn man einen Titel aus der Ergebnistabelle auswählt, wird das entsprechende Bild im Image-Label dargestellt.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Adobe schließt neun kritische Lücken in Reader und Acrobat

Das jüngste Update bringt insgesamt zwölf Fixes. Schadcode lässt sich unter Umständen ohne Interaktion mit…

3 Tagen ago

Fabrikautomatisierung: Siemens integriert SPS-Ebene

Eine softwarebasierte Workstation soll es Ingenieuren erlauben, sämtliche Steuerungen zentral zu verwalten. Pilotkunde ist Ford.

3 Tagen ago

Ebury-Botnet infiziert 400.000 Linux-Server weltweit

Kryptodiebstahl und finanzieller Gewinn sind laut ESET-Forschungsbericht die vorrangigen neuen Ziele.

4 Tagen ago

Sicherheitslücken in Überwachungskameras und Video-Babyphones

Schwachstellen aus der ThroughTek Kaylay-IoT-Plattform. Dringend Update-Status der IoT-Geräte prüfen.

4 Tagen ago

AWS investiert Milliarden in Cloud-Standort Brandenburg

Fast acht Milliarden Euro fließen in die deutsche Region der AWS European Sovereign Cloud. Das…

4 Tagen ago

DSL oder Kabel – Welcher Anschluss passt zu Ihnen?

Internet in den eigenen vier Wänden ist heutzutage nicht mehr wegzudenken. Denn egal, ob Homeoffice…

4 Tagen ago