1、
            int offsetX = 0, offsetY = 0;
            public void mousePressed(MouseEvent e)
            {
                        offsetX = e.getX();
                        offsetY = e.getY();
            }            public void mouseDragged(MouseEvent e)
            {
                        offsetX = e.getX();
                        offsetY = e.getY();
                        int x += mouseX - offsetX;
                        int y += mouseY - offsetY;
                        setLocation(x, y);
            }2、
            public void paint(Graphics g)
            {
                        g.drawString(getText(), 0, 0);
            }

解决方案 »

  1.   

    public void mouseDragged(MouseEvent e)
                {
                            offsetX = e.getX();
                            offsetY = e.getY();
                            int x += mouseX - offsetX;
                            int y += mouseY - offsetY;
                            setLocation(x, y);
                }应该是:
                public void mouseDragged(MouseEvent e)
                {
                            mouseX = (int)e.getX();
                            mouseY = (int)e.getY();
                            int x = getLocation().x;
                            int y = getLocation().y;
                            x += mouseX - offsetX;
                            y += mouseY - offsetY;
                            setLocation(x, y);
                }
      

  2.   

    应该是这样吧:
    public void mouseDragged(MouseEvent e)
    {
    mouseX = (int)e.getX();
    mouseY = (int)e.getY();
    int x = getLocation().x;
    int y = getLocation().y;
    x += mouseX ;
    y += mouseY ;
    setLocation(x, y);
    }
    这里mouseX,mouseY是什么意思?
      

  3.   


                int offsetX = 0, offsetY = 0;
                public void mousePressed(MouseEvent e)
                {
                            //保存鼠标移动前的位置
                            offsetX = e.getX();
                            offsetY = e.getY();
                }            public void mouseDragged(MouseEvent e)
                {
                            //鼠标移动时的位置
                            int mouseX = (int)e.getX();
                            int mouseY = (int)e.getY();                        //控件当前位置
                            int x = getLocation().x;
                            int y = getLocation().y;
      
                            //当前位置与位移相加,即是移动后的位置
                            x += (mouseX - offsetX);
                            y += (mouseY - offsetY);
                            setLocation(x, y);
                }
      

  4.   

    好像不要offsetX,offsetY也行啊!
    对呢,第二个问题还没解决呢,好像按你这样也不行啊。
    我在jToggleButton上写了几个字,只想让这几个字示出来,而背景隐藏掉!再言谢!!!
      

  5.   

    JToggleButton b1 = new JToggleButton()
                {                  public void paint(Graphics g)
                      {
                            g.setColor(new Color(178, 178, 178));
                            g.drawString("testString", 5, 5);
                      }
                };