Search code examples
javaswinginputbox

Java showInputDialog when data not correct


import javax.swing.*;
import java.io.Serializable;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

public class Server implements Serializable{
    public static void main(String[] args) {
        String test1= JOptionPane.showInputDialog(null,"Port(0-65535):","Port",JOptionPane.QUESTION_MESSAGE);
        int portnumber = tryParse(test1);

        if (portnumber !=0) {
            try {
                Registry reg = LocateRegistry.createRegistry(portnumber);   //Creates and exports a Registry instance on the local host that accepts requests

                RmiImplementation imp = new RmiImplementation("C://ServerStorage");
                reg.bind("remoteObject", imp);
                System.out.println("Server is ready.");
                System.out.println(portnumber);
            } catch (Exception e) {
                System.out.println("Server failed: " + e);
            }
        }
    }

    private static Integer tryParse(String text) {
        try {
            return Integer.parseInt(text);
        } catch (Exception e) {
            return 0;
        }
    }
}

The above code helps me to set up my file server. when the application is run, the dialog port number is requested.

If I type letters instead of numbers the program stops running, but I want it to continue and show me the dialog again.


Solution

  • Try with a do-while,

    int portnumber = 0;
    do {
         String text= JOptionPane.showInputDialog(null,"Port(0-65535):","Port",JOptionPane.QUESTION_MESSAGE);
         portnumber = tryParse(text);
    }while(portnumber==0);