私はちょっとした問題を抱えています。私はいくつかのオブジェクトを一度に追跡するためのGPS追跡アプリケーションを作成しています。データはシリアルインタフェース経由で送られますが、これは私が理解できるものからうまく来ています。問題は、マップが作成され表示されているJPanelを継続的に更新する必要があることです。JPanelを継続的に更新するにはどうすればよいですか?
public JPanel mapDisplay(){
JPanel mapPanel = new JPanel();
mapPanel.setSize(560, 540);
Coordinate start = new Coordinate (-34.9286, 138.6);
trackMap.addMapMarker(new MapMarkerDot(1Lat, 1Lon));
trackMap.setDisplayPosition(start,8);
System.out.println(1Lat);
mapPanel.add(trackMap);
mapPanel.setVisible(true);
return mapPanel;
}
これは私が持っているものであり、一度ポイントを表示して幸せですが、更新されません。シリアルメソッドで1Lat変数を出力すると、それは連続して印刷されますが、ここでは1回だけ行います。
私が見つけた答えの多くは、配列によってマーカーを設定することを参照していますが、追跡しているオブジェクトがどこにでもあり得るため、この場合は機能しません。
任意の助けいただければ幸いです:)
[Concurrency in Java](http://docs.oracle.com/javase/tutorial/essential/concurrency/)から問題を理解してから、[Swing Timersの使い方](http ://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html)と[Worker Threads and SwingWorker](http://docs.oracle.com/javase/tutorial/uiswing/concurrency/worker.html)を参照してください。 )可能な解決策については – MadProgrammer
Worker Threadを使用でき、ArrayListを使用することはできますか?もしそうすれば、私はデータが失われるリスクを冒すでしょう。 –