Display multiple lines in Joptionpane?

Hi, this is my first time in this forum, and also new to java, I need help for my entry into java homework. I have done most of the logic. The problem is to write a program that displays all the numbers from 100 to 1000, ten for each line, which are divided into 5 and 6. The numbers are divided exactly into one space. My professor wants this done in the Joptionpane window. When I try to do this, only one answer appears in the window. How to make my answers ten in a line separated by exactly one space in only one window? My professor wants us to use the exit function to display response lines.

public class FindFactors {
    public static void main(String[] args) {
        String message = "";
        final int NumbersPerLine = 10;    // Display 10 numbers per line
        int count = 0; // Count the number of numbers divisible by 5 and 6

        // Test all numbers from 100 to 1,000

        for (int i = 100; i <= 1000; i++) {
            // Test if number is divisible by 5 and 6
            message = message + " " + i;
            count++;
            if (count == 10) {
                message = message + "\r\n";
                count = 0;
            }
            if (i % 5 == 0 && i % 6 == 0) {
                count++;    // increment count
                // Test if numbers per line is 10
                if (count % NumbersPerLine == 0)
                    JOptionPane.showMessageDialog(null, i);
                else
                    JOptionPane.showMessageDialog(null, (i + " "));
            }
        }
    }
}
+4
source share
2 answers

, , .

public class FindFactors {
public static void main(String[] args) {
final int NumbersPerLine = 10;    // Display 10 numbers per line
int count = 0; // Count the number of numbers divisible by 5 and 6
// Test all numbers from 100 to 1,000
String numbersPerLine = "";
for (int i = 100; i <= 1000; i++) {
    // Test if number is divisible by 5 and 6
    if (count == 10) {           
        count = 0;
    }
    if (i % 5 == 0 && i % 6 == 0) {
        numbersPerLine =numbersPerLine+" "+i;
        count++;    // increment count
        // Test if numbers per line is 10

        if (count % NumbersPerLine == 0) 
            numbersPerLine =numbersPerLine+"\n";
    }
}
JOptionPane.showMessageDialog(null, numbersPerLine);
}
}
+1

A JOptionPane , , JPanel, JLabel, , JLabel .

import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class MultiLineOptionPane {
    private JPanel pane;

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new MultiLineOptionPane()::createAndShowGui);
    }

    public void createAndShowGui() {
        pane = new JPanel();
        pane.setLayout(new BoxLayout(pane, BoxLayout.PAGE_AXIS));

        StringBuilder sb = new StringBuilder(); //This object will be used to concatenate in the next for loop
        for (int i = 0; i < 500; i++) { //Sample for loop
            if ((i) % 10 == 0) { //Every 10 numbers we restart the StringBuilder
                pane.add(new JLabel(sb.toString())); //We add a new JLabel to the JPanel with the contents of the StringBuilder
                sb.delete(0, sb.length()); //We restart the StringBuilder
            } else {
                sb.append(i); //We append the current number to the StringBuilder
                sb.append(" "); //We append a space after the number
            }
        }
        pane.add(new JLabel(sb.toString())); //We add the last line of numbers in the StringBuilder to the pane

        JOptionPane.showMessageDialog(new JFrame(), pane, "Numbers", JOptionPane.PLAIN_MESSAGE); //We display the message
    }
}

( ):

enter image description here

0

Source: https://habr.com/ru/post/1687268/


All Articles