Java rss parser вывести результат в одном окне

Коллеги, не получается сделать так, чтобы найденные заголовки новостей были в одном окне textArea.setText(). Если выводить их как System.out.println(message) то все новости будут выведены в консоль, а мне хочется чтобы они были в одном таб-окне. Причём в коде ниже окно открывается много раз и каждое с новой новостью.введите сюда описание изображения Что поменять, изменить? Я товарищ начинающий в Java, только год её учу, прошу писать подробно, что я делаю не так.

import News.Feed;
import News.FeedMessage;
import News.RSSFeedParser;

import java.awt.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder; 

public class Window extends JFrame {

    private static final long serialVersionUID = -127237179251867335L;
    JPanel contentPane;
    JTextField textField;       

    public static void main(String[] args) {

        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    RSSFeedParser parser = new RSSFeedParser("https://russian.rt.com/rss");
                    Feed feed = parser.readFeed();
                    for (FeedMessage message : feed.getMessages()) {
                        //System.out.println(message);
                        Window frame = new Window(message.toString());
                        frame.setVisible(true);
                    }


                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    public Window(String news_in) {
        setBackground(new Color(0, 0, 0));
        setTitle("News");
        setForeground(new Color(175, 238, 238));
        setFont(new Font("SansSerif", Font.PLAIN, 12));
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 805, 536);
        contentPane = new JPanel();
        contentPane.setBackground(new Color(245, 255, 250));
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);

        JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
        tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
        tabbedPane.setBounds(10, 21, 766, 450);
        contentPane.add(tabbedPane);

        JScrollPane scrollPane = new JScrollPane();
        tabbedPane.addTab("RT", null, scrollPane, null);

        JTextArea textArea = new JTextArea();
        textArea.setRows(1);
        textArea.setColumns(1);
        scrollPane.setViewportView(textArea);
        textArea.setEditable(false);
        textArea.setFont(new Font("SansSerif", Font.PLAIN, 12));
        textArea.setBackground(new Color(255, 250, 205));
        textArea.setText(news_in);
    }
}

Ответы (1 шт):

Автор решения: Alexander Chernin
import java.awt.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder; 

public class Window extends JFrame {

    private static final long serialVersionUID = -127237179251867335L;
    JPanel contentPane;
    JTextField textField; 
    JTextArea textArea; // <- Текстовое поле, теперь объявлено тут

    public static void main(String[] args) {

        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    RSSFeedParser parser = new RSSFeedParser("https://russian.rt.com/rss");

                    // Создаем одно окно
                    Window frame = new Window();
                    // Показываем его
                    frame.setVisible(true);

                    // Кормим сообщениями
                    Feed feed = parser.readFeed();
                    for (FeedMessage message : feed.getMessages()) {
                        // Метод appendText добавлен ниже
                        frame.appendText(message.toString())    
                    }


                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    // Конструктор без параметра
    public Window() {
        // код как у вас...

        // создаем текстовое поле класса. Объявление смотрите выше
        textArea = new JTextArea();
        textArea.setRows(1);
        textArea.setColumns(1);
        scrollPane.setViewportView(textArea);
        textArea.setEditable(false);
        textArea.setFont(new Font("SansSerif", Font.PLAIN, 12));
        textArea.setBackground(new Color(255, 250, 205));
    }

    // Добавляем текст в блок и не забываем перейти на новую строку, 
    // или забываем,- тогда надо удалить вот это  +'\n'
    public void appendText(String text) {
        textArea.append(text + '\n');
    }
}
→ Ссылка