单击取消按钮showInputDialogue
关于按下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连接。原因可能是因为我在同一台计算机上将服务器和客户端作为两个独立的程序吗?如何避免这种情况发生?
回答:
当您点击的Cancel
Button时showInputDialog(...)
,总是会得到一个空值,该值不满足任何条件,因此总是会建立一个新的连接。因此,您可以像这样添加此条件:
if(input == null || (input != null && ("".equals(input)))) {
throw new EmptyFieldsException();
}
以上是 单击取消按钮showInputDialogue 的全部内容, 来源链接: utcz.com/qa/403963.html