如何在JOptionpane消息框中断行

时间:2011-09-22 04:28:26

标签: javascript sql-server-2005 ant

<script language="javascript">
<![CDATA[
    importPackage(javax.swing);
    importPackage(java.lang);
    System.out.println("Hello from JavaScript!");
    var optionPane = JOptionPane.showMessageDialog(null,'Deployment instruction = ' + Deployment_Instrution);
    ]]>
    </script>

这里Deployment_Instruction是变量,我在其中存储sql select query的输出。 sql select查询长度的输出太大,所以JOptionpane消息框的大小也越来越大。为此我想打破消息框中的大行。 我怎么能这样做。请尽快帮助我。 提前谢谢....

1 个答案:

答案 0 :(得分:1)

我想你必须在适当的地方插入换行符来打破这一行。对于像这样的简单应用程序,可能只需要一个基本函数,一旦一行达到你想要的最大长度就会打破空格。

类似的东西:

var boxText = wrapLines( 30, Deployment_Instruction );
JOptionPane.showMessageDialog( null, boxText );

此处最大长度为30个字符。使用wrapLines函数:

function wrapLines(max, text)
{
    max--;
    text = "" + text;
    var newText = "";
    var lineLength = 0;

    for (var i = 0; i < text.length; i++)
    {
        var c = text.substring(i, i+1);
        if (c == '\n')
        {
            newText += c;
            lineLength = 1;
        }
        else if (c == ' ' && lineLength >= max)
        {
            newText += '\n';
            lineLength = 1;
        }
        else
        {
            newText += c;
            lineLength++;
        }
    }
    return (newText);
}

请注意,这会产生一个“参差不齐”的右边缘,所以如果一行的末尾有一个很长的单词,则可能不太令人满意。

顺便提一下,您的变量名称缺少字母'c' - 指示