En cliquant sur le bouton annuler showInputDialogue
J'ai une question en ce qui concerne appuyant sur le bouton annuler de mon inputDialoguebox. J'ai posé une question similaire avant, donc je m'excuse si j'ai l'air de me répéter.
Le principal problème que j'ai c'est que mon code s'exécute indépendamment de m'appuyer sur annuler et une prise de connexion ne se fait, même si je n'ai pas ajouter n'importe quelle entrée.
Pourquoi cela se produit et comment puis-je éviter cela?
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);
Donc avec le code à la façon dont il est pour le moment la clientsocket connexion est établie, même si je n'appuyez sur annuler. C'est la raison pour cela peut-être parce que j'ai le Serveur et le Client que les deux séparés des programmes sur la même machine? Comment puis-je éviter cela?
showInputDialogue
& inputDialoguebox
pas de telles choses. Veuillez prendre plus de soin de taper des messages.Désolé. Je vais le faire
OriginalL'auteur Arianule | 2012-03-16
Vous devez vous connecter pour publier un commentaire.
Lorsque vous cliquez sur le
Cancel Button
de lashowInputDialog(...)
, vous obtenez toujours une valeur nulle, pour lequel aucune condition n'est satisfaite, par conséquent, une nouvelle connexion est toujours établi.Ainsi, vous pouvez ajouter cette condition comme ceci :
OriginalL'auteur nIcE cOw
Il sera toujours aller dans d'autre condition, même si le bouton annuler est pressé. Vérifier,
ajouter le code ci-dessus avant le dernier else explicitement, poignée et bouton annuler pressées.
showInputDialog(...)
est unString
et vous en la comparant avec uneint
valeur deJOptionPane.CANCEL_OPTION
. Suis-je tort ?Oui je viens de l'indiquer un moyen de le faire et ce que l'interlocuteur est absent.
OriginalL'auteur Rahul Borkar
J'ai eu ce même problème, et je l'ai résolu comme suit:
Donc, en gros, j'ai déplacé le null test avant de tester si l'utilisateur a entré une entrée. Espérons que cela a aidé!
OriginalL'auteur Ahmed Ktob