如何使用单个JOptionPane.showMessageDialog()语句显示多个输出?

时间:2012-04-22 03:57:20

标签: java swing joptionpane

如何使用JOptionPane.showMessageDialog()显示多行。例如,我在下面发布一个例子。现在,在下面的示例中,必须使用a1,b1,c1逐个显示值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);
    } 
}

4 个答案:

答案 0 :(得分:6)

如果您想将每个值都放在新行中,则无需使用带有HTML或JLabel的{​​{1}},您只需在{{JTextArea中使用\n 1}}:

String

当然,您可以通过添加JOptionPane.showMessageDialog(null, "line1\nline2");

来简单地连接您的值
String

答案 1 :(得分:5)

解决此问题的一些方法:

  • 创建一个JLabel来保存输出并使用HTML来显示多行JLabel,然后将JLabel作为JOptionPane.showMessageDialog的第二个参数传递。
  • 或者您可以创建一个JTextArea,将结果Strings +“\ n”追加到JTextArea,然后将其传递给JOptionPane.showMessageDialog方法。如果这样做,请阻止其他人通过调用其上的setEditable(false)来编辑您的JTextArea。

答案 2 :(得分:4)

为什么不能在字符串中使用所有内容并且只使用一个JOptionPane。

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

而不是3 JOptionPane。

答案 3 :(得分:1)

为什么不试试这个:

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

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