在Joptionpane中显示多行?

时间:2017-10-11 03:39:13

标签: java

您好我是这个论坛的新手,也是java的新手,我需要一些帮助来介绍我的java作业。我完成了大部分逻辑。问题是要编写一个程序,显示100到1000之间的所有数字,每行10个,可以被5和6整除。数字只用一个空格分隔。我的教授希望它在Joptionpane窗口中完成。当我尝试这样做时,窗口中只会弹出一个答案。如何让我的答案出现在一行中,只在一个窗口中只有一个空格分隔?我的教授希望我们使用转义函数来显示答案行。

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 + " "));
            }
        }
    }
}

2 个答案:

答案 0 :(得分:1)

请参阅以下方法,对您的代码稍作修改并提供所需的输出。

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 :(得分:0)

JOptionPane能够显示图片,文字或任何其他组件,针对这种特殊情况,您可能需要创建自己的JPanel,将每行数字添加到{{1}然后将JLabel添加到其中。

JLabel

上述程序的输出看起来像(裁剪或太高):

enter image description here