2013-10-05 3 views
2

Я пользуюсь книгой Java: how to program, 7th edition. Проблема в том, что после главы 2 она больше не дает вам ответов. Я сделал приложение из книги, которое взяло 2 интервала от пользователя, а затем добавило их вместе и вывело сумму с сообщением displayf (консольное приложение).Нельзя использовать ints и суммировать с диалоговыми окнами JOption

Теперь книга просит меня отредактировать эту программу и использовать функции импорта JOption (т. Е. Запросить 2 целых числа через JOptionPane.showInputDialog("What is the first integer?"); thingy. Мне нужно сделать всплывающее диалоговое окно с запросом на 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); 
    } 
} 
+0

так, где это MessageBox в конце? Кроме того, «+» выполняет последовательность строк в строках. Вам нужно преобразовать значения в int [(см. Integer.parseInt())] (http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html#parseInt (java.lang .String)). –

ответ

5

Вы должны преобразовать его Строка в int. Вы можете сделать это с помощью этого метода.

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

Позаботьтесь о том, чтобы в случае, если входной сигнал не является внутренним, будет выбрано значение NumberFormatException.

Read апи: 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 
+0

Спасибо за это. в действительности я хотел бы избавиться от имени «name1,2» и добавить number1 и number2, это нормально? – user2850549

+0

@ user2850549 Я не понимаю, что вы имеете в виду. 'name1' - это переменная, которую вы хотите удерживать int, поэтому можно переименовать ее с помощью' number1', это более понятно. – nachokk

+0

круто, да, я переименовал их, это то, что у меня есть до сих пор. но он все равно выводит 3 ошибки. import javax.swing.JOptionPane; общественного класса дополнения { государственной статической силы основных (String арг []) { \t \t \t Строка number1 = JOptionPane.showInputDialog ("Что такое первое число?"); \t \t int i = Integer.parseInt (number1); \t \t \t Строка number2 = JOptionPane.showInputDialog («Что такое первое целое?»); \t \t \t int i = Integer.parseInt (number2); \t \t \t \t \t \t \t сумма = число1 + число2; \t Строка sum = \t \t String.format ("Сумма% d \ n", сумма); – user2850549

Смежные вопросы