【问题标题】:JOptionPane dialog box - issue with extra linesJOptionPane 对话框 - 额外行的问题
【发布时间】:2013-03-27 21:40:04
【问题描述】:

写一些显示 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..)

请帮忙!

【问题讨论】:

  • if( prime == true ) 是一种糟糕的风格。将其更改为if( prime )
  • if( prime ) { add ..if( trueCounter % 10 == 0 ) message += "\n";.. (移动换行检查-当前逻辑错误)。
  • 感谢指出逻辑错误和关于素数的提示!

标签: java swing loops joptionpane


【解决方案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、... 元素之后添加很多换行符。

嗯,我会考虑使用StringBuilder

【讨论】:

  • 谢谢,解决了我的问题。不得不盯着我的代码看一会儿才能发现逻辑错误哈哈
【解决方案2】:

我一直在为这种事情苦苦挣扎。我想知道您是否在自动换行和回车方面遇到问题。

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

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

只是猜测。希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2012-12-14
    • 2012-01-31
    • 2011-12-09
    • 2016-02-02
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    • 2012-11-08
    相关资源
    最近更新 更多