Java - 如果条件失败则返回到程序流程的开头

标签 java joptionpane

正如我写这篇文章时,我可以想象这个问题是多么基本,但我在这里......

我有一个 Java 客户端,其中我验证用户输入的“日期”输入,如果有效,则将其传递到其他地方。我正在使用 JOptionPane 显示输入对话框。

基本上,当用户输入无效的日期格式时,我的程序将退出,用户必须再次重新启动程序。相反,我希望在显示“输入的日期无效”消息后显示弹出输入对话框。再次将控制权传递给该行代码的最佳方法是什么?

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Properties;
import java.text.ParseException;
import java.text.SimpleDateFormat;

import javax.swing.JOptionPane;

public class Client {

  static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

  public static void main(String[] args) throws IOException, ParseException {

    Properties prop = new Properties();
    InputStream IP = null;
    //  SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

    try {

      IP = new FileInputStream("Client.properties");
      prop.load(IP);
      String host = prop.getProperty("ServerIP");
      String port = prop.getProperty("Port");
      int port1 = Integer.parseInt(port);

      Socket s = new Socket(host, port1);
      String reportDate = JOptionPane.showInputDialog("Enter Date:");
      PrintWriter out = new PrintWriter(s.getOutputStream(), true);

      /**
       * User Input Validation
       */
      if (reportDate.matches("^((19|20)\\d\\d)-(0?[1-9]|1[012])-(0?[1-9]|[12][0-9]|3[01])$")) {

        out.println(reportDate);
        s.close();

        System.exit(0);
      } //if
      else {
        String Error = "INCORRECT date format entered!";
        JOptionPane.showMessageDialog(null, Error);
      } //else
    } catch (IOException ex) {
      ex.printStackTrace();
    } finally {
      if (IP != null) {
        try {
          IP.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
    }
  }
}

最佳答案

当您在成功案例中使用 System.exit(0) 时,只需使用 while (true) { } 将代码包装在无限循环中即可。

关于Java - 如果条件失败则返回到程序流程的开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36482251/

相关文章:

java - 搜索由音频识别生成的数组列表

java - 下载文件的集成测试

java - 二维位图在不正确的位置填充了对象 [作业]

java - 使用 Geotools 来自数据库的多点

java - 使用 QMessageBox 从选项列表中进行选择

java - JOptionPane - 下拉菜单 : How to subtract an option that somebody has chosen?

java - 当有人回复同一邮件时,可以在发送电子邮件时将标签附加到电子邮件上

java双输入面板

java - 从 JOptionPane 添加字符串到面板

java - JOptionPane.showInputDialog