У меня есть вопрос относительно нажатия кнопки отмены моего диалогового окна ввода. Я уже задавал подобный вопрос, поэтому прошу прощения, если кажется, что повторяюсь.
Основная проблема, с которой я столкнулся, заключается в том, что мой код выполняется независимо от того, нажимаю ли я кнопку «Отмена», и подключение к сокету выполняется, даже если я не добавляю никаких входных данных.
Почему это происходит и как этого избежать?
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);
Таким образом, код выглядит так, как будто на данный момент установлено соединение с клиентским сокетом, даже если я нажму кнопку «Отмена». Причина этого, возможно, в том, что у меня есть сервер и клиент как две отдельные программы на одной машине? Как этого избежать?