Java showInputDialog数据不正确时

时间:2018-08-11 22:59:03

标签: java swing inputbox

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;
        }
    }
}

上面的代码可帮助我设置文件服务器。 运行应用程序时,将请求对话框端口号。

如果我输入字母而不是数字,程序将停止运行,但是我希望它继续并再次显示对话框。

1 个答案:

答案 0 :(得分:0)

尝试使用do-while

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