View unanswered posts | View active topics It is currently 2022-07-06 8:44



This topic is locked, you cannot edit posts or make further replies.  [ 8 posts ] 
 请教一个swing实时绘制大量元素的问题 
Author Message
新手上路

Joined: 2012-07-25 11:46
Posts: 9
Post 请教一个swing实时绘制大量元素的问题
其实我这样的,我用swing开发的地图,现在在地图上要显示全世界的飞机,也就加了一个飞机图层,这些飞机每隔一秒就变位置,该图层的绘制方法如下:
/**
* 绘制飞机
*/
private void doFlightPaint(Graphics2D g2, MapViewer mapViewer) {

Rectangle viewportBounds = mapViewer.getViewportBounds();

for (FlightWayPoint flightWayPoint : getFlightWayPoints()) {//飞机列表,实时更新坐标点,大概有5000+架飞机,getFlightWayPoints().size<=5000

Point2D point = flightWayPoint.getPoint();

if (!viewportBounds.contains(point)) return;

//绘制拖尾点,每个飞机有300+个拖尾点
for (Point2D tailPoint : flightWayPoint.getTailPoints()) {
...
//绘制点
g2.fillOval(tailPoint.getX(), tailPoint.getY(), 2, 2);
...
}

...
//绘制飞机
g2.drawImage(flightImage, tailPoint.getX(), tailPoint.getY(), null);
...
//绘制飞机信息
g2.drawString(flihtInfo, tailPoint.getX() + 30, 0);
...
}
}

这样性能很差,地图放大的话性能就好,如果地图缩小到显示全部飞机时,就有5000*300个点要绘制,界面非常卡,也偿试缩小时减少拖尾点的绘制,但效果还是不太好,有什么好的办法吗?[url][/url]


2016-03-02 11:17
Profile
TWaver开发组
User avatar

Joined: 2009-04-20 18:37
Posts: 3115
Post Re: 请教一个swing实时绘制大量元素的问题
缩小时,感觉文字也可以去掉,反正看不清了。
您可以不画拖影试试。


2016-03-03 10:48
Profile
新手上路

Joined: 2012-07-25 11:46
Posts: 9
Post Re: 请教一个swing实时绘制大量元素的问题
:mad: 额,还是很卡的。。。paint for(i=0;i<6000;i++)一直在。。。


2016-03-03 15:33
Profile
TWaver开发组
User avatar

Joined: 2009-04-20 18:37
Posts: 3115
Post Re: 请教一个swing实时绘制大量元素的问题
这样只是画5到6千个图片也卡么?


2016-03-03 16:03
Profile
新手上路

Joined: 2012-07-25 11:46
Posts: 9
Post Re: 请教一个swing实时绘制大量元素的问题
是啊,很奇怪,有可能是那个fligtList有问题,大概有4个线程在操作它,两个线程在实时遍历它(其中一个是paint绘制),一个线程在add,一个线程每隔30秒在清空list中的超时元素


2016-03-03 17:18
Profile
TWaver开发组
User avatar

Joined: 2009-04-20 18:37
Posts: 3115
Post Re: 请教一个swing实时绘制大量元素的问题
要不您把您的业务场景用模拟数据写个小demo,发给tw-service###servasoft.com (###换成@),我们帮您调优


2016-03-04 9:47
Profile
新手上路

Joined: 2012-07-25 11:46
Posts: 9
Post Re: 请教一个swing实时绘制大量元素的问题
好的,得分离出来,周末看看


2016-03-04 10:54
Profile
新手上路

Joined: 2012-07-25 11:46
Posts: 9
Post Re: 请教一个swing实时绘制大量元素的问题
@paul,你好,我已经抽出一个demo发给你们邮件了,非常感谢你们的帮助,祝好!


2016-03-10 14:19
Profile
Display posts from previous:  Sort by  
This topic is locked, you cannot edit posts or make further replies.   [ 8 posts ] 

Who is online

Users browsing this forum: No registered users and 65 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron