Как я могу использовать JOptionPane.showInputDialog с классом, который я создал?

1

Я новичок в Java, поэтому извините за тупой вопрос.

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

Например, здесь создан класс Age:

public class Age
{
private int yearsToRetirement;
private int STARTING_AGE;
private int RETIREMENT_AGE;

public Age()
{
  STARTING_AGE = 0;
  RETIREMENT_AGE = 0;
}

// Parameterized Constructor
public Age(int sa, int ra)
{
    setStartingAge(sa);
  setRetirementAge(ra);
}   
public int getStartingAge()
{
    return STARTING_AGE;
}

public int getRetirementAge()
{
    return RETIREMENT_AGE;
}

public int getYearsToRetire()
{
  yearsToRetirement = RETIREMENT_AGE - STARTING_AGE;
  return yearsToRetirement;
}

public void setStartingAge(int sa)
{
    if (sa > 0)
    {   
        STARTING_AGE = sa;
    }
    else
    {
        STARTING_AGE = 0;
    }
}

public void setRetirementAge(int ra)
{
    if (ra > STARTING_AGE)
    {   
        RETIREMENT_AGE = ra;
    }
    else
    {
        RETIREMENT_AGE = 0;
    }
}

public String toString()
{
    return "Starting Age: " + getStartingAge()
  + "\nRetirement Age: " + getRetirementAge()
  + "\nYears until retirement: " + getYearsToRetire();
}
}

В основном методе я хочу сделать что-то вроде

  Age age = new Age();
  JOptionPane.showInputDialog("Enter your current age in years(ex: 21):");
  JOptionPane.showInputDialog("Enter the age you wish to retire at:");
  JOptionPane.showMessageDialog(null, age);

Как изменить приведенный выше код, чтобы получить два диалоговых окна ввода для ввода ввода от пользователя в setStarting age и setRetirementAge в классе Age?

-RR

Теги:
class
constructor
joptionpane

1 ответ

1
Лучший ответ

JOptionPane.showInputDialog возвращает введенную вами строку. Вам просто нужно получить эту строку и преобразовать ее в целое (если возможно).

public static void main(String[] args) {
    Age age = new Age();
    String startingAgeAsString = JOptionPane.showInputDialog("Enter your current age in years(ex: 21):");
    String retirementAgeAsString = JOptionPane.showInputDialog("Enter the age you wish to retire at:");
    try {
        age.setStartingAge(Integer.parseInt(startingAgeAsString));
    } catch (NumberFormatException e) {}
    try {
        age.setRetirementAge(Integer.parseInt(retirementAgeAsString));
    } catch (NumberFormatException e) {}
    JOptionPane.showMessageDialog(null, age);
}
  • 0
    Круто, спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню