package hu.ppke.itk.itkStock.client.rssfeed; import java.awt.Dimension; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JScrollPane; import java.awt.BorderLayout; import java.io.IOException; import java.net.URL; import java.util.Iterator; import javax.swing.JList; import javax.swing.JTextArea; import javax.swing.event.ListSelectionListener; import javax.swing.event.ListSelectionEvent; import com.sun.syndication.feed.synd.SyndEntry; import com.sun.syndication.feed.synd.SyndFeed; import com.sun.syndication.io.FeedException; import com.sun.syndication.io.SyndFeedInput; import com.sun.syndication.io.XmlReader; public class rssGUI { private JFrame frame; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { rssGUI window = new rssGUI(); window.frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the application. */ public rssGUI() { initialize(); } /** * Initialize the contents of the frame. */ private void initialize() { frame = new JFrame(); frame.setBounds(100, 100, 450, 300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JScrollPane scrollPanefeeds = new JScrollPane(); scrollPanefeeds.setPreferredSize(new Dimension(100, 100)); frame.getContentPane().add(scrollPanefeeds, BorderLayout.CENTER); final JTextArea textArea = new JTextArea(); scrollPanefeeds.setViewportView(textArea); JScrollPane scrollPanelist = new JScrollPane(); scrollPanelist.setPreferredSize(new Dimension(100, 100)); frame.getContentPane().add(scrollPanelist, BorderLayout.WEST); final String[] data = {"Yahoo", "Arts", "Money", "World"}; final String[] rssdata = {"http://news.yahoo.com/rss/", "http://feeds.reuters.com/news/artsculture", "http://feeds.reuters.com/news/wealth", "http://feeds.reuters.com/Reuters/worldNews"}; final JList list = new JList(data); list.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { rssRead(rssdata[list.getSelectedIndex()],textArea); } }); scrollPanelist.setViewportView(list); } protected void rssRead(String u, final JTextArea textArea) { try { final URL url = new URL(u); new Thread(){ public void run() { textArea.setText("Loading..."); try { XmlReader reader = new XmlReader(url); SyndFeed feed = new SyndFeedInput().build(reader); String tmp=""; for (Iterator i = feed.getEntries().iterator(); i.hasNext();) { SyndEntry entry = (SyndEntry) i.next(); tmp+=entry.getTitle(); tmp+="\n"; } textArea.setText(tmp); } catch(Exception e){} } }.start(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }