JOptionPane对话框 - 额外行的问题

时间:2013-03-27 21:40:05

标签: java swing loops joptionpane

写一些显示1-1000之间的素数,1-1000之间的孪生素数和1-10,000之间的完美数字。编写这些方法没有任何问题,但JOptionPane对话框现在让我发疯。尝试在1-1000

之间的素数中每行显示10个数字
        if( userChoice == 1 )
        {
            message = String.format( "Prime Numbers between 1-1,000 are:");
            for( number = 3; number <= 1000; number++ )
            {
                if( trueCounter % 10 == 0 )
                    message += "\n";

                prime = isPrime( number );
                if( prime == true )
                {
                    message += " " + number;
                    ++trueCounter;
                }
            }
            JOptionPane.showMessageDialog( null, message );
        }

这就是我所拥有的,它显示所有数字并显示每行10个数字....但随后它还会在其间显示一个随机数量的额外行,因此对话框高度最终变得太大了。它甚至还有一定数量的额外线条让我感到困惑......就像这样

{3 5 7 11 13 17 19 23 29 31
(8 new lines)
37 41 43 47 53 59 61 67 71 73
(10 new lines..)

请帮忙!

2 个答案:

答案 0 :(得分:1)

改变这个:

            if( trueCounter % 10 == 0 )
                message += "\n";

            prime = isPrime( number );
            if( prime == true )
            {
                message += " " + number;
                ++trueCounter;
            }

对此:

            prime = isPrime( number );
            if( prime == true )
            {
                message += " " + number;
                ++trueCounter;

                if( trueCounter % 10 == 0 )
                    message += "\n";
            }

如果没有,你会在第0,第10,第20 ......元素之后添加很多换行符。

Om,我会考虑使用StringBuilder

答案 1 :(得分:0)

我一直在努力解决这类问题。我想知道你是否有关于自动换行与回车的问题。

要对此进行测试,请将代码中的\n替换为x等字符,然后查看行为。

如果您仍然获得新行,则可能是自动换行,而不是\n

只是一个猜测。希望有所帮助。