Нажатие кнопки отмены showInputDialogue

У меня есть вопрос относительно нажатия кнопки отмены моего диалогового окна ввода. Я уже задавал подобный вопрос, поэтому прошу прощения, если кажется, что повторяюсь.

Основная проблема, с которой я столкнулся, заключается в том, что мой код выполняется независимо от того, нажимаю ли я кнопку «Отмена», и подключение к сокету выполняется, даже если я не добавляю никаких входных данных.

Почему это происходит и как этого избежать?

String input = "";
           try
           {
               InetAddress host = InetAddress.getLocalHost();
               String hostAddress = host.getHostAddress();

               //setting label to host number so as to know what number to use
               labHostName.setText("(" + hostAddress + ")");

               input = JOptionPane.showInputDialog(null,"Please enter host name to access server(dotted number only)...see number on frame", "name", JOptionPane.INFORMATION_MESSAGE); 

               if(input != null && "".equals(input))//input != null && input.equals(""))   
               {
                   throw new EmptyFieldsException();



               }
               else if(input != null && !input.equals(hostAddress))
               {
                   throw new HostAddressException();


               }

               else
               {

                    clientSocket = new Socket(input, 7777);

Таким образом, код выглядит так, как будто на данный момент установлено соединение с клиентским сокетом, даже если я нажму кнопку «Отмена». Причина этого, возможно, в том, что у меня есть сервер и клиент как две отдельные программы на одной машине? Как этого избежать?

8
задан Jacob Schoen 14 September 2012 в 20:59
поделиться