日期:2014-05-20  浏览次数:20880 次

Vector问题。
for(int   i=0;i <vector.size;i++){
g.drawString(elements[i],5,5+20*i,20);
}

请问类似这种用Vector画出来的东西如何实现分页显示呢?

比如vvector的size是30,那么如何实现分页显示呢?应该如何做判断呢?一行显示的汉字也要做成自适应的那种。(比如176的屏幕显示10行汉字,不必考虑每行显示多少个字,我已经做完了)谢谢高手解决。不要太麻烦了。自己写了一个,感觉不是太好。所以求救了。

------解决方案--------------------
分页显示?你继承的是Canvas还是GameCanvas,如果的GameCanvas的话 可以像做游戏那样用setViewWindow()方法定义视窗大小和位置 然后通过上下左右键 改变视窗的位置 来显示你不够显示的内容. 而不用再另外new 1个窗口,浪费资源.
Canvas的话自己定义1个方法也可以实现视窗效果,打开GameCanvas这个东西 里面有原代码 有视窗的定义方法 COPY出来自己用就可以了
------解决方案--------------------
哦,sorry
for(int i=m_starLine;i <10;i++){
==>
for(int i=m_starLine;i <+m_starLine+10;i++){
if (i > 33)
break;
------解决方案--------------------
用GameCanvas吧 保证不会出现越界问题,而且画面相对漂亮些 比较容易操作,如果以后还要作特效的话 扩展更加容易
http://community.csdn.net/Expert/topic/5373/5373452.xml?temp=.9878656
以前发的帖子 里面有个关于视窗使用的方法 用setViewWindow(x,y,width,height)调节视窗大小
LayerManager manager;

public void paint(Graphics g){
// man.paint(g);

/* if(xViewPostion <0&&yViewPostion <0){
manager.setViewWindow(0,0,200,200);
}else if(xViewPostion <0&&yViewPostion> 120){
manager.setViewWindow(0,120,200,200);
}else if(xViewPostion> 40&&yViewPostion <0){
manager.setViewWindow(40,0,200,200);
}else if(xViewPostion> 40&&yViewPostion> 120){
manager.setViewWindow(40,120,200,200);
}else{manager.setViewWindow(xViewPostion,yViewPostion,200,200);
}//视窗设计
*/