请问,graphics 画图的时候是分层画图的吗?如何控制graphics在第几层呢?如图所示,如何让绿色的区域在线段下面?

解决方案 »

  1.   

    把要画的对象如线,方块都放在一个list里,每个对象有一个层的数字,绘制的时候进行排序,按层从大到先或者从小到大逐个绘制list里的对象。
      

  2.   

    list 只能放一样的东西啊 线段是line2d ,矩形是rectangle 。list<xxx> = new Arraylist<xxx>() xxx必须是一样的吧,请问怎么解决呢? 
    线段是程序自动生成的,没法手动修改;绿色方框是用户手动拖上去的,也就是后来才画上来的,所以,没法控制先后顺序。
      

  3.   

    话说,即使用户手工拖上去的,这个控件也是你自定义paint或paintComponent之类的方法,画出来的不是吗?
      

  4.   

    同时画的多个不同的东西(如线段、矩形等),必须按某种方式管理起来
    鼠标选中(或拖动)某个,这个就将最后paint(因它出现在最上边)
    因此,必须采用某种方式来管理各个对象的叠放顺序,不同的情况处理方法不一样,这要结合你的具体情况来分析