文件组织
![](https://img-blog.csdn.net/20170227202058982?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaWN1cmlvdXM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
代码
package drawboard;
import javax.swing.JFrame;
public class DrawBoard {
public static void main(String[] args) {
DrawBoardFrame db=new DrawBoardFrame();
db.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
package drawboard;
import javax.swing.*;
public class DrawBoardFrame extends JFrame{
public static final int DEFAULT_W=600;
public static final int DEFAULT_H=500;
public DrawBoardFrame(){
setTitle("画 板");
setSize(DEFAULT_W,DEFAULT_H);
DrawBoardPanel panel=new DrawBoardPanel();
getContentPane().add(panel);
setVisible(true);
}
}
package drawboard;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import java.awt.geom.Line2D;
import javax.swing.*;
public class DrawBoardPanel extends JPanel{
int x1,y1,
x2,y2;
public DrawBoardPanel(){
addMouseMotionListener(new MouseMotionListener() {
public void mouseDragged(MouseEvent e) {
Graphics2D g=(Graphics2D)getGraphics();
x2=e.getX();y2=e.getY();
g.draw(new Line2D.Double(x1,y1,x2,y2));
x1=x2;y1=y2;
g.dispose();
}
public void mouseMoved(MouseEvent e) {
double tx=e.getX();
double ty=e.getY();
System.out.println("鼠标当前坐标:("+tx+","+ty+')');
};
});
addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
x1=e.getX();y1=e.getY();
}
});
}
}
效果
![](https://img-blog.csdn.net/20170227202118732?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaWN1cmlvdXM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
PS:较早时候写的,可能不符合现在的规范,仅作参考。