Swing的JPanel和AWT的Canvas都是可绘图的面板
Canvas使用很方便,但有些很奇怪的问题,也许是因为它是重型组件,会把包括JMenu或Tip之类的轻型组件遮挡掉!真晕
然后我现在把一个用于绘图的继承自Canvas的类改成JPanel:
paint改为paintComponent
mouseDown改为 mousePressed
mouseUp改为 mouseReleased
mouseDrag改为 mouseDragged运行后出现一下问题:
1。鼠标事件更本响应不了!mousePressed函数根本进不去
2。任何在其上出现的东西(比如一个JFileChooser)会有乱七八糟的残影留在上面!一定要最小化重画后才会消失
3。JPanel不能用Graphics2D?那么怎么把笔画线变粗?谢谢!!!!!
可以加我QQ 252022390赐教!!
多谢!

解决方案 »

  1.   

    addMouseListener(this); 
    后解决了第一个问题第二个问题依旧啊!我是在一个对话框弹出接受输入后在上面画一个矩形,这样那个对话框消失后上面会留下残影!而且很多!PS:贴主就是我-_-
      

  2.   

    而且奇怪的是原本在Canvas的版本中运行得好好的拖动图形的功能
    居然不能相应了!
    不能拖动!
      

  3.   

    JPanel 也有 Paint,你可以重新 Panit 啊。
    另外,拖动的问题,你应该考虑使用 MouseMotionListener
      

  4.   

    JPanel 用
    public void paint(Graphics g)
    吗?????这样什么都画不出了1、1
    MouseMotionListener我也implement了
    那拖动的代码应该放在哪里???谢谢!!
      

  5.   

    我放在mouseDragged里的!
    可是鼠标拖动时候这个方法更本进不了!