这个是直接在JFrame上的我想改成JFrame 上加一个JPanel然后在JPanel上画画
package test;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class TestTest extends JFrame { int x1, y1, x2, y2; public TestTest() { setVisible(true); setSize(300, 300); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0);
}
}); addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { x1 = e.getX(); y1 = e.getY();
}
}); addMouseMotionListener(new MouseMotionAdapter() { public void mouseDragged(MouseEvent e) { x2 = e.getX();
y2 = e.getY();
repaint(); }
});
} public void paint(Graphics g) { g.drawLine(x1, y1, x2, y2); x1 = x2; y1 = y2; } public static void main(String args[]) { new TestTest();
}
}

解决方案 »

  1.   

    在我的Eclipse上运行 不出来!!!
    在 JPanel上绘图 就是重载 paintComponent方法!!然后在添加到Frame就可以了
      

  2.   

    直接在构造中最前面加上JPanel panel=new JPanel();
         this.add(panel,BorderLayout.CENTER);
      

  3.   

    Panel上画不出来了鼠标只能显示一个点各位画画就知道了
      

  4.   


    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.Graphics;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseMotionAdapter;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;import javax.swing.JFrame;
    import javax.swing.JPanel;public class PaintTest extends JFrame{ private MyPanel jpanel = new MyPanel(); public PaintTest(){
    setLayout(null);
    Dimension size = new Dimension(500,400);
    setLocation(200,100);
    setSize(size);
    jpanel.setPreferredSize(size);
    jpanel.setLocation(0,0);
    jpanel.setSize(size);
    add(jpanel);
    addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e){
    System.exit(0);
    }
    });
    setVisible(true);
    } public static void main(String args[]){
    new PaintTest();
    } class MyPanel extends JPanel {
    private int x1,y1,x2,y2;
    public MyPanel(){
    this.setBackground(Color.red);
    addMouseListener(new MouseAdapter() {
    public void mousePressed(MouseEvent e){
    x1 = e.getX();
    y1 = e.getY();
    }
    });
    addMouseMotionListener(new MouseMotionAdapter() {
    public void mouseDragged(MouseEvent e){
    x2 = e.getX();
    y2 = e.getY();
    repaint();
    }
    });
    }
    @Override
    public void paint(Graphics g){
    this.setBackground(Color.red);
    g.drawLine(x1,y1,x2,y2);
    x1 = x2;
    y1 = y2;
    }
    }
    }
      

  5.   

    要布局layout,然后一个一个加。