在一个JFrame上放一个Canvas作图,这样菜单栏的菜单拉下后会被遮掉Canvas下面的部分,好像被Canvas遮掉一样!而把Canvas放在一个JPanel上或JTabbedPane上再放到JFrame上的话Canvas就不能作图(无法响应鼠标事件,在其上draw)了!!怎么会这样!但是放到JSplitPane却可以作图,不过还是遮掉Menu!这么办???

解决方案 »

  1.   

    tabbedPane.add("New",canvas);
    这样自在canvas里就不能画了!
    救命啊!
      

  2.   

    Canvas是重量级的组件,会覆盖在轻量级组件上。
    你要绘图的话可以直接使用JPanel,重载paintCompinent()方法。
    这样就可以解决你的问题了。
      

  3.   

    更正一个笔误:
    重载paintComponent()方法
      

  4.   

    我把extends Canvas改成了JPanel 
    paint 改成了paintComponent, 这下就算直接贴在JFrame上鼠标事件都不认了!!
      

  5.   

    JPanel的鼠标相应时间没有坐标信息啊!
    不像Canvas那样方便!
      

  6.   

    刚才是写成了paintCompinent了
    可是现在我把这个JPanel放在一个JSplitPAne的右边
    现在一画东西就一片乱!
    把弹出-消失的对话框的残影都画上去了!
      

  7.   

    呼总算改回Canvas了
    JPanel上画图真是地狱啊
    会画乱七八糟的残影上去的