gpt4 book ai didi

java - 单击取消按钮 showInputDialog

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:45:37 24 4
gpt4 key购买 nike

我有一个关于按下 inputDialoguebox 的取消按钮的问题。我之前问过类似的问题,所以如果我似乎重复了一遍,我深表歉意。

我遇到的主要问题是,无论我是否按下取消,我的代码都会执行,并且即使我没有添加任何输入,也确实会建立套接字连接。

为什么会发生这种情况,我该如何避免这种情况?

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

因此,即使我按取消键,也可以按照目前的代码进行 clientsocket 连接。这样做的原因可能是因为我在同一台机器上将服务器和客户端作为两个单独的程序?我怎样才能避免这种情况发生?

最佳答案

当你点击 showInputDialog(...)Cancel Button 时,你总是得到一个空值,没有条件满足,因此一个新的始终建立连接。所以你可以像这样添加这个条件:

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

关于java - 单击取消按钮 showInputDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9733702/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com