Объедините Javafx Progress Bar с методом загрузки данных

То, что вы делаете, совершенно правильно, и я думаю, что так должно быть сделано, НО только ради альтернативы, вот попытка

import os

def getFiles(myFolder):
    old = os.getcwd()
    os.chdir(myFolder)

    fileSet = set()

    for root, dirs, files in os.walk(""):
        for f in files:
            fileSet.add(os.path.join(root, f))

    os.chdir(old)
    return fileSet
0
задан Rocky3582 19 March 2019 в 13:14
поделиться

1 ответ

Я думаю, что это трудно (если не невозможно) достичь.

Если вы думаете о SQL-запросе в традиционном смысле, он не знает, сколько существует наборов данных и сколько времени это займет. Я не знаю ни одного инструмента SQL (например, DB Visualizer, DataGrip и т. Д.), Который показывает индикатор выполнения и правильную оценку того, сколько времени это займет, потому что он всегда будет зависеть от объема данных в таблице.

Должен быть способ измерения, когда данные загружены на 25% / 50% / 75% / .... И единственное, что может занять много времени в вашем коде, это вызов entityManager.createQuery(...).

Другое решение

Я бы предложил удалить индикатор выполнения и добавить что-то вроде счетчика, чтобы показать, что идет загрузка данных. У JFoenix есть приятный дизайнерский прядильщик материала.

Вы также можете добавить простой текст «загрузка данных ...».

Редактировать (чтобы сделать его более заметным): Как правильно подсказал @Slaw, вам также нужно поместить ваш вызов entityManager.createQuery(...) в новый поток. В противном случае поток пользовательского интерфейса может зависнуть, когда запрос занимает больше времени.

0
ответ дан Moritz Lüdtke 19 March 2019 в 13:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: