Как можно вывести в jJLable текст

Как вывести i на выходе цикла в vvivod, желательно столбиком, знаю то что отступ в JLable выполняется через
.

import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.DocumentFilter;
import javax.swing.text.PlainDocument;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

class Main extends JFrame {

    JPanel panel;
    JButton butoon;
    static JTextField textArea;
    static JLabel vvivod;
    static String How;

    public static void main(String[] args) {
        Main mainWindow = new Main();

        mainWindow.setSize(500, 1000);
        mainWindow.setResizable(false);
        mainWindow.setTitle("Простые числа");

        JButton button = new JButton();
        button.setActionCommand("Go");
        button.setText("Посчитать");
        button.addActionListener(new ListenerAction());

        textArea = new JTextField(10);
        textArea.setBounds(5, 5, 100, 200);
        textArea.setText("");

        JLabel vvivod = new JLabel();
        vvivod.setBounds(5, 5, 100, 200);
        vvivod.setText("Вот тута будут циферки"); // Оказывается он понимает html
        PlainDocument doc = (PlainDocument) textArea.getDocument();
        doc.setDocumentFilter(new DigitFilter());


        JPanel panel = new JPanel();
        panel.add(button);
        panel.add(textArea);
        panel.add(vvivod);

        mainWindow.setContentPane(panel);

        mainWindow.setDefaultCloseOperation(EXIT_ON_CLOSE);

        mainWindow.setVisible(true);

    }

    static class ListenerAction implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            String k = textArea.getText();
            for (int i = 2; i < Integer.parseInt(k); ++i) {
                int count = 0;
                for (int j = 2; j <= i && count < 2; ++j) {
                    if (i % j == 0) {
                        ++count;
                    }
                }
                if (count < 2)
                    vvivod = String.valueOf(i);
                    System.out.println(i);
            }

        }
    }


    static class DigitFilter extends DocumentFilter {  // Этот код взят с простов интернета
        private static final String DIGITS = "\\d+";

        @Override
        public void insertString(FilterBypass fb, int offset, String string, AttributeSet attr) throws BadLocationException {

            if (string.matches(DIGITS)) {
                super.insertString(fb, offset, string, attr);
            }
        }

        @Override
        public void replace(FilterBypass fb, int offset, int length, String string, AttributeSet attrs) throws BadLocationException {
            if (string.matches(DIGITS)) {
                super.replace(fb, offset, length, string, attrs);
            }
        }
    }
}

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

Автор решения: Дмитрий

Попробуйте так:

import javax.swing.*;
import java.awt.event.ActionEvent;

class Main extends JFrame {

    private static final long serialVersionUID = 5520149575474999609L;

    private final JPanel panel;
    private final JButton button;
    private final JTextField textArea;
    private final JLabel vvivod;
    
    public Main() {
        setSize(500, 1000);
        setResizable(false);
        setTitle("Простые числа");
        
        button = new JButton();
        button.setActionCommand("Go");
        button.setText("Посчитать");
        button.addActionListener(e -> buttonPressed(e));

        textArea = new JTextField(10);
        textArea.setBounds(5, 5, 100, 200);
        textArea.setText("");

        vvivod = new JLabel();
        vvivod.setBounds(5, 5, 100, 200);
        vvivod.setText("Вот тута будут циферки");

        panel = new JPanel();
        panel.add(button);
        panel.add(textArea);
        panel.add(vvivod);

        setContentPane(panel);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);
    }

    private void buttonPressed(ActionEvent e) {
        StringBuilder sb = new StringBuilder();
        try {
            int k = Integer.parseInt(textArea.getText());
            for (int i = 2; i < k; i++) {
                int count = 0;
                for (int j = 2; j <= i && count < 2; ++j) {
                    if (i % j == 0) count++;
                }
                if (count < 2) sb.append(i).append(" "); 
            }
            vvivod.setText(sb.toString());
        } catch (NumberFormatException ex) {
            //incorrect user input
        }
    }

    public static void main(String[] args) {
        java.awt.EventQueue.invokeLater(() -> new Main());
    }

}
→ Ссылка