Java JOptionPane对话框-使用额外行发出

Java JOptionPane对话框-使用额外行发出,java,swing,loops,joptionpane,Java,Swing,Loops,Joptionpane,写一些显示介于1-1000之间的素数、介于1-1000之间的双素数和介于1-10000之间的完美数的东西。写这些方法没有任何问题,但是JOptionPane对话框现在让我抓狂。正在努力为1-1000之间的素数显示每行10个数字 if( userChoice == 1 ) { message = String.format( "Prime Numbers between 1-1,000 are:"); for( num

写一些显示介于1-1000之间的素数、介于1-1000之间的双素数和介于1-10000之间的完美数的东西。写这些方法没有任何问题,但是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 );
        }

请帮忙

我一直在为这种事情挣扎。我想知道你是否对换行和回车有问题

要测试这一点,请将代码中的
\n
替换为字符,如
x
,然后查看行为

如果仍然有新行,它们可能是换行,而不是
\n

只是猜测而已。希望有帮助。

改变这一点:

            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,我会考虑使用.< /P> <代码>(Prime=真)是一个坏的风格。将其更改为

if(prime)
if(prime){
添加
。if(trueCounter%10==0)消息+=“\n”
。(移动新行检查-当前逻辑错误).谢谢你指出了逻辑错误和关于素数的提示!谢谢,解决了我的问题。不得不盯着我的代码看一会儿才能抓住逻辑错误哈哈
            prime = isPrime( number );
            if( prime == true )
            {
                message += " " + number;
                ++trueCounter;

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