2011-09-22 18 views
0

我怎樣才能斷行中的JOptionPane消息框中

<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查詢的輸出。 sql select查詢長度的輸出太大,所以JOptionpane消息框的大小也越來越大。爲此,我想打破消息框中的大行。 我該如何做這個pls幫助[我儘快完成。 在此先感謝....

回答

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' - 指令

+0

感謝馬丁.... – picnic4u

+0

它的工作,但對於'新的條目應該是因爲folows信用條款等於ICTSConfigData.plist文件的validacreditterms條目。 ********** DOCLC PARTPREP OPEN SBLC'它的打印像 'in 1 line->新條目應該是folows' '在2行 - >信用條款等於' '在3行 - > validacreditterms條目ICTSConfigData.plist' 'in 4 line-> rest all' – picnic4u

+0

這看起來比簡單的句子或兩個文本有點棘手。問題在於你沒有任何空間可以在XML中打破。也許最好是讓存儲的消息中包含格式。或者你可以嘗試修改wrapLines函數來分割空格或'>'字符或類似的東西 - 但這可能會非常不完美。如果你需要「漂亮的打印」XML,那麼可能會出現一些問題。 –