1

我需要一些帮助来编写程序

使用此代码,我可以输入曲目名称、艺术家等。

我有一个问题,我现在无法在 JOptionPane 中显示此信息以显示我的所有信息

import java.util.Scanner;
import javax.swing.JOptionPane;
public class TestTrack
{
   public static void main(String[] args)
   {
      Scanner myScan = new Scanner(System.in);
      System.out.println("Track name");
      String name = myScan.nextLine();
      System.out.println("Artist");
      String Artist = myScan.nextLine();
      System.out.println("Track length seconds");
      String seconds = myScan.nextLine();
      System.out.println("Album");
      String Album = myScan.nextLine();
      JOptionPane.showMessageDialog(null,"Trackinfo:")
   }   

}

所以我想我希望弹出窗口说

曲目名称:“空白”

艺术家:空白

我的另一个问题是如何通过使用“while”多次问这个问题并询问我是否要添加另一个曲目

抱歉,如果我错误地使用了任何术语,我刚开始学习 Java

4

4 回答 4

1

要获得这个:

在此处输入图像描述

注意:OK 和 Cancel 按钮的文本是本地化的,如果您的计算机设置为美国语言环境,您不会看到“Annuler”... ;-)

编码:

int answer = 0;
do {

   /*----------------------------------------------------------------------------
   Here you put the code which set the variables name, artist, seconds... (1)
   ----------------------------------------------------------------------------*/

   final String title   = "Track info";
   final String message =
      "<html><table>" +
      "<tr><td>Track name"      + "</td><td>" + name    + "</td></tr>" +
      "<tr><td>Artist"          + "</td><td>" + artist  + "</td></tr>" +
      "<tr><td>Track length seconds</td><td>" + seconds + "</td></tr>" +
      "<tr><td>Album"           + "</td><td>" + album   + "</td></tr>" +
      "</table>";
   answer =
      JOptionPane.showConfirmDialog(
         null, message, title, JOptionPane.OK_CANCEL_OPTION );
} while( answer == JOptionPane.OK_OPTION );

(1) 您可以使用JOptionPane.showInputDialog()选择Scanner或 GUI

于 2013-10-31T19:42:23.347 回答
1

这一行: JOptionPane.showMessageDialog(null, "Trackinfo:" ) 包含弹出窗口将包含的内容。您将希望其内容作为第二个参数传入,当前为“Trackinfo”。

要合并一个while循环,你必须有一个循环控制变量,或者一个会打破循环的条件。在我的示例中,我使用了一个字符串。我的示例使用了一个 while 循环,只要字符串不等于“quit”,该循环就会继续。

String test = "";
while( ! test.equals("quit") ) {
//use Scanner to get the next value the user enters
//ask for track info
//display that info in a message box
}
于 2013-10-31T19:33:11.123 回答
0

使用myScan.next()代替myScan.nextLine()

要将信息输出到消息对话框中,请使用

String trackInfo = "Track Name: " + name + " | Artist : " +artist+ " | Track Length: " + seconds + " | Album: " + album;
JOptionPane.showMessageDialog(null, trackInfo, "Trackinfo", JOptionPane.INFORMATION_MESSAGE);
于 2013-10-31T19:40:51.573 回答
0
JOptionPane.showMessageDialog(null,"Trackinfo:" + "\nArtist: " + Artist + "\nseconds: " + seconds + "\nAlbum: " + Album)

每个 '\n' 表示一个新行。要多次执行此操作,您应该将代码放在 while 循环中,如下所示:

while(!(Artist == "end")) {
    //your code
}
于 2013-10-31T19:37:34.137 回答