java - 处理两个 JOptionPane showInputDialog 中的 java 取消按钮

标签 java swing sockets joptionpane cancel-button

首先,很抱歉,标题可能有误。我会解释我的问题。我有一个带有 showinputdialog 组件的 joptionpane 来输入服务器地址。我想在单击取消按钮后,它将返回到主窗口。但就我而言,它改为第二个 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();
    }

最佳答案

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;
            }
...
}

关于java - 处理两个 JOptionPane showInputDialog 中的 java 取消按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20902169/

相关文章:

java - 无需任何登录的 Waffle 授权

java - Hibernate 从多对一关系中获取剩余对象

java - 让 JDialog 几秒后消失

java - 为什么此代码不会在底部显示三个按钮的滚动 Pane 内显示内容

delphi tserversocket 忽略第一条消息

c - Mac OS X 上的奇怪 RAW 套接字

java - 如何模拟从测试类的另一种方法获得的局部变量?

java - 这个简单的类是否需要定制的 JSF 转换器?

javascript - 网页中的 Java Swing

c - 如何打开使用 C 程序创建的二进制文件?