【问题标题】:Can't use ints and sum with JOption dialog boxes不能在 JOption 对话框中使用整数和求和
【发布时间】:2013-10-12 17:54:02
【问题描述】:

我正在使用本书Java: how to program, 7th edition。问题是在第 2 章之后它不再给你答案。我从书中制作了一个应用程序,它从用户那里获取了 2 个整数,然后将它们加在一起,并使用 printf 显示消息(控制台应用程序)输出总和。

现在这本书要求我编辑该程序并使用 JOption 导入函数(即通过 JOptionPane.showInputDialog("What is the first integer?"); thingy 请求 2 个整数。我必须弹出一个对话框询问 2 个整数,然后最后在messagebox 中显示总和。

这是我到目前为止所做的,花了一个小时试图修复错误无济于事(书中没有任何线索):

import javax.swing.JOptionPane;

public class Additions
{
   public static void main( String args[] )
   {
      String name1 = // return type string, pane asking for name
            JOptionPane.showInputDialog( "What is the first integer?" );

      String name2 = // return type string, pane asking for name
            JOptionPane.showInputDialog( "What is the second integer?" );

      sum = name + name2;

      String sum = String.format( "Sum is %d\n", sum );
   } 
} 

【问题讨论】:

  • 那么最后的消息框在哪里?此外,“+”对字符串进行字符串连接。您需要将值转换为 int (see Integer.parseInt())

标签: java string swing joptionpane


【解决方案1】:

您必须将该 String 转换为 int。用这个方法就可以了。

String s =JOptionPane.showInputDialog( "What is the first integer?" );
int i = Integer.parseInt(s);

请注意,如果输入不是 int,则将抛出 NumberFormatException

读取api:Integer#parseInt(String)

所以在你的代码中会是这样的:

 String name1 =JOptionPane.showInputDialog( "What is the first integer?" );
 int first = Integer.parseInt(name1);
 String name2 =JOptionPane.showInputDialog( "What is the second integer?" );
 int second = Integer.parseInt(name2);
 String sum = String.format( "Sum is %d\n", first + second );
 JOptionPane.showMessageDialog(null,sum); // show output

【讨论】:

  • 谢谢。实际上我想摆脱“name1,2”的名字并添加 number1 和 number2,可以吗?
  • @user2850549 我不明白你的意思。 name1 是一个变量,你想保存一个 int,所以用 number1 重命名就可以了,这样更清楚。
  • 酷,是的,我已经重命名了这些,这就是我到目前为止所拥有的。但它仍然输出3个错误。导入 javax.swing.JOptionPane; public class Additions { public static void main( String args[] ) { String number1 =JOptionPane.showInputDialog( "第一个整数是多少?" ); int i = Integer.parseInt(number1); String number2 =JOptionPane.showInputDialog("第一个整数是多少?"); int i = Integer.parseInt(number2);总和 = 数字 1 + 数字 2; String sum = String.format("总和为 %d\n", sum );
  • 我很困惑,您是否可以编辑代码以便为我输出?因为我坚持了一个半小时!干杯
  • 使用另一种类型的JOptionPane,更多在Oracle教程如何使用Dialogs,JOptionPane.showInputDialog被指定接受String,但是可以从JComboBox返回一个Object(日期,数字等),
猜你喜欢
  • 1970-01-01
  • 2020-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-02
  • 1970-01-01
  • 2019-05-27
  • 1970-01-01
相关资源
最近更新 更多