如何在一个对话框中使用for循环显示多个数组结果

时间:2015-08-07 03:47:38

标签: java

问题是:创建一个程序,使用joptionpane输入对话框询问用户一个整数。然后显示一个确认对话框,询问用户“你确定吗?如果用户点击NO或CANCEL,会出现一个弹出消息对话框,说明GOODBYE。如果用户点击YES,它将显示一个消息框,其中包含数字计数或从0到上面输入的数字,用逗号分隔,在一个对话框中。

到目前为止,这是我为YES创建的:

if (z == JOptionPane.YES_OPTION) {
    int n[] = new int[x];
    for (int a = 0; a <= n.length; a++) {
        JOptionPane.showMessageDialog(null, "The numbers are : " + a + end);
    }

但它只显示数字0(例如我输入3)3,每盒一个盒子。我需要做的是在一个对话框中显示“0,1,2,3”

1 个答案:

答案 0 :(得分:1)

您打开循环中的框。那是你的问题。

您必须构建字符串并在此之后打开框。

另一种方式:不要使用循环。

 if (z == JOptionPane.YES_OPTION) {
   var s = Array.apply(null, Array(x)).map(function (_, i) {return i;});
   JOptionPane.showMessageDialog(null, "The numbers are : " + s.join(',') + end);
 }

在此示例中,第一行是if语句。第二行是javascript范围的polyfill(它生成一个值为0到x的数组)。最后一行打开框。

更新:上面的代码是javascript,而不是java。这里有一个java解决方案:

 if (z == JOptionPane.YES_OPTION) {
   StringBuffer buf = new StringBuffer();
   buf.append(0);
   for (int i = 1; i < x; buf.append(",").append(i++));
   JOptionPane.showMessageDialog(null, "The numbers are : " + buf.toString() + end);
 }