Обрабатывать кнопку отмены Java в двух JOptionPane showInputDialog
Во-первых, я извиняюсь, возможно, название не так. Я объясню мою проблему. У меня есть одна панель joptionpane с компонентом showinputdialog для ввода адреса сервера. Я хочу после нажатия кнопки Отмена, он вернется в главное окно. Но в моем случае это вместо второго joptionpane.
У меня плохой английский:) ... Кто-нибудь может мне помочь?
Это мой код
private static int setPortNumber()
{
String portNumber = JOptionPane.showInputDialog(frame,
"Enter the Port number for server creation","Server Connection\n",
JOptionPane.OK_CANCEL_OPTION);
int PORT = Integer.parseInt(portNumber);
return PORT;
}
private static String setServerName()
{
server_address = JOptionPane.showInputDialog(frame,
"Enter Server Address or PC-Name.", "Server Connection",
JOptionPane.OK_CANCEL_OPTION);
return server_address;
}
private void networking() {
server_address = setServerName();
try {
PORT = setPortNumber();
if (server_address != null) {
sock = new Socket(InetAddress.getByName(server_address) ,
PORT);
}
else {
SocketException sc = new SocketException();
throw sc;
}
// Recieving input and output streams
InputStreamReader ir = new InputStreamReader(sock.getInputStream());
br = new BufferedReader(ir);
pw = new PrintWriter(sock.getOutputStream());
login.setEnabled(true);
incoming.append("Connected to Server.please login.\n");
connect.setEnabled(false);
pw.println("~##~");
pw.flush();
login.requestFocus();
}
2 ответа
Решение
private void networking() {
server_address = setServerName();
if(server_address == null || server_address.equals("")){
//Handle what happens when the server name is empty (or the user clicked the cancel button. If you let the execution continue, then the try/catch block below will pop up the second jInputDialog
}
try {
PORT = setPortNumber();
if (server_address != null) {
sock = new Socket(InetAddress.getByName(server_address) ,
PORT);
}
else {
SocketException sc = new SocketException();
throw sc;
}
...
}
Запустите этот пример. Работает нормально
import javax.swing.JOptionPane;
public class NetWorking {
public static String server_address;
public static void main(String[] args) {
networking();
}
private static int setPortNumber()
{
String portNumber = JOptionPane.showInputDialog(null,
"Enter the Port number for server creation","Server Connection\n",
JOptionPane.OK_CANCEL_OPTION);
int PORT = Integer.parseInt(portNumber);
return PORT;
}
private static void setServerName()
{
server_address = JOptionPane.showInputDialog(null,
"Enter Server Address or PC-Name.", "Server Connection",
JOptionPane.OK_CANCEL_OPTION);
}
private static void networking(){
setServerName();
if (server_address == null) {
return;
}
Integer port = setPortNumber();
if (port != null) {
System.out.println(port);
}
}
}