Java JButton и проблема свинга - PullRequest
       6

Java JButton и проблема свинга

1 голос
/ 10 сентября 2011

Я занимаюсь сетевым проектом. Я скомпилировал код в консольном приложении Java Project, и он работает. Но когда я создаю графический интерфейс и назначаю код для запуска при нажатии кнопки, он зависает при нажатии кнопки.

Это исходный код:

@Action
public void EstablishConnection() {
    serverAddress = jTextFieldServerAddress.getText();
    serverPort = Integer.parseInt(jTextFieldPort.getText());
    serverUName = jTextFieldUName.getText();
    serverUPwd = jTextFieldUPwd.getText();

    try {
        client = new FTPClient();

        client.connect(serverAddress, serverPort);   
        boolean login = client.login(serverUName, serverUPwd);

        if(login) {
            System.out.println("Successfully logged in\n");
        }
        else {
            System.out.println("Unable to login\n");
        }
    } 
    catch(Exception ex) {
        System.out.println("Exception Raised: " + ex);
    }
}

Действие вызывается при нажатии кнопки в приложении Swing. Это не работает для меня. Но оно работает очень быстро для консольного приложения.

Ответы [ 2 ]

3 голосов
/ 10 сентября 2011

Каждый раз, когда я вижу слово «зависание», я предполагаю, что вам нужно использовать отдельный поток для выполнения зависшего кода. См. Параллельность в Swing для решения.

1 голос
/ 10 сентября 2011

Я бы посоветовал вам запускать код, который зависит от внешних факторов, таких как доступ к удаленному серверу и т. Д., Которые могут задержать ответ, в отдельном потоке.

Отображение MessageDialog с неопределенным индикатором выполнения:

connProgressBar.setIndeterminate(true);

Вы не знаете, прервется ли ваше соединение или нет, поэтому добавьте кнопку, которая позволяетпользователь, чтобы убить поток подключения, всякий раз, когда она чувствует, как это.

Поскольку вы, вероятно, подключаетесь к ftp-серверу для выгрузки и загрузки файлов, после того, как соединение установлено, используйте определенный индикатор выполнения, который показывает процент загрузки файла или хода выполнения файла, который выполняется вновый поток.

...