Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Java > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 29.02.2020, 13:54   #1
pycha
Новичок
Джуниор
 
Регистрация: 19.02.2020
Сообщений: 6
По умолчанию клас , который должен обновлять гугл таблицы. Его запускаю отдельным потоком. и передаю ему данные с второго поток

здравствуйте. написал клас , который должен обновлять гугл таблицы. Его запускаю отдельным потоком. и передаю ему данные с второго потока. При этом gui приложения должно продолжать жить своей жизнью, чего не происходит. После нажатия на кнопку, гуи зависает. Есть несколько потоков, которые я запускаю таким же методом , и там все работает хорошо. Неужели проблемма в том что передаю обьекты с одного потока в другой? помогите разобраться пожалуйста

Код:
 addBn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent actionEvent) {
 
                if(googleDocsControler == null)
                    return;
 
                if(refrechTableControler != null)
                    refrechTableControler.stop();
 
                if(!startRefresh) {
 
                    refrechTableControler = new RefrechTableControler();
                    refrechTableControler.setPanel(panel);
                    refrechTableControler.setProgresBar(progresBar);
                    refrechTableControler.setSpreadsheetId(textFieldID.getText());
                    int sheetId = Integer.parseInt(textFieldID2.getText());
                    refrechTableControler.setSheetId(sheetId);
                    refrechTableControler.setNewProdukts(googleDocsControler.getNewProdukts());
                    refrechTableControler.setTableValues(googleDocsControler.getTableValues());
                    refrechTableControler.setBorders(googleDocsControler.getBorders());
                    refrechTableControler.setRowData(googleDocsControler.getRowData());
                    refrechTableControler.run();
                    startRefresh = true;
                    addBn.setText("стоп");
                }else
                {
                    refrechTableControler.stop();
                    startRefresh = false;
                    addBn.setText("обновить таблицу");
                    addBn.setEnabled(false);
                    progresBar.setValue(0);
                    progresBar.setProgress(10);
                    setLabel("обновление таблицы остановлено");
                }
 
            }
начало потока выглядит так

Код:
public class RefrechTableControler extends Thread {
 
 
    int indexOfrefresh = 0;
    String spreadsheetId ;
    List<List<Object>> tableValues;
    StruktInternetShop newProdukts;
    SelectLinksFilePanel panel;
    int sheetId;
    RowData rowData;
    Borders borders;
    ProgresBarPanel progresBar;
 
    public void run() {
        panel.setLabel("обновление таблицы");
        addNewRows();
 
    }
pycha вне форума Ответить с цитированием
Старый 29.02.2020, 13:57   #2
pycha
Новичок
Джуниор
 
Регистрация: 19.02.2020
Сообщений: 6
По умолчанию

перечитал сообщение и сам все нашел, там вместо start() написал run(). можно удалить тему
pycha вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
батник, который будет сканировать всю сеть и выгружать в текстовый файл, данные по айпишникам нашей сети и данные арп таблицы Игорь31 Windows 1 30.07.2017 15:23
Как обновлять данные в DBCchart при изменении таблицы DBGrid? Evgeney Общие вопросы Delphi 1 21.01.2015 22:53
Рисование отдельным потоком в классе. MFC. GDI+ Tesmont Visual C++ 7 14.12.2010 21:55
Рисование отдельным поток в классе. MFC. GDI+ Tesmont Помощь студентам 0 14.12.2010 11:17
закачка файла отдельным потоком. ZeitGeist7 Общие вопросы Delphi 12 26.02.2009 20:23


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS