Как правильно заставить поток возвращать значение? - PullRequest
4 голосов
/ 11 июля 2011

Я новичок в потоках Java и после тестирования, чтобы увидеть, как они работают, я не могу понять, как заставить их выполнять вычисления и возвращать результат так, как я хочу.

Например, в моей текущей программе я хочу, чтобы мой поток запрашивал базу данных, вызывая метод, который возвращает данные в объекте Vector, когда я нажимаю JButton. Затем с помощью этого векторного объекта я хочу добавить каждый индекс (массив) в виде строки в JTable.

Каков будет правильный способ сделать это? Я знаю, что мог бы использовать установщик на своем JTable в вызывающем классе, но я уверен, что должен быть более "правильный" способ.

Ответы [ 2 ]

7 голосов
/ 11 июля 2011

Да, используйте SwingWorker.Этот механизм предназначен для ситуаций, когда вам нужно запустить долгосрочную задачу в фоновом потоке и предоставить обновления пользовательского интерфейса либо по завершении, либо во время обработки.Поскольку Swing является однопоточным, пользовательский интерфейс остается отзывчивым .

2 голосов
/ 11 июля 2011

или базовый обходной путь путем импедмента Runnable , где вывод в GUI должен быть обернут в invokeLater подробнее о Параллелизм в Swing

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...