Search code examples
javaswingrandomjoptionpane

Java - how can I check what is exactly entered into a JOptionPane.showInputDialog


This is my Code

import java.util.Random;

import javax.swing.JOptionPane;
public class randomnumbersv2 {

    public static void main(String[] args){
        Double randomnumber = Double.parseDouble(JOptionPane.showInputDialog("Please enter the maximum number that you would like this program to generate"));

        Random rnd = new Random();
        System.out.println(rnd.nextInt(How would I make sure that what is eneted in the Joption can be put into here)); // change int to whatever number you want, this number will be the max random number generated

        JOptionPane.showMessageDialog(null, "Your random number is" + randomnumber);

    }

}

Solution

  • Random#nextInt accepts an integer value as its upper bound. Therefore the value entered should be such. Also, as per the docs, the number should be positive:

    try {
       int maxNumber = 
               Integer.parseInt(JOptionPane.showInputDialog("Please enter input"));
    
       if (maxNumber > 0) {
         Random rnd = new Random();
         System.out.println(rnd.nextInt(maxNumber));
       } else {
         throw new IllegalArgumentException("Non positive number not allowed");
       }
    } catch (NumberFormatException e) {
       throw new IllegalArgumentException("Invalid integer", e);
    }