SwingWorker делает код трудным для чтения

Мне нравится использовать SwingWorker для решения задач, которые занимают много времени, но я обнаружил, что это затрудняет чтение моего кода. Пример:

Прежде чем я имел:

classCombo.setModel(Controller.getAllClasses());

И сейчас:

private void downloadData()
{

    final WaitDialog waitDialog = new WaitDialog(this);
    SwingWorker<Object, Void> sw = new SwingWorker<Object, Void>()
    {

        @Override
        protected Object doInBackground() throws Exception
        {
            SwingUtilities.invokeLater(new Runnable() {
                @Override
                public void run() {
                    waitDialog.start(null);
                }
            });
            return Controller.getAllClasses();
        }

        @Override
        protected void done()
        {
            Vector<KlasaEntity> klasy = null;
            try
            {
                klasy = (Vector<KlasaEntity>) get();
                waitDialog.stop();
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
            classCombo.setModel(new DefaultComboBoxModel<KlasaEntity>(klasy));
        }

    };
    sw.execute();

Видите ли вы возможность сделать этот код короче?

0 ответов

Другие вопросы по тегам