2012-04-22 80 views
4

如何使用JOptionPane.showMessageDialog()顯示多條線。例如,我在下面發佈一個例子。現在,在下面的例子中,值a1,b1,c1必須使用JOptionPane.showMessageDialog()一個接一個地顯示有沒有什麼辦法可以在一個窗口中顯示所有的值?因爲在下面的例子中,三個窗口將會一個接一個地出現。如何使用單個JOptionPane.showMessageDialog()語句顯示多個輸出?

class demo() 
{ 
    public static void main(String args[]) 
    { 
      String a=JOptionPane.showInputDialog(null,"Enter a number"); 
      int a1=Integer.parseInt(a); 
      String b=JOptionPane.showInputDialog(null,"Enter a number"); 
      int b1=Integer.parseInt(b); 

      int c=a1+b1; 
      JOptionPane.showMessageDialog(null,a1); 
      JOptionPane.showMessageDialog(null,b1); 
      JOptionPane.showmessageDialog(null,c1); 
    } 
} 

回答

5

一些解決這個辦法:

  • 創建一個JLabel來保存你的輸出,並使用HTML允許多行JLabel的顯示,然後傳遞的JLabel作爲第二個參數的JOptionPane.showMessageDialog。
  • 或者您可以創建一個JTextArea,將結果Strings +「\ n」附加到JTextArea中,然後將它傳遞給JOptionPane.showMessageDialog方法。如果你這樣做,通過調用setEditable(false)來防止他人編輯你的JTextArea。
+0

請問你可以寫下它的代碼。 – 2012-04-22 04:00:49

+2

@ user1334573:關於你的請求,「你能寫出它的代碼嗎?」這不是在這裏完成的事情,也不是你將如何學習。相反,如果您嘗試使用我們的建議爲其編寫代碼,您將學到更多。如果你遇到困難,請告訴我們你的努力。 – 2012-04-22 04:02:31

+0

有關第1條建議的基本實現,請參見[本答案](http://stackoverflow.com/a/7861833/418556)。 – 2012-04-22 04:16:08

4

爲什麼你不能只取一個字符串中的所有內容並只使用一個JOptionPane。

int c=a1+b1; 
String s = "a1: "+a1+" b1: "+b1+"c: "+c; 
JOptionPane.showMessageDialog(null,s); 

而不是3 JOptionPane。

+0

很酷的傢伙我喜歡它.. – 2012-04-22 05:56:13

+0

不,我發現它helpful.it是非常有幫助 – 2012-04-24 12:11:24

5

如果你想要把每一個值在新行,你不需要使用的HTML一個JLabelJTextArea,你可以簡單地在String使用\n

JOptionPane.showMessageDialog(null, "line1\nline2"); 

當然你也可以只需用String將它們串連你的價值觀:

a1 + "\n" + a2 
+1

謝謝你的答案。 1+ – 2012-04-22 04:36:02

1

爲什麼不試試這個:

JOptionPane.showMessageDialog(null, a1 + "\n" + b1 + "\n" + c1); 

這將在一個對話框中的三個不同的行中打印。