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

Lags beim Online-Gaming? DSL-Vergleich und andere Tipps schaffen Abhilfe

Beim Online-Gaming kommt es nicht nur auf das eigene Können an. Auch die technischen Voraussetzungen…

1 Tag ago

GenKI-Fortbildung immer noch Mangelware

Fast jedes zweite Unternehmen bietet keinerlei Schulungen an. In den übrigen Betrieben profitieren oft nur…

1 Tag ago

Netzwerk-Portfolio für das KI-Zeitalter

Huawei stellt auf der Connect Europe 2024 in Paris mit Xinghe Intelligent Network eine erweiterte…

1 Tag ago

Internet-Tempo in Deutschland: Viel Luft nach oben

Höchste Zeit für eine schnelle Kupfer-Glas-Migration. Bis 2030 soll in Deutschland Glasfaser flächendeckend ausgerollt sein.

1 Tag ago

Erste Entwickler-Preview von Android 16 verfügbar

Schon im April 2025 soll Android 16 den Status Plattformstabilität erreichen. Entwicklern gibt Google danach…

1 Tag ago

Kaspersky warnt vor Cyberangriff auf PyPI-Lieferkette

Die Hintermänner setzen KI-Chatbot-Tools als Köder ein. Opfer fangen sich den Infostealer JarkaStealer ein.

2 Tagen ago