2012-04-22 49 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); 

这将在一个对话框中的三个不同的行中打印。