java - 如何使用 JOptionPane 和数组创建用户多个输入的列表?

标签 java swing

我必须批改所有 IT 类作业,其中一项作业让我很吃力。 给你一个简短的分割;我基本上必须使用 JOptionPane.showInputDialog 才能获取用户最喜欢的 4 位音乐艺术家的输入。此外,我必须将这些输入保存在名为 singers[] 的数组中;我必须利用 for 循环使用 JOptionPane.showInputDialog 询问 4 位艺术家的姓名,然后将该输入保存在上述数组中,并输出 4 位艺术家,但是如果其中一位艺术家姓名是“heino”,则程序必须通过 System.exit(0) 立即关闭。

我记下了大部分内容,但是我很难获取 4 位艺术家姓名的输入和输出。

import javax.swing.*;

public class Main {


    public static void main(String[] args) {

        String[] singer = new String[4];

        for (int i = 0; i < singer.length; i++) {
            singer[i] = JOptionPane.showInputDialog("How is your favourite artist called? :");
            if(singer[i].equals("Heino")){
                System.exit(0);
            }

            else{
                singer[i] = JOptionPane.showInputDialog("Do you have any other favourite artists? : ");
            }

        for (String bestesinger : singer){
            JOptionPane.showMessageDialog(null, "The name of your favourite artists are: " + singer[0] + singer[1] + singer[2] + singer[3]);
        }   
        }
    }

}

最佳答案

我已经更改了您的程序,如下所示。现在它起作用了。要点是:

您有嵌套的 for 循环,但您应该使用 2 个单独的 for 循环。

您不需要在第一个 for 循环中使用 else block 。

第二个 showMessageDialog() 调用移至第二个 for 循环之外。在第二个 for 循环中,歌手姓名被收集到 output 变量中。

import javax.swing.*;

public class Singers {

  public static void main(String[] args) {

    String[] singer = new String[4];

    for (int i = 0; i < singer.length; i++) {
      singer[i] = JOptionPane.showInputDialog("How is your favourite artist called? :");
      if (singer[i].equals("Heino")) {
        System.exit(0);
      }
    }

    String output = "";
    for (String bestesinger : singer){
      output = output + bestesinger + " ";
    }
    JOptionPane.showMessageDialog(null, "The name of your favourite artists are: " + output);
  }
}

关于java - 如何使用 JOptionPane 和数组创建用户多个输入的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54389989/

相关文章:

java - 抽象类、构造函数和接口(interface)

java - 数组对象未被修改。只有第一个元素不断变化。

java - 如何从 SQLite 的 netbeans 中的文本字段动态过滤 jTable?

java - JFrame setVisible(false) 和 setState(Frame.ICONIFIED) 之间的区别

java - 如何从系统托盘打开应用程序?

Java Swing 右边框不适用于 Microsoft Windows

java - Android 上的 Java 是否是原生的?

java - 在 Swing 中单击鼠标即可更改多个单元格的颜色

java - 带复选框的 JTree

java - Activity 'MainActivity' 未声明?! (虽然是这样)