2014-10-02 5 views
-1
import java.util.Scanner; 
import javax.swing.JOptionPane; 

public class moneyRate { 

    public static void main(String[] args) { 
     //Get Inputs 
     Scanner input = new Scanner(System.in); 
     JOptionPane.showInputDialog("How many old pounds? "); 
     double oldPounds = input.nextDouble(); 
     JOptionPane.showInputDialog("How many old shillings? "); 
     double oldShillings = input.nextDouble(); 
     JOptionPane.showInputDialog("How many old pennies? "); 
     double oldPennies = input.nextDouble(); 

     input.close(); 

     //New Pounds calc 
     double newPounds = ((oldPounds*160.80) + (oldShillings*8.04) + (oldPennies*0.67)); 

     System.out.print("Your old pounds shillings and pennies are equal to £4" 
       + "" + newPounds + "."); 
    } 
} 

В классе программирования нас попросили сделать программу, которая сообщила бы пользователю, сколько их старых фунтов шиллингов и грошей стоит в сегодняшних фунтах. Я полностью работал с консолью в качестве ввода и вывода для программы, но теперь, когда я пытаюсь сделать это с помощью JOptionPane, для представления пользователю небольших всплывающих окон это не сработает. Когда я запускаю задачу, отображаются только первые всплывающие окна, и программа заканчивается без сообщения об ошибке. Я предполагаю, что это простая ошибка с синтаксисом, но я не могу это заметить.JOptionPane.showInputDialog отображается только один раз

Если кто-то видит ошибку, пожалуйста, помогите мне, спасибо :)

+0

Почему вы не принимаете входные данные из панели joption –

ответ

1

, как вы используете JOptionPane и Scanner вызывают проблемы.

JOptionPane.showInputDialog("How many old pounds? "); // display this 
double oldPounds = input.nextDouble(); // then it wait for scanner input 

Теперь ваша программа проведет его для ожидающих ввода с консоли. Вам необходимо изменить свой код следующим образом:

double oldPounds = Double.parseDouble(JOptionPane.showInputDialog("How many old pounds? ")); 
double oldShillings = Double.parseDouble(JOptionPane.showInputDialog("How many old shillings? ")); 
double oldPennies = Double.parseDouble(JOptionPane.showInputDialog("How many old pennies? ")); 

double newPounds = ((oldPounds*160.80) + (oldShillings*8.04) + (oldPennies*0.67)); 

System.out.print("Your old pounds shillings and pennies are equal to £4" 
      + "" + newPounds + "."); 
1

Что вы там делаете? После показа диалогового окна, который вы читаете из командной строки. Вы должны взять значение из inputDialog.

0

Ruchira ответ полный .. только обратите внимание, что JOptionPane.showInputDialog() возвращает строку.

Вот почему вам нужно преобразовать Double.parseDouble, которое он ввел в код.

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