Я создал форму, которая, помимо прочего, отображает график (используя jfreechart).График отображает динамически генерируемые данные.Чтобы сгенерировать данные, я использую поток, как показано ниже:
class Grapher extends JFrame implements Runnable{
....
public void run(){
Thread thisT = Thread.currentThread();
while(true){
try{
double a = getRand();
System.out.println(a);
Millisecond millisecond = new Millisecond();
if(a == 100){thisThread.stop();}
timeseries.add(millisecond, a);
Thread.sleep(100);
}catch(InterruptedException e){}
}
Если я настрою свою программу таким образом, график хорошо отображается в моем графическом интерфейсе, но запускается немедленно.* Если я пропускаю последнюю строку graph.run()
и добавляю ее в прослушиватель событий Jbutton, когда я нажимаю кнопку, я вижу, что поток запускается, когда я получаю числа, отображаемые на консоли.Однако график не обновляется, и вся форма замирает.
Я не уверен, почему это происходит, но я думаю, что это связано с потоками?