Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Clicking the cancel button showInputDialogue

I have a question in regards to pressing the cancel button of my inputDialoguebox. I have asked a similar question before so I apologize if I seem to repeat myself.

The main problem I have is that my code executes regardless of me pressing cancel and a socket connection does get made even if I don't add any input.

Why does this happen and how can I avoid this?

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

So with the code being the way it is at the moment the clientsocket connection is made even if I do press cancel. Is the reason for this perhaps because I have the Server and Client as two seperate programs on the same machine? How can I avoid this from happening?

like image 215
Arianule Avatar asked Mar 16 '12 07:03

Arianule


People also ask

How do you handle a cancel button?

A cancel button is clicked whenever the user presses the ESC key, regardless of which other control on the form has the focus. Such a button is usually programmed to enable the user to quickly exit an operation without committing to any action.

What integer value will be returned if the user will click the Cancel button?

If the user clicks "cancel", the response will be null. If they click "ok" without entering any text the response will be the empty string.


1 Answers

When you click on the Cancel Button of the showInputDialog(...) , you always get a null value, for which no condition is satisfied, hence a new connection is always established. So you can add this condition like this :

if(input == null || (input != null && ("".equals(input))))   
{
    throw new EmptyFieldsException();
}
like image 121
nIcE cOw Avatar answered Oct 07 '22 18:10

nIcE cOw