Graphics画东西的时候能不能别把组件的背景图给挡住?
一但画出来似乎什么都被挡住了,menubar的下拉菜单都会被遮住,
能不能把Graphics这个面设成透明之类的?
虽然这个问题比较傻,但请各位大虾一定要帮忙 小弟在此谢过了

解决方案 »

  1.   

    不要Menubar使用JFrame,画图又使用Frame,我在编计算器界面时,就遇到这样的问题
      

  2.   

    我是在JFrame里加了个Canvas,图是话在Canvas上的,但还是把JFrame的menubar给挡住了. 我想做个截图的东东,但graphics一初始化就一片白把背景画面给遮住了,难道非要把背景和框一起画到graphics里吗? 能不能把graphics初始化的颜色调成透明的?
      

  3.   

    找到问题所在了,原来Canvas的graphics怎么画都会遮住重量级容器的menuBar。
    换成Label就好了,呵呵。同时还解决了双缓冲的问题.看来Canvas并不太好用。但第一个问题谁能解答一下,如果一个Label set了incon ,就会有一幅背景图。
    然后在这个Label上用Graphics画东西,但一用paint就会先用底色把整个界面都刷干净了再画。
    如何使画的东西直接画在背景图上,别把背景图给刷没了? 谢谢各位大虾
      

  4.   

    我来回答你后面一个问题。因为你写自己的paint()函数就会把原本Label的paint()函数给override(这个词的中文翻译太多了,直接用英文,有翻译成覆盖的)了。这样,他就不会执行原来Label的paint()函数了,所以,根本就没有绘制icon或者背景图片的操作被进行。如果你希望先画出背景图片,那就这么做:
    xxxx paint(Graphics g) {
        super.paint(g);     // 你自己的绘图代码。
    }
      

  5.   

    xxxx是因为忘记了paint的访问控制是啥了。呵呵……另外,你说的遮住menubar的问题,查一些关于LayeredLayout的资料看看或许有帮助。
      

  6.   

    多谢 King_Play(程序猎人)大虾帮助。 : )