Строка ошибки «Ссылка на объект, не установленная на экземпляр объекта.» указывает, что вы не назначили экземпляр объекта объектной ссылке, и все же вы получаете доступ к свойствам / методам этого объекта.
например: скажем, у вас есть класс под названием myClass и он содержит одно свойство prop1.
public Class myClass
{
public int prop1 {get;set;}
}
Теперь вы получаете доступ к этому prop1 в каком-то другом классе, как показано ниже:
public class Demo
{
public void testMethod()
{
myClass ref = null;
ref.prop1 = 1; //This line throws error
}
}
выше строки выдает ошибку, потому что ссылка класса myClass объявлена, но не создана, или экземпляр объекта не назначается referecne этого класса.
Чтобы исправить это, вам нужно создать экземпляр (присвоить объект ссылке на этот класс).
public class Demo
{
public void testMethod()
{
myClass ref = null;
ref = new myClass();
ref.prop1 = 1;
}
}
Задачи таймера выполняются в потоке Dispatching Event, поэтому, пока ваша задача запущена, никакое другое событие swing не может произойти, и ваш gui замерзнет. Вы должны сделать отдельный поток для такой длинной задачи или использовать SwingWorker.
Подробнее см. этот .
Задача может занять больше 2 секунд. Требует ли задача доступа к графическому интерфейсу? Если не использовать отдельный поток. Конкретная часть задачи, требующая доступа к графическому интерфейсу, может использовать SwingWorker для обновления GUI.