За програма, която създавам, използвах модела на наблюдател, но докато моят Observable изпраща данни почти постоянно, симулирани с цикъл тук, тъй като действителният код е свързан към устройство и измерва данните, моята актуализация(); методът работи както трябва, но не се люлее.
Swing актуализира JTextField само СЛЕД като цикълът приключи, но когато използвам System.out.println(), той итерира добре всяка актуализация.
Наблюдаем код:
public void collectData()
{
for(int i = 0; i < 10; i++)
{
currRandom = (Math.random() * 10);
for(Observer o : observers)
{
notify(o);
}
}
}
Код на наблюдател (SWING):
public void update()
{
jRecievedData.setText(jRecievedData.getText() + "\n" + Double.toString(PVC.pc.getCurr()));
jlAverage.setText("Average: " + PVC.getAverage());
jlMin.setText("Minimum: " + PVC.getMin());
jlMax.setText("Maximum: "+ PVC.getMax());
// setText updates slow
}
Всяка помощ ще бъде много оценена! (Имам чувството, че това ще бъде проблем с нишките, но не съм сигурен и ако е така, все още не знам как да направя това със swing)