Пустой JFrame при загрузке сгенерированного облака слов - PullRequest
0 голосов
/ 20 февраля 2019

В настоящее время я пытаюсь использовать кнопку в моем графическом интерфейсе, которая генерирует облако слов png из kumo.

Это коды для генерации png для wordcloud внутри кнопки GUI.

    JButton wordCloud = new JButton("Generate WordCloud");
    wordCloud.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            final Random RANDOM = new Random();
            final FrequencyAnalyzer frequencyAnalyzer = new FrequencyAnalyzer();
            final List<WordFrequency> wordFrequencies = frequencyAnalyzer.load(data.get_data());
            final Dimension dimension = new Dimension(600, 600);
            final WordCloud wordCloud = new WordCloud(dimension, CollisionMode.PIXEL_PERFECT);
            wordCloud.setPadding(2);
            wordCloud.setBackground(new CircleBackground(300));
            wordCloud.setColorPalette(new ColorPalette(new Color(0x4055F1), new Color(0x408DF1), new Color(0x40AAF1), new Color(0x40C5F1), new Color(0x40D3F1), new Color(0xFFFFFF)));
            wordCloud.setFontScalar(new SqrtFontScalar(10, 40));
            wordCloud.build(wordFrequencies);
            wordCloud.writeToFile("bin/gui/wordcloud_circle.png");

И это коды, которые я использую для отображения файла PNG при нажатии на кнопку

            JFrame b = new JFrame("Word Cloud");
            b.add(new JLabel(new ImageIcon("wordcloud_circle.png")));
            b.setSize(700,700);
            b.setVisible(true);

Кажется, что коды сами по себе работают нормально, но когда я их объединяю, как это

    JButton wordCloud = new JButton("Generate WordCloud");
    wordCloud.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            final Random RANDOM = new Random();
            final FrequencyAnalyzer frequencyAnalyzer = new FrequencyAnalyzer();
            final List<WordFrequency> wordFrequencies = frequencyAnalyzer.load(data.get_data());
            final Dimension dimension = new Dimension(600, 600);
            final WordCloud wordCloud = new WordCloud(dimension, CollisionMode.PIXEL_PERFECT);
            wordCloud.setPadding(2);
            wordCloud.setBackground(new CircleBackground(300));
            wordCloud.setColorPalette(new ColorPalette(new Color(0x4055F1), new Color(0x408DF1), new Color(0x40AAF1), new Color(0x40C5F1), new Color(0x40D3F1), new Color(0xFFFFFF)));
            wordCloud.setFontScalar(new SqrtFontScalar(10, 40));
            wordCloud.build(wordFrequencies);
            wordCloud.writeToFile("bin/gui/wordcloud_circle.png");

            JFrame b = new JFrame("Word Cloud");
            b.add(new JLabel(new ImageIcon("wordcloud_circle.png")));
            b.setSize(700,700);
            b.setVisible(true);

Кажется, что коды не работают, когда я их объединяю, и рамка будет отображать только пустую пустую рамку.

Кто-нибудь знает способ решить эту проблему?

Мне бы хотелось, чтобы кнопка генерировала png и одновременно отображала png в кадр.

Большое вам спасибо.

...